From f0b0662b51de1f182e13a0115bafdc3bdcfbb18f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20Ovejero?= Date: Tue, 1 Aug 2023 12:55:40 +0200 Subject: [PATCH] ci: Parallelize `ci-master` (no-changelog) --- .github/workflows/ci-master.yml | 93 +++++++++++++++++++++++++++++---- 1 file changed, 82 insertions(+), 11 deletions(-) diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml index 15c83efd44..8ecd17a7c4 100644 --- a/.github/workflows/ci-master.yml +++ b/.github/workflows/ci-master.yml @@ -32,18 +32,15 @@ jobs: - name: Build run: pnpm build - - name: Test - run: pnpm test - - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3 + - name: Cache build artifacts + uses: actions/cache@v3 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 - - - name: Lint - env: - CI_LINT_MASTER: true - run: pnpm lint + path: | + /github/home/.cache + /github/home/.pnpm-store + ./node_modules + ./packages + key: ${{ github.sha }}-base:18-test-lint - name: Notify Slack on failure uses: act10ns/slack@v2.0.0 @@ -53,3 +50,77 @@ jobs: channel: '#updates-build-alerts' webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }} message: Master branch (build or test or lint) failed (${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) + + 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:18-test-lint + + - uses: pnpm/action-setup@v2.2.4 + + - name: Use Node.js 18 + uses: actions/setup-node@v3 + with: + node-version: 18.x + cache: pnpm + + - name: Test + run: pnpm test + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3 + 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 + env: + CI_LINT_MASTER: true + 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:18-test-lint + + - uses: pnpm/action-setup@v2.2.4 + + - name: Use Node.js 18 + uses: actions/setup-node@v3 + with: + node-version: 18.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