name: Test, lint and build on: push: branches: - master pull_request: types: [opened, reopened, synchronize] jobs: test_lint_build: runs-on: ubuntu-latest steps: - name: Checkout Code uses: actions/checkout@v2 - name: Cache node modules id: cache-npm uses: actions/cache@v3 env: cache-name: cache-node-modules with: path: ~/.npm key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-build-${{ env.cache-name }}- ${{ runner.os }}-build- ${{ runner.os }}- - if: ${{ steps.cache-npm.outputs.cache-hit != 'true' }} name: List the state of node modules continue-on-error: true run: npm list - name: Install modules run: npm ci - name: Run eslint run: npm run lint:check - name: Run tests run: npm run test - name: Setup Docker Buildx Driver id: docker_driver_setup uses: docker/setup-buildx-action@v1 - name: Run docker build id: docker_build uses: docker/build-push-action@v2 with: context: ./ file: ./Dockerfile push: false cache-from: type=gha cache-to: type=gha,mode=max