Skip to content

Create harfbuzz Release #11

Create harfbuzz Release

Create harfbuzz Release #11

Workflow file for this run

on:
# push:
# branches: [master]
workflow_dispatch:
pull_request:
branches: [master]
name: Create harfbuzz Release
jobs:
build:
name: compile harfbuzz then deploy
runs-on: macos-12
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Read Tag Version
run: |
# https://stackoverflow.com/questions/4916492/git-describe-fails-with-fatal-no-names-found-cannot-describe-anything
# git describe --tags --always | awk -F . '{printf "RELEASE_VERSION=%s.%d",$1,$2+1}' | xargs > constants.env
# git describe --tags --always | awk -F - '{printf "RELEASE_VERSION=V1.0-%s",$NF}' | xargs > constants.env
d=$(TZ=UTC-8 date +'%y%m%d%H%M%S')
LIB_NAME=harfbuzz
grep GIT_REPO_VERSION= ./init-cfgs/$LIB_NAME | awk -F = '{printf "RELEASE_VERSION=%s",$2}' | xargs > constants.env
echo "LIB_NAME=$LIB_NAME" >> constants.env
echo "RELEASE_DATE=$d" >> constants.env
echo "HOMEBREW_NO_AUTO_UPDATE=1" >> constants.env
cat constants.env
- name: Export Env
uses: cardinalby/export-env-action@v2
with:
envFile: 'constants.env'
- name: init src
run: |
./init-any.sh all ${{ env.LIB_NAME }}
./install-pre-any.sh all 'freetype'
- name: generate src log
run: |
cd build/src/macos
ls | awk -F ' ' '{printf "echo %s\n echo -------------\ngit -C %s log -n 1 | cat\n",$0,$0}' | bash > ../macos-src-log.md
cd ../ios
ls | awk -F ' ' '{printf "echo %s\n echo -------------\ngit -C %s log -n 1 | cat\n",$0,$0}' | bash > ../ios-src-log.md
cd ../tvos
ls | awk -F ' ' '{printf "echo %s\n echo -------------\ngit -C %s log -n 1 | cat\n",$0,$0}' | bash > ../tvos-src-log.md
- name: do compile macos libs
run: |
./macos/compile-any.sh -c build -l ${{ env.LIB_NAME }}
cd build/product/macos/universal
zip -rq macos-universal.zip ./*
- name: do compile ios libs
run: |
./ios/compile-any.sh -c build -l ${{ env.LIB_NAME }}
cd build/product/ios/universal
zip -rq ios-universal.zip ./*
cd ../universal-simulator
zip -rq ios-universal-simulator.zip ./*
- name: do compile tvos libs
run: |
./tvos/compile-any.sh -c build -l ${{ env.LIB_NAME }}
cd build/product/tvos/universal
zip -rq tvos-universal.zip ./*
cd ../universal-simulator
zip -rq tvos-universal-simulator.zip ./*
- name: Zip apple xcframework
run: |
cd build/product/xcframework
zip -rq apple-xcframework.zip ./*
mv apple-xcframework.zip ../
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ env.LIB_NAME }}-${{ env.RELEASE_VERSION }}-${{ env.RELEASE_DATE }}
release_name: ${{ env.LIB_NAME }}-${{ env.RELEASE_VERSION }}
draft: false
prerelease: false
- name: Upload xcframework Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: build/product/apple-xcframework.zip
asset_name: "${{ env.LIB_NAME }}-apple-xcframework-${{ env.RELEASE_VERSION }}.zip"
asset_content_type: application/zip
- name: Upload iOS Plat Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: build/product/ios/universal/ios-universal.zip
asset_name: "${{ env.LIB_NAME }}-ios-universal-${{ env.RELEASE_VERSION }}.zip"
asset_content_type: application/zip
- name: Upload iOS Simulator Plat Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: build/product/ios/universal-simulator/ios-universal-simulator.zip
asset_name: "${{ env.LIB_NAME }}-ios-universal-simulator-${{ env.RELEASE_VERSION }}.zip"
asset_content_type: application/zip
- name: Upload macOS Plat Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: build/product/macos/universal/macos-universal.zip
asset_name: "${{ env.LIB_NAME }}-macos-universal-${{ env.RELEASE_VERSION }}.zip"
asset_content_type: application/zip
- name: Upload tvOS Plat Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: build/product/tvos/universal/tvos-universal.zip
asset_name: "${{ env.LIB_NAME }}-tvos-universal-${{ env.RELEASE_VERSION }}.zip"
asset_content_type: application/zip
- name: Upload tvOS Simulator Plat Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: build/product/tvos/universal-simulator/tvos-universal-simulator.zip
asset_name: "${{ env.LIB_NAME }}-tvos-universal-simulator-${{ env.RELEASE_VERSION }}.zip"
asset_content_type: application/zip
- name: Upload macos src md
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: build/src/macos-src-log.md
asset_name: "macos-src-log-${{ env.RELEASE_VERSION }}.md"
asset_content_type: application/text
- name: Upload ios src md
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: build/src/ios-src-log.md
asset_name: "ios-src-log-${{ env.RELEASE_VERSION }}.md"
asset_content_type: application/text
- name: Upload tvos src md
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: build/src/tvos-src-log.md
asset_name: "tvos-src-log-${{ env.RELEASE_VERSION }}.md"
asset_content_type: application/text