Manual Release Test Version #3
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: 'Manual Release Test Version' | ||
| on: | ||
| workflow_dispatch: | ||
| inputs: | ||
| version: | ||
| description: "Specify a version for the test release (ex. test-browser)" | ||
| required: true | ||
| type: string | ||
| default: "test-version" | ||
| jobs: | ||
| publish-studio: | ||
| permissions: | ||
| contents: write | ||
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| # There is a bug on Ubuntu 22.04 (ubuntu-latest) regarding stripping a binary for a different | ||
| # architecture. Since we include both x86_64 and arm64 in linux a solution is to use ubuntu 20.04 | ||
| # https://github.com/electron/forge/issues/3102 | ||
| # https://github.com/electron/forge/issues/3701 | ||
| platform: [macos-latest, windows-latest, ubuntu-20.04] | ||
| runs-on: ${{ matrix.platform }} | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| - name: Set version for test release | ||
| with: | ||
| version: ${{ inputs.version }} | ||
| run: python update_version.py | ||
|
Check failure on line 32 in .github/workflows/release-test-version.yml
|
||
| - name: setup node | ||
| uses: actions/setup-node@v4 | ||
| with: | ||
| node-version: 20 | ||
| # try earlier python version for appdmg | ||
| # https://github.com/electron/forge/issues/3371#issuecomment-2105195302 | ||
| - name: Install Python 3.11.4 | ||
| uses: actions/setup-python@v4 | ||
| with: | ||
| python-version: '3.11.4' | ||
| - name: install dependencies | ||
| run: npm ci | ||
| - name: setup macos keychain | ||
| if: startsWith(matrix.platform, 'macos-') | ||
| run: | | ||
| echo "$APPLE_API_KEY" > ./apple_api_key.p8 | ||
| echo $APPLE_CERTIFICATE_P12 | base64 --decode > certificate.p12 | ||
| security create-keychain -p "$CERTIFICATE_PASSWORD" build.keychain | ||
| security default-keychain -s build.keychain | ||
| security unlock-keychain -p "$CERTIFICATE_PASSWORD" build.keychain | ||
| security import certificate.p12 -k build.keychain -P "$CERTIFICATE_PASSWORD" -T /usr/bin/codesign | ||
| security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$CERTIFICATE_PASSWORD" build.keychain | ||
| env: | ||
| APPLE_CERTIFICATE_P12: ${{ secrets.APPLE_CERTIFICATE_P12 }} | ||
| CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_P12_PASSWORD }} | ||
| APPLE_API_KEY: ${{ secrets.APPLE_API_KEY }} | ||
| - name: setup windows certificate | ||
| if: startsWith(matrix.platform, 'windows-') | ||
| run: | | ||
| $bytes = [Convert]::FromBase64String("${{ secrets.WINDOWS_CERTIFICATE }}") | ||
| [IO.File]::WriteAllBytes("certificate.pfx", $bytes) | ||
| env: | ||
| WINDOWS_CERTIFICATE: ${{ secrets.WINDOWS_CERTIFICATE }} | ||
| - name: publish macOS | ||
| if: startsWith(matrix.platform, 'macos-') | ||
| env: | ||
| NODE_OPTIONS: '--max_old_space_size=8192' | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| # notarization | ||
| APPLE_API_KEY_ID: ${{ secrets.APPLE_API_KEY_ID }} | ||
| APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }} | ||
| APPLE_API_KEY: ./apple_api_key.p8 | ||
| # sentry integration | ||
| SENTRY_DSN: ${{ secrets.SENTRY_DSN }} | ||
| # sentry vite plugin integration during build | ||
| SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | ||
| SENTRY_ORG: ${{ vars.SENTRY_ORG }} | ||
| SENTRY_PROJECT: ${{ vars.SENTRY_PROJECT }} | ||
| run: | | ||
| # on macos we also build the x64 app separately | ||
| npm run publish -- --arch=x64 | ||
| npm run publish | ||
| - name: publish Windows | ||
| if: startsWith(matrix.platform, 'windows-') | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| # windows cert | ||
| WINDOWS_CERTIFICATE_PATH: ./certificate.pfx | ||
| WINDOWS_CERTIFICATE_PASSWORD: ${{ secrets.WINDOWS_CERTIFICATE_PASSWORD }} | ||
| # sentry integration | ||
| SENTRY_DSN: ${{ secrets.SENTRY_DSN }} | ||
| # sentry vite plugin integration during build | ||
| SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | ||
| SENTRY_ORG: ${{ vars.SENTRY_ORG }} | ||
| SENTRY_PROJECT: ${{ vars.SENTRY_PROJECT }} | ||
| run: npm run publish | ||
| - name: publish Linux | ||
| if: startsWith(matrix.platform, 'ubuntu-') | ||
| env: | ||
| NODE_OPTIONS: '--max_old_space_size=8192' | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| # sentry integration | ||
| SENTRY_DSN: ${{ secrets.SENTRY_DSN }} | ||
| # sentry vite plugin integration during build | ||
| SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} | ||
| SENTRY_ORG: ${{ vars.SENTRY_ORG }} | ||
| SENTRY_PROJECT: ${{ vars.SENTRY_PROJECT }} | ||
| run: | | ||
| sudo apt install -y rpm | ||
| npm run publish | ||
| npm run publish -- --arch=arm64 | ||
| - name: cleanup macos certificates | ||
| if: startsWith(matrix.platform, 'macos-') | ||
| run: | | ||
| rm apple_api_key.p8 | ||
| rm certificate.p12 | ||
| - name: cleanup windows certificates | ||
| if: startsWith(matrix.platform, 'windows-') | ||
| run: | | ||
| del certificate.pfx | ||