chore: Basic nx cloud CI (#755) #8639
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
env: | |
NODE_VERSION: 18.2 | |
PNPM_VERSION: 8 | |
jobs: | |
gitleaks: | |
name: 🔒 Run Git leaks | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
- uses: pnpm/action-setup@v4 | |
with: | |
version: ${{ env.PNPM_VERSION }} | |
# Skip post-install scripts here, as a malicious | |
# script could steal NODE_AUTH_TOKEN. | |
- name: Install dependencies | |
run: pnpm install --frozen-lockfile --ignore-scripts | |
env: | |
CI: true | |
NODE_AUTH_TOKEN: ${{ secrets.CI_NPM_READ_ORG }} | |
- name: Gitleaks | |
run: npm run leaks | |
shell: bash | |
pr: | |
name: 👷 Build / Lint / Test | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: pnpm/action-setup@v4 | |
with: | |
version: ${{ env.PNPM_VERSION }} | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
cache: 'pnpm' | |
- name: Restore cached npm dependencies | |
uses: actions/cache/restore@v4 | |
with: | |
path: | | |
node_modules | |
key: npm-dependencies-${{ hashFiles('pnpm-lock.yaml') }} | |
- name: Install dependencies | |
run: pnpm install --frozen-lockfile --ignore-scripts | |
env: | |
CI: true | |
NODE_AUTH_TOKEN: ${{ secrets.CI_NPM_READ_ORG }} | |
- name: Set NX cloud shas | |
uses: nrwl/nx-set-shas@v4 | |
- name: Install Playwright Browsers | |
run: npx playwright install --with-deps | |
- name: Cache npm dependencies | |
uses: actions/cache/save@v4 | |
with: | |
path: | | |
node_modules | |
key: npm-dependencies-${{ hashFiles('pnpm-lock.yaml') }} | |
- name: Build | |
run: pnpm run build | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.CI_NPM_READ_ORG }} | |
- name: Lint | |
run: pnpm run lint | |
- name: Test | |
run: pnpm run test | |
- name: E2E | |
run: pnpm nx affected --target test:e2e | |
- name: Upload HTML report | |
if: always() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: e2e-report | |
path: packages/**/playwright-report |