From f93270abd543125c334b10240df684acf8f421e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Ovejero?= Date: Wed, 2 Aug 2023 17:38:35 +0200 Subject: [PATCH] ci: Parallelize `ci-master` (no-changelog) (#6819) * ci: Parallelize `ci-master` (no-changelog) * ci: Move notify-on-failure to own job * ci: Fix syntax * ci: Dry run by adding branch * ci: Fix job reference * ci: Ensure full lint * ci: Restore `CI_LINT_MASTER` * ci: Remove env from top level * ci: Add matrix strategy * ci: Remove excess quotes * ci: Remove excess key * ci: Try with `run_install` * Revert "ci: Try with `run_install`" This reverts commit e5778c5735974e755fd94b9c5ae4b8a33dbc73b2. * ci: Add missing strategy * ci: Remove temp branch * test: Comment out test (from other PR) --- .github/workflows/ci-master.yml | 81 ++++++++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml index 15c83efd44..80793e13b6 100644 --- a/.github/workflows/ci-master.yml +++ b/.github/workflows/ci-master.yml @@ -6,7 +6,7 @@ on: - master jobs: - build: + install-and-build: runs-on: ubuntu-latest timeout-minutes: 30 @@ -24,7 +24,7 @@ jobs: uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} - cache: 'pnpm' + cache: pnpm - name: Install dependencies run: pnpm install --frozen-lockfile @@ -32,6 +32,47 @@ jobs: - 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:${{ matrix.node-version }}-test-lint + + unit-test: + name: Unit tests + runs-on: ubuntu-latest + needs: install-and-build + strategy: + matrix: + node-version: [18.x, 20.x] + 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:${{ matrix.node-version }}-test-lint + + - uses: pnpm/action-setup@v2.2.4 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: pnpm + - name: Test run: pnpm test @@ -40,11 +81,47 @@ jobs: with: files: packages/@n8n/client-oauth2/coverage/cobertura-coverage.xml,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-and-build + strategy: + matrix: + node-version: [18.x, 20.x] + 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:${{ matrix.node-version }}-test-lint + + - uses: pnpm/action-setup@v2.2.4 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + cache: pnpm + - name: Lint env: CI_LINT_MASTER: true run: pnpm lint + notify-on-failure: + name: Notify Slack on failure + runs-on: ubuntu-latest + needs: [unit-test, lint] + steps: - name: Notify Slack on failure uses: act10ns/slack@v2.0.0 if: failure()