Skip to content

spike: smoke test optimization #4

spike: smoke test optimization

spike: smoke test optimization #4

Workflow file for this run

name: Smoke Test App
on:
merge_group:
workflow_dispatch:
push:
branches:
- develop
pull_request:
types:
- opened
- synchronize
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
BuildForSmokeTest:
timeout-minutes: 5
runs-on: ubuntu-latest
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: Build app for smoke tests
run: NODE_OPTIONS='--max_old_space_size=6144' npm run app-build
# cache the build that we just created
- name: Cache build
uses: actions/cache@v4
with:
key: cache-build
path: packages/insomnia/build
SmokeTest:
needs: BuildForSmokeTest
timeout-minutes: 15
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
shardIndex: [1, 2, 3, 4, 5, 6, 7, 8]
shardTotal: [8]
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: Cache build
uses: actions/cache@v4
with:
key: cache-build
path: packages/insomnia/build
- name: Smoke test electron app
run: |
GIT_SYNC_SMOKE_TEST_TOKEN=${{env.GIT_SYNC_SMOKE_TEST_TOKEN}} \
npm run test:build -w packages/insomnia-smoke-test -- --project=Smoke --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }}
env:
GIT_SYNC_SMOKE_TEST_TOKEN: ${{ secrets.GIT_SYNC_SMOKE_TEST_TOKEN }}
# This step should always run even when previous steps fail
- name: Upload smoke test traces
uses: actions/upload-artifact@v4
if: failure()
with:
if-no-files-found: ignore
name: ubuntu-smoke-test-traces-${{ github.run_number }}
path: packages/insomnia-smoke-test/traces