n8n/.github/workflows/ci-pull-requests.yml
OlegIvaniv e4356283a8
ci: Additionally checkout PR head for e2e tests (no-changelog) (#6105)
* ci: Do not force branch for PR e2e smoke tests

* Use commit SHA for smoke test

* Debug: Echo git before running e2e

* Debugging: Create local merge commit

* Use container with git installed

* Debugging: Manual git checkout PR

* Do not skip checkout

* Use container with git installed

* Add breaking test, install git manualyl

* Use sudo

* Use container with git preinstalled

* Remove debugging e2e
2023-04-27 13:09:50 +02:00

137 lines
3.7 KiB
YAML

name: Build, unit/smoke test and lint branch
on: [pull_request]
jobs:
install:
name: Install & Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
repository: n8n-io/n8n
ref: ${{ inputs.branch }}
- uses: pnpm/action-setup@v2.2.4
- name: Use Node.js 16
uses: actions/setup-node@v3
with:
node-version: 16.x
cache: pnpm
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Build
run: pnpm build
- name: Cache build artifacts
uses: actions/cache@v3
with:
path: |
/github/home/.cache
/github/home/.pnpm-store
./node_modules
./packages
key: ${{ github.sha }}-base:16.18.1-test-lint
unit-test:
name: Unit tests
runs-on: ubuntu-latest
needs: install
steps:
- uses: actions/checkout@v3
with:
repository: n8n-io/n8n
ref: ${{ inputs.branch }}
- name: Restore cached build artifacts
uses: actions/cache@v3
with:
path: |
/github/home/.cache
/github/home/.pnpm-store
./node_modules
./packages
key: ${{ github.sha }}-base:16.18.1-test-lint
- uses: pnpm/action-setup@v2.2.4
- name: Use Node.js 16
uses: actions/setup-node@v3
with:
node-version: 16.x
cache: pnpm
- name: Test
run: pnpm test
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v3
with:
files: packages/cli/coverage/cobertura-coverage.xml,packages/core/coverage/cobertura-coverage.xml,packages/design-system/coverage/cobertura-coverage.xml,packages/editor-ui/coverage/cobertura-coverage.xml,packages/nodes-base/coverage/cobertura-coverage.xml,packages/workflow/coverage/cobertura-coverage.xml
lint:
name: Lint changes
runs-on: ubuntu-latest
needs: install
steps:
- uses: actions/checkout@v3
with:
repository: n8n-io/n8n
ref: ${{ inputs.branch }}
- name: Restore cached build artifacts
uses: actions/cache@v3
with:
path: |
/github/home/.cache
/github/home/.pnpm-store
./node_modules
./packages
key: ${{ github.sha }}-base:16.18.1-test-lint
- uses: pnpm/action-setup@v2.2.4
- name: Use Node.js 16
uses: actions/setup-node@v3
with:
node-version: 16.x
cache: pnpm
- name: Fetch base branch for `git diff`
run: git fetch origin ${{ github.event.pull_request.base.ref }}:${{ github.event.pull_request.base.ref }}
- name: Run ESLint on changes only
env:
ESLINT_PLUGIN_DIFF_COMMIT: ${{ github.event.pull_request.base.ref }}
run: pnpm lint
smoke-test:
name: E2E [Electron/Node 16]
uses: ./.github/workflows/e2e-reusable.yml
with:
branch: ${{ github.event.pull_request.base.ref }}
user: ${{ github.event.inputs.user || 'PR User' }}
spec: ${{ github.event.inputs.spec || 'e2e/0-smoke.cy.ts' }}
run-env: browsers:node16.18.0-chrome107-ff106-edge
record: false
parallel: false
pr_number: ${{ github.event.number }}
containers: '[1]'
secrets:
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
checklist_job:
runs-on: ubuntu-latest
name: Checklist job
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Checklist
uses: wyozi/contextual-qa-checklist-action@master
with:
gh-token: ${{ secrets.GITHUB_TOKEN }}
comment-footer: Make sure to check off this list before asking for review.