name: Test on: merge_group: workflow_dispatch: push: branches: - develop pull_request: types: - opened - synchronize concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: Test: runs-on: ubuntu-latest 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: Lint run: npm run lint - name: Lint markdown run: npm run lint:markdown - name: Type checks run: npm run type-check - name: Test Insomnia run: npm test -w packages/insomnia - name: Test Inso run: npm test -w packages/insomnia-inso - name: Test Insomnia Testing run: npm test -w packages/insomnia-testing - name: Test O2K run: npm test -w packages/openapi-2-kong - name: Build app for smoke tests run: NODE_OPTIONS='--max_old_space_size=6144' npm run app-build - name: Smoke test electron app # Partial Smoke test run, for regular CI triggers if: ${{ !startsWith(github.head_ref, 'release/') }} run: npm run test:build -w packages/insomnia-smoke-test -- --project=Smoke - name: Prerelease test electron app # Full Smoke test run, for Release PRs if: ${{ startsWith(github.head_ref, 'release/') }} run: npm run test:build -w packages/insomnia-smoke-test -- --project=Default - name: Set Inso CLI variables id: inso-variables shell: bash run: | INSO_VERSION="$(jq .version packages/insomnia-inso/package.json -rj)-run.${{ github.run_number }}" PKG_NAME="inso-ubuntu-latest-$INSO_VERSION" echo "pkg-name=$PKG_NAME" >> $GITHUB_OUTPUT echo "inso-version=$INSO_VERSION" >> $GITHUB_OUTPUT - name: Run Inso NPM package tests run: npm run test:bundled-inso - name: Package Inso CLI binary run: | echo "Replacing node-libcurl electron binary with node binary" node_modules/.bin/node-pre-gyp install --update-binary --directory node_modules/@getinsomnia/node-libcurl npm run inso-package env: VERSION: ${{ steps.inso-variables.outputs.inso-version }} - name: Create Inso CLI artifacts run: npm run inso-package:artifacts env: VERSION: ${{ steps.inso-variables.outputs.inso-version }} - name: Upload Inso CLI artifacts uses: actions/upload-artifact@v3 with: if-no-files-found: ignore name: ${{ steps.inso-variables.outputs.pkg-name }} path: packages/insomnia-inso/artifacts - name: Smoke test Inso CLI run: npm run test:smoke:cli # This step should always run even when previous steps fail - name: Upload smoke test traces uses: actions/upload-artifact@v3 if: failure() with: if-no-files-found: ignore name: ubuntu-smoke-test-traces-${{ github.run_number }} path: packages/insomnia-smoke-test/traces