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: # Skip jobs for release PRs 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@v3 - name: Setup Node uses: actions/setup-node@v3 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: Run critical test on packaged app run: npm run test:package --prefix packages/insomnia-smoke-test -- --project=Critical - name: Upload smoke test traces uses: actions/upload-artifact@v3 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@v3 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