Update pnpm to v9.7.1 and stylelint to v16.8.2 #2015
Workflow file for this run
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 | |
# In the future check if Devcontainers should be used to all run the pipeline | |
on: | |
workflow_dispatch: | |
push: | |
branches: [main] | |
pull_request: | |
branches: [main] | |
env: | |
HUSKY: 0 | |
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 | |
TURBO_CACHE_DIR: .turbo | |
VRT_BROWSER: chromium | |
jobs: | |
build-devcontainer: | |
if: github.ref == 'refs/heads/main' && github.event_name == 'push' | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
permissions: | |
packages: write | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Repository to lowercase | |
id: lowercase-repository | |
run: | | |
echo "repository=${GITHUB_REPOSITORY@L}" >> $GITHUB_OUTPUT | |
- name: Build dev container image | |
uses: devcontainers/ci@v0.3 | |
with: | |
configFile: ./.devcontainer/devcontainer-base.json | |
imageName: ghcr.io/${{ steps.lowercase-repository.outputs.repository }}/devcontainer | |
cacheFrom: ghcr.io/${{ steps.lowercase-repository.outputs.repository }}/devcontainer | |
push: always | |
test: | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Cache Turbo | |
uses: actions/cache@v4 | |
with: | |
save-always: true | |
path: ${{ env.TURBO_CACHE_DIR }} | |
key: ${{ runner.os }}-turbo-${{ github.sha }}-${{ github.job }} | |
restore-keys: | | |
${{ runner.os }}-turbo- | |
- name: Use pnpm | |
uses: pnpm/action-setup@v3 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: 'package.json' | |
cache: 'pnpm' | |
- name: Install dependencies | |
# change to pnpm ci once it is implemented | |
run: | | |
pnpm i --frozen-lockfile --loglevel warn | |
pnpm exec playwright install --with-deps chromium | |
- name: Lint files | |
run: pnpm run lint --cache-dir=${{ env.TURBO_CACHE_DIR }} | |
- name: Run tests | |
run: pnpm run test --cache-dir=${{ env.TURBO_CACHE_DIR }} | |
- name: Build | |
run: pnpm run build --cache-dir=${{ env.TURBO_CACHE_DIR }} | |
vrt: | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
lfs: 'true' | |
- name: Pull LFS files | |
run: git lfs pull | |
- name: Cache Turbo | |
uses: actions/cache@v4 | |
with: | |
save-always: true | |
path: ${{ env.TURBO_CACHE_DIR }} | |
key: ${{ runner.os }}-turbo-${{ github.sha }}-${{ github.job }} | |
restore-keys: | | |
${{ runner.os }}-turbo- | |
- name: Use pnpm | |
uses: pnpm/action-setup@v3 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: 'package.json' | |
cache: 'pnpm' | |
- name: Install dependencies | |
# change to pnpm ci once it is implemented | |
run: | | |
pnpm i --frozen-lockfile --loglevel warn | |
pnpm exec playwright install --with-deps ${{ env.VRT_BROWSER }} | |
- name: Run tests | |
run: pnpm run vrt --cache-dir="${{ env.TURBO_CACHE_DIR }}" | |
- name: Upload report | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: vrt-report | |
path: | | |
apps/*/vrt/report | |
packages/*/vrt/report | |
retention-days: 1 | |
e2e: | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
strategy: | |
matrix: | |
browser: [chromium, firefox, webkit] | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Restore turbo cache | |
uses: actions/cache@v4 | |
with: | |
save-always: true | |
path: ${{ env.TURBO_CACHE_DIR }} | |
key: ${{ runner.os }}-turbo-${{ github.sha }}-${{ github.job }} | |
restore-keys: | | |
${{ runner.os }}-turbo- | |
- name: Use pnpm | |
uses: pnpm/action-setup@v3 | |
- name: Use Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version-file: 'package.json' | |
cache: 'pnpm' | |
- name: Install dependencies | |
# change to pnpm ci once it is implemented | |
run: | | |
pnpm i --frozen-lockfile --loglevel warn | |
pnpm exec playwright install --with-deps ${{ matrix.browser }} | |
- name: Build | |
run: pnpm run build --cache-dir=${{ env.TURBO_CACHE_DIR }} | |
env: | |
VITE_E2E: true | |
- name: Run tests | |
run: pnpm run e2e --force --no-cache -- --project="${{ matrix.browser }}" | |
- uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: e2e-report-${{ matrix.browser }} | |
path: apps/*/e2e/results | |
retention-days: 1 |