name: Release Recurring # This workflow bakes executables of the major platforms for Testing purposes on: merge_group: workflow_dispatch: push: branches: - develop pull_request: types: - opened - synchronize concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true env: PR_NUMBER: ${{ github.event.number }} jobs: build-and-upload-artifacts: timeout-minutes: 25 # Skip jobs for release PRs # windows on recurring should be portable if: ${{ !startsWith(github.head_ref, 'release/') }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: include: - os: "macos-latest" build-targets: "zip" - os: "windows-latest" build-targets: "portable" - os: "ubuntu-latest" build-targets: "tar.gz" steps: - name: Checkout branch uses: actions/checkout@v4 - name: Setup Node uses: actions/setup-node@v4 with: node-version-file: ".nvmrc" cache: 'npm' cache-dependency-path: package-lock.json - name: Install packages run: npm ci - name: Bump version shell: bash run: npm --workspaces version prerelease --preid="$(git rev-parse --short HEAD)${{ github.event_name == 'pull_request' && '.pr-$PR_NUMBER' || '' }}" --no-git-tag-version - name: Package shell: bash run: NODE_OPTIONS='--max_old_space_size=6144' BUILD_TARGETS='${{ matrix.build-targets }}' npm run app-package # - name: Set publish metadata # Checksum for provenance must be calculated before moving artifacts temporarily # id: metadata # run: | # INSO_VERSION=$(jq .version packages/insomnia-inso/package.json -rj) # echo "INSO_VERSION=${INSO_VERSION}" >> $GITHUB_ENV # ./.github/scripts/generate-binary-digest.sh # env: # ARTIFACT_PATH: "packages" # CLI_ARTIFACT_SHAFILE: ${{runner.temp}}/cli.sha256 # ELECTRON_ARTIFACT_SHAFILE: ${{runner.temp}}/electron.sha256 - name: Test critical path on packaged electron app run: npm run test:package -w packages/insomnia-smoke-test -- --project=Critical env: INSOMNIA_UPDATES_URL: http://localhost:4010 - name: Upload smoke test traces uses: actions/upload-artifact@v4 with: if-no-files-found: ignore name: ${{ matrix.os }}-package-critical-test-traces-${{ github.run_number }} path: packages/insomnia-smoke-test/traces - name: Upload artifacts uses: actions/upload-artifact@v4 with: if-no-files-found: ignore name: ${{ matrix.os }}-artifacts-${{ github.run_number }} path: | packages/insomnia/dist/*.exe packages/insomnia/dist/*.tar.gz packages/insomnia/dist/*.zip