--- name: CI - Web on: push: branches: - main - next - version-* pull_request: branches: - main - version-* concurrency: group: "${{ github.workflow }}-${{ github.ref }}" cancel-in-progress: "${{ !startsWith(github.ref, 'refs/heads/version-') && github.ref != 'refs/heads/main' && github.ref != 'refs/heads/next' }}" jobs: lint: runs-on: ubuntu-latest timeout-minutes: 15 steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v5 - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10 - name: Pin pnpm store directory run: | echo "PNPM_HOME=${RUNNER_TEMP}/pnpm-home" >> "$GITHUB_ENV" echo "npm_config_store_dir=${RUNNER_TEMP}/pnpm-home/store" >> "$GITHUB_ENV" - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v4 with: node-version-file: package.json cache: pnpm cache-dependency-path: | pnpm-lock.yaml web/pnpm-lock.yaml - name: Install dependencies run: | pnpm install --frozen-lockfile pnpm --dir web install --frozen-lockfile - name: Lint run: pnpm --dir web run lint-check - name: Check types run: pnpm --dir web run tsc - name: Check formatting run: pnpm --dir web run prettier-check - name: Lit analyse run: pnpm --dir web run lit-analyse build: runs-on: ubuntu-latest timeout-minutes: 15 steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v5 - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10 - name: Pin pnpm store directory run: | echo "PNPM_HOME=${RUNNER_TEMP}/pnpm-home" >> "$GITHUB_ENV" echo "npm_config_store_dir=${RUNNER_TEMP}/pnpm-home/store" >> "$GITHUB_ENV" - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v4 with: node-version-file: package.json cache: pnpm cache-dependency-path: | pnpm-lock.yaml web/pnpm-lock.yaml - name: Install dependencies run: | pnpm install --frozen-lockfile pnpm --dir web install --frozen-lockfile - name: build env: NODE_ENV: "production" working-directory: web/ run: pnpm run build ci-web-mark: if: always() needs: - build - lint runs-on: ubuntu-latest steps: - uses: re-actors/alls-green@b5b5b37504aa4183270bd3d855c52a67f212be35 # release/v1 with: jobs: ${{ toJSON(needs) }} test: needs: - ci-web-mark runs-on: ubuntu-latest timeout-minutes: 30 steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v5 - uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10 - name: Pin pnpm store directory run: | echo "PNPM_HOME=${RUNNER_TEMP}/pnpm-home" >> "$GITHUB_ENV" echo "npm_config_store_dir=${RUNNER_TEMP}/pnpm-home/store" >> "$GITHUB_ENV" - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v4 with: node-version-file: package.json cache: pnpm cache-dependency-path: | pnpm-lock.yaml web/pnpm-lock.yaml - name: Install dependencies run: | pnpm install --frozen-lockfile pnpm --dir web install --frozen-lockfile - name: test working-directory: web/ run: pnpm exec vitest run --project "Unit Tests"