diff --git a/.github/workflows/ci-master.yml b/.github/workflows/ci-master.yml index 15c83efd44659..80793e13b65e5 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()