diff --git a/.circleci/config.yml b/.circleci/config.yml index d600bff95..7cd104157 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -22,12 +22,6 @@ jobs: - run: name: Build application command: npm run build - - run: - name: Package lock security test - command: npx lockfile-lint --path package-lock.json --allowed-hosts npm - - run: - name: Run linters - command: npm run lint - run: name: Install Lighthouse tools command: sudo npm install -g @lhci/cli diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 000000000..118feae95 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,71 @@ +name: QA + +on: + pull_request: + branches: ["*"] + +jobs: + check-lock: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Validate lock file + run: | + npx lockfile-lint --path package-lock.json --allowed-hosts npm yarn + + tsc-and-linters: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Cache node modules + uses: actions/cache@v2 + env: + cache-name: cache-node-modules + with: + # npm cache files are stored in `~/.npm` on Linux/macOS + path: ~/.npm + key: ${{ runner.os }}-qa-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-qa-${{ env.cache-name }}- + ${{ runner.os }}-qa- + ${{ runner.os }}- + + - name: Install deps + run: | + npm ci + + - name: Run tsc + run: | + npm run tsc + + - name: Run lint + run: | + npm run lint + + jest-tests: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - name: Cache node modules + uses: actions/cache@v2 + env: + cache-name: cache-node-modules + with: + # npm cache files are stored in `~/.npm` on Linux/macOS + path: ~/.npm + key: ${{ runner.os }}-qa-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-qa-${{ env.cache-name }}- + ${{ runner.os }}-qa- + ${{ runner.os }}- + + - name: Install deps + run: | + npm ci + + - name: Run jest + run: | + npm run test