diff --git a/.circleci/config.yml b/.circleci/config.yml index d600bff95..0e1d28804 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,7 +2,7 @@ version: 2 jobs: build-lint-benchmark: docker: - - image: circleci/node:10.7.0-browsers + - image: circleci/node:14.4.0-browsers steps: - checkout - restore_cache: @@ -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..fac65e198 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,98 @@ +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 check-types + + - 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 + + translation-messages: + 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: Check message extraction + run: | + npm run extract-messages + git diff --exit-code ./locale