ci: add pull request quality gates
CI / install-and-build (pull_request) Successful in 1m29s
CI / format (pull_request) Successful in 51s
CI / typecheck-source (pull_request) Successful in 41s
CI / typecheck-tests (pull_request) Successful in 39s
CI / test (pull_request) Successful in 51s
CI / lint (pull_request) Successful in 21s
CI / install-and-build (pull_request) Successful in 1m29s
CI / format (pull_request) Successful in 51s
CI / typecheck-source (pull_request) Successful in 41s
CI / typecheck-tests (pull_request) Successful in 39s
CI / test (pull_request) Successful in 51s
CI / lint (pull_request) Successful in 21s
Co-Authored-By: gpt-5.6-terra <noreply@openai.com>
This commit was merged in pull request #12.
This commit is contained in:
@@ -0,0 +1,9 @@
|
||||
name: Setup
|
||||
description: Set up the Node version required by this repository. Requires actions/checkout to have already run.
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: .node-version
|
||||
@@ -0,0 +1,124 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
install-and-build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: ./.gitea/actions/setup
|
||||
|
||||
- name: Clean install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Production build
|
||||
run: npm run build
|
||||
|
||||
- name: Archive dependencies
|
||||
run: tar -czf node_modules.tar.gz node_modules
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: node_modules-${{ github.run_id }}
|
||||
path: node_modules.tar.gz
|
||||
|
||||
- name: Archive build artifacts
|
||||
run: tar -czf build-artifacts.tar.gz dist
|
||||
|
||||
- uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: build-artifacts-${{ github.run_id }}
|
||||
path: build-artifacts.tar.gz
|
||||
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: ./.gitea/actions/setup
|
||||
|
||||
- name: Clean install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Lint
|
||||
run: npm run lint
|
||||
|
||||
format:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: ./.gitea/actions/setup
|
||||
|
||||
- name: Clean install dependencies
|
||||
run: npm ci
|
||||
|
||||
- name: Check formatting
|
||||
run: npm run format:check
|
||||
|
||||
typecheck-source:
|
||||
runs-on: ubuntu-latest
|
||||
needs: install-and-build
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: ./.gitea/actions/setup
|
||||
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: node_modules-${{ github.run_id }}
|
||||
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: build-artifacts-${{ github.run_id }}
|
||||
|
||||
- name: Restore dependencies and build artifacts
|
||||
run: |
|
||||
tar -xzf node_modules.tar.gz
|
||||
tar -xzf build-artifacts.tar.gz
|
||||
|
||||
- name: Typecheck source
|
||||
run: npm run typecheck
|
||||
|
||||
typecheck-tests:
|
||||
runs-on: ubuntu-latest
|
||||
needs: install-and-build
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: ./.gitea/actions/setup
|
||||
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: node_modules-${{ github.run_id }}
|
||||
|
||||
- name: Restore dependencies
|
||||
run: tar -xzf node_modules.tar.gz
|
||||
|
||||
- name: Typecheck tests
|
||||
run: npm run typecheck:test
|
||||
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
needs: install-and-build
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: ./.gitea/actions/setup
|
||||
|
||||
- uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: node_modules-${{ github.run_id }}
|
||||
|
||||
- name: Restore dependencies
|
||||
run: tar -xzf node_modules.tar.gz
|
||||
|
||||
- name: Run full test suite
|
||||
run: npm test
|
||||
Reference in New Issue
Block a user