Build and release binaries #203
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
| # DO NOT edit this file! This is a generated file from | |
| # the corresponding .j2 template. To edit it, edit the | |
| # Jinja template, and then re-generate it. | |
| # | |
| # % jinja2 main.yml.j2 -o main.yml | |
| # | |
| name: Build and release binaries | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| runner: | |
| required: false | |
| description: 'Runner image name' | |
| default: 'windows-2022' | |
| do-release: | |
| required: false | |
| type: boolean | |
| description: 'Create a release after build is done' | |
| default: false | |
| env: | |
| WINSPARKLE_ED_KEY: ${{ vars.WINSPARKLE_ED_KEY }} | |
| WINSPARKLE_AUTHENTICODE_ORG: ${{ vars.WINSPARKLE_AUTHENTICODE_ORG }} | |
| jobs: | |
| build-1: | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: false | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-2: | |
| needs: build-1 | |
| if: needs.build-1.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-3: | |
| needs: build-2 | |
| if: needs.build-2.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-4: | |
| needs: build-3 | |
| if: needs.build-3.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-5: | |
| needs: build-4 | |
| if: needs.build-4.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-6: | |
| needs: build-5 | |
| if: needs.build-5.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-7: | |
| needs: build-6 | |
| if: needs.build-6.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-8: | |
| needs: build-7 | |
| if: needs.build-7.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-9: | |
| needs: build-8 | |
| if: needs.build-8.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-10: | |
| needs: build-9 | |
| if: needs.build-9.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-11: | |
| needs: build-10 | |
| if: needs.build-10.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-12: | |
| needs: build-11 | |
| if: needs.build-11.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-13: | |
| needs: build-12 | |
| if: needs.build-12.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-14: | |
| needs: build-13 | |
| if: needs.build-13.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-15: | |
| needs: build-14 | |
| if: needs.build-14.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-final: | |
| needs: build-15 | |
| if: ${{ !cancelled() && !failure() }} | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| - name: Sign Helium binaries | |
| uses: azure/artifact-signing-action@v1 | |
| with: | |
| azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }} | |
| azure-client-id: ${{ secrets.AZURE_CLIENT_ID }} | |
| azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }} | |
| endpoint: ${{ secrets.AZURE_SIGNING_ENDPOINT }} | |
| signing-account-name: ${{ secrets.AZURE_SIGNING_ACCOUNT }} | |
| certificate-profile-name: ${{ secrets.AZURE_SIGNING_CERTIFICATE_NAME }} | |
| files: ${{ steps.stage.outputs.files-to-sign }} | |
| description: Helium | |
| description-url: https://github.com/imputnet/helium-windows | |
| # we want a different description here, so sign it separately again | |
| - name: Sign Helium update helper | |
| uses: azure/artifact-signing-action@v1 | |
| with: | |
| azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }} | |
| azure-client-id: ${{ secrets.AZURE_CLIENT_ID }} | |
| azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }} | |
| endpoint: ${{ secrets.AZURE_SIGNING_ENDPOINT }} | |
| signing-account-name: ${{ secrets.AZURE_SIGNING_ACCOUNT }} | |
| certificate-profile-name: ${{ secrets.AZURE_SIGNING_CERTIFICATE_NAME }} | |
| files: C:\helium-windows\build\src\out\Default\helium_update_helper.exe | |
| description: Helium Update Helper | |
| description-url: https://github.com/imputnet/helium-windows | |
| - name: Build Helium installer and package | |
| id: stage2 | |
| uses: ./.github/actions/stage | |
| with: | |
| gen_installer: true | |
| from_artifact: false | |
| - name: Sign Helium installer | |
| uses: azure/artifact-signing-action@v1 | |
| with: | |
| azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }} | |
| azure-client-id: ${{ secrets.AZURE_CLIENT_ID }} | |
| azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }} | |
| endpoint: ${{ secrets.AZURE_SIGNING_ENDPOINT }} | |
| signing-account-name: ${{ secrets.AZURE_SIGNING_ACCOUNT }} | |
| certificate-profile-name: ${{ secrets.AZURE_SIGNING_CERTIFICATE_NAME }} | |
| files: C:\helium-windows\build\helium*-installer.exe | |
| description: Helium Installer | |
| description-url: https://github.com/imputnet/helium-windows | |
| - name: Upload artifacts | |
| id: stage3 | |
| uses: ./.github/actions/stage | |
| with: | |
| upload_final: true | |
| from_artifact: false | |
| outputs: | |
| finished: ${{ steps.stage3.outputs.finished }} | |
| version: ${{ steps.stage3.outputs.version }} | |
| build-arm-1: | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: false | |
| arm: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-arm-2: | |
| needs: build-arm-1 | |
| if: needs.build-arm-1.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| arm: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-arm-3: | |
| needs: build-arm-2 | |
| if: needs.build-arm-2.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| arm: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-arm-4: | |
| needs: build-arm-3 | |
| if: needs.build-arm-3.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| arm: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-arm-5: | |
| needs: build-arm-4 | |
| if: needs.build-arm-4.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| arm: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-arm-6: | |
| needs: build-arm-5 | |
| if: needs.build-arm-5.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| arm: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-arm-7: | |
| needs: build-arm-6 | |
| if: needs.build-arm-6.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| arm: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-arm-8: | |
| needs: build-arm-7 | |
| if: needs.build-arm-7.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| arm: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-arm-9: | |
| needs: build-arm-8 | |
| if: needs.build-arm-8.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| arm: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-arm-10: | |
| needs: build-arm-9 | |
| if: needs.build-arm-9.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| arm: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-arm-11: | |
| needs: build-arm-10 | |
| if: needs.build-arm-10.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| arm: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-arm-12: | |
| needs: build-arm-11 | |
| if: needs.build-arm-11.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| arm: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-arm-13: | |
| needs: build-arm-12 | |
| if: needs.build-arm-12.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| arm: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-arm-14: | |
| needs: build-arm-13 | |
| if: needs.build-arm-13.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| arm: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-arm-15: | |
| needs: build-arm-14 | |
| if: needs.build-arm-14.outputs.finished == 'false' | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| from_artifact: true | |
| arm: true | |
| outputs: | |
| finished: ${{ steps.stage.outputs.finished }} | |
| build-arm-final: | |
| needs: build-arm-15 | |
| if: ${{ !cancelled() && !failure() }} | |
| runs-on: ${{ github.event.inputs.runner }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| with: | |
| submodules: 'recursive' | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.12' | |
| - name: Init | |
| run: Copy-Item -Path . -Destination "C:\helium-windows" -Recurse | |
| - name: Setup Stage | |
| run: npm install | |
| working-directory: ./.github/actions/stage | |
| - name: Run Stage | |
| id: stage | |
| uses: ./.github/actions/stage | |
| with: | |
| arm: true | |
| from_artifact: true | |
| - name: Sign Helium binaries | |
| uses: azure/artifact-signing-action@v1 | |
| with: | |
| azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }} | |
| azure-client-id: ${{ secrets.AZURE_CLIENT_ID }} | |
| azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }} | |
| endpoint: ${{ secrets.AZURE_SIGNING_ENDPOINT }} | |
| signing-account-name: ${{ secrets.AZURE_SIGNING_ACCOUNT }} | |
| certificate-profile-name: ${{ secrets.AZURE_SIGNING_CERTIFICATE_NAME }} | |
| files: ${{ steps.stage.outputs.files-to-sign }} | |
| description: Helium | |
| description-url: https://github.com/imputnet/helium-windows | |
| # we want a different description here, so sign it separately again | |
| - name: Sign Helium update helper | |
| uses: azure/artifact-signing-action@v1 | |
| with: | |
| azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }} | |
| azure-client-id: ${{ secrets.AZURE_CLIENT_ID }} | |
| azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }} | |
| endpoint: ${{ secrets.AZURE_SIGNING_ENDPOINT }} | |
| signing-account-name: ${{ secrets.AZURE_SIGNING_ACCOUNT }} | |
| certificate-profile-name: ${{ secrets.AZURE_SIGNING_CERTIFICATE_NAME }} | |
| files: C:\helium-windows\build\src\out\Default\helium_update_helper.exe | |
| description: Helium Update Helper | |
| description-url: https://github.com/imputnet/helium-windows | |
| - name: Build Helium installer and package | |
| id: stage2 | |
| uses: ./.github/actions/stage | |
| with: | |
| arm: true | |
| gen_installer: true | |
| from_artifact: false | |
| - name: Sign Helium installer | |
| uses: azure/artifact-signing-action@v1 | |
| with: | |
| azure-tenant-id: ${{ secrets.AZURE_TENANT_ID }} | |
| azure-client-id: ${{ secrets.AZURE_CLIENT_ID }} | |
| azure-client-secret: ${{ secrets.AZURE_CLIENT_SECRET }} | |
| endpoint: ${{ secrets.AZURE_SIGNING_ENDPOINT }} | |
| signing-account-name: ${{ secrets.AZURE_SIGNING_ACCOUNT }} | |
| certificate-profile-name: ${{ secrets.AZURE_SIGNING_CERTIFICATE_NAME }} | |
| files: C:\helium-windows\build\helium*-installer.exe | |
| description: Helium Installer | |
| description-url: https://github.com/imputnet/helium-windows | |
| - name: Upload artifacts | |
| id: stage3 | |
| uses: ./.github/actions/stage | |
| with: | |
| arm: true | |
| upload_final: true | |
| from_artifact: false | |
| outputs: | |
| finished: ${{ steps.stage3.outputs.finished }} | |
| version: ${{ steps.stage3.outputs.version }} | |
| publish-release: | |
| needs: [build-final, build-arm-final] | |
| if: ${{ inputs.do-release && !cancelled() && !failure() | |
| && needs.build-final.result == 'success' | |
| && needs.build-arm-final.result == 'success' }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| fetch-depth: 0 | |
| fetch-tags: true | |
| - name: Download package | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: helium-x86_64 | |
| - name: Download arm package | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: helium-arm64 | |
| - name: Create release notes | |
| shell: bash | |
| run: | | |
| GH_RUN_HREF="https://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" | |
| submodule_commit_at() { | |
| git ls-tree "$1" helium-chromium | awk '{print $3}' | |
| } | |
| LAST_TAG=$(git describe --tags --abbrev=0) | |
| COMMIT_THEN=$(submodule_commit_at "$LAST_TAG") | |
| COMMIT_NOW=$(submodule_commit_at HEAD) | |
| { | |
| printf 'Changes since last build:\n### helium-windows\n```\n' | |
| git log --oneline "$LAST_TAG..HEAD" | |
| printf '```\n\n### helium-chromium\n```\n' | |
| git -C helium-chromium log --oneline "$COMMIT_THEN..$COMMIT_NOW" | |
| printf '```\n\n---\n\n' | |
| printf 'See [this GitHub Actions Run](%s) for the [Workflow file](%s/workflow) used ' | |
| printf 'as well as the build logs and artifacts\n' "$GH_RUN_HREF" "$GH_RUN_HREF" | |
| } | tee ./github_release_note.md | |
| - name: Publish release | |
| id: publish | |
| uses: imputnet/action-gh-release@v2.5 | |
| with: | |
| fail_on_unmatched_files: true | |
| body_path: ./github_release_note.md | |
| prerelease: true | |
| name: ${{ needs.build-final.outputs.version }} | |
| tag_name: ${{ needs.build-final.outputs.version }} | |
| files: | | |
| helium* | |
| outputs: | |
| assets: ${{ steps.publish.outputs.assets }} |