From 1106ee4e3aa014ebd526700af4d30bec313ec15f Mon Sep 17 00:00:00 2001 From: midudev Date: Sun, 8 Aug 2021 21:53:47 +0200 Subject: [PATCH] Parallelize CI --- .github/workflows/pipeline.yml | 65 +++++++++++++++++++++++++++++++++- 1 file changed, 64 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pipeline.yml b/.github/workflows/pipeline.yml index b9100e4..9acaa93 100644 --- a/.github/workflows/pipeline.yml +++ b/.github/workflows/pipeline.yml @@ -8,13 +8,18 @@ on: types: [opened, synchronize] jobs: - deploy: + + avoid_reduncy: runs-on: ubuntu-18.04 steps: - name: Cancel Previous Redundant Builds uses: styfle/cancel-workflow-action@0.9.1 with: access_token: ${{ github.token }} + + lint: + runs-on: ubuntu-18.04 + steps: - uses: actions/checkout@v2 with: fetch-depth: 0 @@ -25,16 +30,74 @@ jobs: run: npm ci - name: Lint run: npm run eslint + + build: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - uses: actions/setup-node@v2 + with: + node-version: '14' + - name: Install dependencies + run: npm ci - name: Build run: npm run build + - uses: actions/upload-artifact@v2 + with: + name: dist + path: dist + + test: + needs: [lint, build] + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - uses: actions/setup-node@v2 + with: + node-version: '14' + - name: Install dependencies + run: npm ci + - uses: actions/download-artifact@v2 + with: + name: dist + path: dist - name: Test run: npm test + + e2e: + needs: [lint, build] + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - uses: actions/setup-node@v2 + with: + node-version: '14' + - name: Install dependencies + run: npm ci + - uses: actions/download-artifact@v2 + with: + name: dist + path: dist - name: E2E tests uses: cypress-io/github-action@v2 with: command: npm run test:e2e start: npm run start-test wait-on: http://localhost:5000 + + deploy: + needs: [tests, e2e] + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 - name: Deploy to Heroku if: ${{ github.event_name == 'push' }} uses: akhileshns/heroku-deploy@v3.12.12