publish-release #80
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: publish-release | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| tag: | |
| description: 'release tag' | |
| required: false | |
| type: string | |
| commitId: | |
| description: 'specific commit ID to build' | |
| required: false | |
| type: string | |
| release: | |
| types: [published] | |
| jobs: | |
| get-version: | |
| runs-on: lynx-ubuntu-22.04-medium | |
| timeout-minutes: 60 | |
| outputs: | |
| version: ${{ steps.get_version.outputs.VERSION }} | |
| steps: | |
| - name: Get Version | |
| id: get_version | |
| run: |- | |
| if [ ${{ github.event_name }} == 'workflow_dispatch' ]; then | |
| version=${{ github.event.inputs.tag }} | |
| else | |
| version=$(echo ${{ github.ref }} | awk -F "/" '{print $3}') | |
| fi | |
| if [[ $version =~ ^[0-9]+\.[0-9]+\.[0-9]+$ || \ | |
| $version =~ ^[0-9]+\.[0-9]+\.[0-9]+-rc\.[0-9]+$ || \ | |
| $version =~ ^[0-9]+\.[0-9]+\.[0-9]+-alpha\.[0-9]+$ ]]; then | |
| echo "Version is valid" | |
| echo "VERSION=$version" >> $GITHUB_OUTPUT; | |
| else | |
| echo "Version is invalid" | |
| exit 1 | |
| fi | |
| android-explorer-build: | |
| timeout-minutes: 60 | |
| runs-on: lynx-ubuntu-22.04-large | |
| needs: get-version | |
| steps: | |
| - name: Download Source | |
| uses: actions/checkout@v4.2.2 | |
| with: | |
| path: lynx | |
| ref: ${{ github.event.inputs.commitId || github.ref }} | |
| fetch-depth: 0 | |
| - name: Build Explorer App | |
| uses: ./lynx/.github/actions/android-explorer-build | |
| with: | |
| abi-list: armeabi-v7a,x86,x86_64,arm64-v8a | |
| - name: push to release | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: ${{ needs.get-version.outputs.version }} | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| artifacts: '${{ github.workspace }}/lynx/explorer/android/lynx_explorer/build/outputs/apk/noasan/release/LynxExplorer-noasan-release.apk' | |
| allowUpdates: true | |
| body: '' | |
| ios-explorer-build: | |
| timeout-minutes: 60 | |
| runs-on: lynx-darwin-14-medium | |
| needs: get-version | |
| strategy: | |
| matrix: | |
| arch: [arm64, x86_64] | |
| steps: | |
| - name: Download Source | |
| uses: actions/checkout@v4.2.2 | |
| with: | |
| path: lynx | |
| ref: ${{ github.event.inputs.commitId || github.ref }} | |
| fetch-depth: 0 | |
| - name: Build Explorer App | |
| uses: ./lynx/.github/actions/ios-explorer-build | |
| with: | |
| build-arch: ${{ matrix.arch }} | |
| - name: push explorer to release | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: ${{ needs.get-version.outputs.version }} | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| artifacts: '${{ github.workspace }}/lynx/LynxExplorer-${{ matrix.arch }}.app.tar.gz' | |
| allowUpdates: true | |
| body: '' | |
| harmony-explorer-build: | |
| runs-on: lynx-custom-container | |
| container: | |
| image: ghcr.io/lynx-family/ubuntu24.04-harmony@sha256:bf493c3710de3c44bfa84caf402c0727b9310c42497f6e52580ad441ea640ef1 | |
| credentials: | |
| username: lynx-family | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| needs: get-version | |
| defaults: | |
| run: | |
| working-directory: ${{ github.workspace }} | |
| shell: bash | |
| steps: | |
| - name: Download Source | |
| uses: actions/checkout@v4.2.2 | |
| with: | |
| path: lynx | |
| ref: ${{ github.event.inputs.commitId || github.ref }} | |
| fetch-depth: 0 | |
| - name: Build Explorer App | |
| uses: ./lynx/.github/actions/harmony-explorer-build | |
| - name: push explorer to release | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: ${{ needs.get-version.outputs.version }} | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| artifacts: '${{ github.workspace }}/lynx/explorer/harmony/lynx_explorer/build/default/outputs/default/lynx_explorer-default-unsigned.hap' | |
| allowUpdates: true | |
| body: '' | |
| android-sdk-release: | |
| runs-on: ubuntu-22.04 | |
| needs: get-version | |
| timeout-minutes: 240 | |
| steps: | |
| - name: Download Source | |
| uses: actions/checkout@v4.2.2 | |
| with: | |
| path: lynx | |
| ref: ${{ github.event.inputs.commitId || github.ref }} | |
| fetch-depth: 0 | |
| - name: Free up disk space | |
| uses: ./lynx/.github/actions/free-android-disk | |
| - name: Python Setup | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.13' | |
| - name: Setup Android environment | |
| uses: ./lynx/.github/actions/setup-android-env | |
| - name: Install Common Dependencies | |
| uses: ./lynx/.github/actions/common-deps | |
| with: | |
| cache-backend: 'github' | |
| - name: Android SDK Release | |
| uses: ./lynx/.github/actions/android-sdk-release | |
| with: | |
| version: ${{ needs.get-version.outputs.version }} | |
| signingKeyId: ${{ secrets.SIGNING_KEY_ID }} | |
| signingPassword: ${{ secrets.SIGNING_PASSWORD }} | |
| signingSecretKey: ${{ secrets.SIGNING_SECRET_KEY }} | |
| abiList: 'armeabi-v7a,x86,x86_64,arm64-v8a' | |
| - name: Package maven artifacts | |
| run: |- | |
| cd $GITHUB_WORKSPACE/lynx | |
| pushd platform/android | |
| ./gradlew zipArtifacts -Pversion=${{ needs.get-version.outputs.version }} getArtifactList | |
| popd | |
| pushd platform/android/build | |
| artifact_list=$(<artifact-list) | |
| echo "::set-output name=artifact_list::$artifact_list" | |
| popd | |
| id: build_artifact | |
| - name: Publish artifact to maven | |
| uses: lynx-infra/maven-publish-action@53b4da2f23f9cfc4e905b135eda2724fcf5a0f0e | |
| with: | |
| portal_api_token: ${{ secrets.PORTAL_API_TOKEN }} | |
| artifact_path_list: ${{ steps.build_artifact.outputs.artifact_list }} | |
| ios-sdk-publish: | |
| timeout-minutes: 60 | |
| runs-on: macos-14 | |
| needs: get-version | |
| steps: | |
| - name: Download Source | |
| uses: actions/checkout@v4.2.2 | |
| with: | |
| ref: ${{ github.event.inputs.commitId || github.ref }} | |
| fetch-depth: 0 | |
| path: lynx | |
| - name: Python Setup | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.13' | |
| - name: Set up Ruby + specify Bundler version | |
| uses: ruby/setup-ruby@v1 | |
| with: | |
| ruby-version: '2.6.10' | |
| - name: Install Common Dependencies | |
| uses: ./lynx/.github/actions/common-deps | |
| with: | |
| cache-backend: github | |
| - name: Setup Ruby Cache | |
| uses: ./lynx/.github/actions/ios-common-deps | |
| with: | |
| cache-backend: 'github' | |
| - name: Publish iOS SDK | |
| uses: ./lynx/.github/actions/ios-sdk-publish | |
| with: | |
| version: ${{ needs.get-version.outputs.version }} | |
| tag: ${{ needs.get-version.outputs.version }} | |
| cocoapods_trunk_token: ${{ secrets.COCOAPODS_TRUNK_TOKEN }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| component: all | |
| - name: Publish iOS dev SDK | |
| uses: ./lynx/.github/actions/ios-sdk-publish | |
| env: | |
| LYNX_ENABLE_RECORDER: 1 | |
| with: | |
| version: ${{ needs.get-version.outputs.version }}-dev | |
| tag: ${{ needs.get-version.outputs.version }} | |
| cocoapods_trunk_token: ${{ secrets.COCOAPODS_TRUNK_TOKEN }} | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| component: all | |
| harmony-sdk-publish: | |
| name: Publish Harmony SDK (${{ matrix.label }}) | |
| runs-on: lynx-custom-container | |
| container: | |
| image: ghcr.io/lynx-family/ubuntu24.04-harmony@sha256:25913874dad0557526b44f9c9ab30b9873080009db85bb569d718d2bb5f0e074 | |
| credentials: | |
| username: lynx-family | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| defaults: | |
| run: | |
| shell: bash | |
| needs: get-version | |
| strategy: | |
| matrix: | |
| include: | |
| - version_suffix: '' | |
| modules: 'default' | |
| build_param: '' | |
| label: 'formal' | |
| - version_suffix: '-dev' | |
| modules: 'lynx lynx_devtool lynx_base' | |
| build_param: '--dev' | |
| label: 'dev' | |
| steps: | |
| - name: Install Rust toolchain | |
| uses: actions-rs/toolchain@v1 | |
| with: | |
| toolchain: stable | |
| profile: minimal | |
| override: true | |
| - name: Install git-cliff | |
| run: | | |
| cargo install git-cliff --locked | |
| git-cliff --version | |
| - name: Download Source | |
| uses: actions/checkout@v4.2.2 | |
| with: | |
| path: lynx | |
| fetch-depth: 0 | |
| fetch-tags: true | |
| ref: ${{ github.event.inputs.commitId || github.ref }} | |
| - name: Get latest tag | |
| id: get-latest-tag | |
| uses: ./lynx/.github/actions/get-latest-tag | |
| with: | |
| current-tag: ${{ needs.get-version.outputs.version }} | |
| - name: Install Common Dependencies | |
| uses: ./lynx/.github/actions/common-deps | |
| with: | |
| cache-key-prefix: '-container' | |
| - name: Generate Change Log | |
| run: | | |
| cd $GITHUB_WORKSPACE/lynx | |
| source tools/envsetup.sh | |
| COMMIT_ID=$(git rev-list -n 1 ${{ steps.get-latest-tag.outputs.latest-tag }}) | |
| python3 explorer/harmony/script/generate_changelog.py --version ${{ needs.get-version.outputs.version }}${{ matrix.version_suffix }} --modules ${{ matrix.modules }} --base_commit $COMMIT_ID | |
| - name: Build Harmony SDK | |
| run: | | |
| cd $GITHUB_WORKSPACE/lynx | |
| source tools/envsetup.sh | |
| pushd platform/harmony && ohpm install && popd | |
| pushd explorer/harmony && ohpm install && popd | |
| python3 explorer/harmony/script/build.py ${{ matrix.build_param }} --build_lynx_core --build_har --modules ${{ matrix.modules }} --override_version ${{ needs.get-version.outputs.version }}${{ matrix.version_suffix }} | |
| - name: Publish Harmony SDK | |
| run: | | |
| cd $GITHUB_WORKSPACE/lynx | |
| source tools/envsetup.sh | |
| export PUBLISH_KEY_PASSPHRASE=${{ secrets.HARMONY_PUBLISH_KEY_PASSPHRASE }} | |
| cat << EOF > publish_key | |
| ${{ secrets.HARMONY_PUBLISH_KEY }} | |
| EOF | |
| ohpm config set publish_registry https://ohpm.openharmony.cn/ohpm | |
| export PUBLISH_ID=${{ secrets.HARMONY_PUBLISH_ID }} | |
| export KEY_PATH=$GITHUB_WORKSPACE/lynx/publish_key | |
| python3 explorer/harmony/script/publish.py --modules ${{ matrix.modules }} --version ${{ needs.get-version.outputs.version }}${{ matrix.version_suffix }} |