From 0a7b3d6b2fe60cc0b1ab726a969e44c9a86365d4 Mon Sep 17 00:00:00 2001 From: Anton Yakutovich Date: Tue, 11 Oct 2022 15:04:50 +0400 Subject: [PATCH] ci(nodejs.yml): refactor with single cache step (#8221) --- .github/workflows/nodejs.yml | 63 ++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 32 deletions(-) diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 2762a9592f1..f3f54041d0e 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -17,36 +17,37 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 + - name: Use Node.js 16.x - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: 16 - - name: Cache Node Modules - id: cache-node-modules - uses: actions/cache@v2 - with: - path: node_modules - key: node-modules-${{ hashFiles('package-lock.json') }} - - name: Cache Cypress binary - id: cache-cypress-binary - uses: actions/cache@v2 + + - name: Cache Node Modules and Cypress binary + uses: actions/cache@v3 + id: cache-primes with: - path: cypress/cache - key: cypress-binary-${{ hashFiles('package-lock.json') }} + path: | + node_modules + ${{ env.CYPRESS_CACHE_FOLDER }} + key: ${{ runner.os }}-node-and-cypress-${{ hashFiles('package-lock.json') }} + - name: Install dependencies - if: | - steps.cache-node-modules.outputs.cache-hit != 'true' || - steps.cache-cypress-binary.outputs.cache-hit != 'true' + if: steps.cache-primes.outputs.cache-hit != 'true' run: npm ci + - name: Lint code for errors only run: npm run lint-errors + - name: Run all tests run: npm run just-test-in-node && npm run test:unit-jest env: CI: true + - name: Build SwaggerUI run: npm run build + - name: Test build artifacts run: npm run test:artifact @@ -58,27 +59,25 @@ jobs: containers: ['+(a11y|security|bugs)/**/*.js', 'features/**/+(o|d)*.js', 'features/**/m*.js', 'features/**/!(o|d|m)*.js'] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 + - name: Use Node.js 16.x - uses: actions/setup-node@v2 + uses: actions/setup-node@v3 with: node-version: 16 - - name: Cache Node Modules - id: cache-node-modules - uses: actions/cache@v2 - with: - path: node_modules - key: node-modules-${{ hashFiles('package-lock.json') }} - - name: Cache Cypress binary - id: cache-cypress-binary - uses: actions/cache@v2 + + - name: Cache Node Modules and Cypress binary + uses: actions/cache@v3 + id: cache-primes with: - path: cypress/cache - key: cypress-binary-${{ hashFiles('package-lock.json') }} + path: | + node_modules + ${{ env.CYPRESS_CACHE_FOLDER }} + key: ${{ runner.os }}-node-and-cypress-${{ hashFiles('package-lock.json') }} + - name: Install dependencies - if: | - steps.cache-node-modules.outputs.cache-hit != 'true' || - steps.cache-cypress-binary.outputs.cache-hit != 'true' + if: steps.cache-primes.outputs.cache-hit != 'true' run: npm ci + - name: Cypress Test run: npx start-server-and-test cy:start http://localhost:3204 'npm run cy:run -- --spec "test/e2e-cypress/tests/${{ matrix.containers }}"'