n8n/.github/workflows/ci-pull-requests.yml
Mutasem Aldmour 71c349b071
ci: Add PR checklist (#5628)
* ci: Add PR checklist

* chore: add test change

* ci: add name

* ci: merge into workfow

* test: test action

* ci: add checklist

* ci: test checklist

* ci: remove comment

* ci: test checklist

* ci: add item to check item

* ci: update checklist items

* ci: add checklist item for migraitons

* ci: add hooks checklist item

* chore: remove comment
2023-03-09 12:49:37 +01:00

132 lines
3.3 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
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
if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip-e2e') }}
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: base:16.18.1
record: false
parallel: false
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.