Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/actions/setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,19 @@ runs:
using: composite
steps:
- name: Set up Node.js
uses: actions/setup-node@v6
uses: actions/setup-node@949feb2413d6458794dcd2491c4babbbce0c15c1 # v7.1.0
with:
node-version: 24
package-manager-cache: false
registry-url: ${{ inputs.registry-url }}
- name: Set up pnpm
uses: pnpm/action-setup@v6
uses: pnpm/action-setup@ea17c68df8912ef543352723c149a84f56e3d413 # v6.1.0
- name: Locate dependency cache
id: store
shell: bash
run: echo "path=$(pnpm store path --silent)" >> "$GITHUB_OUTPUT"
- name: Cache dependencies
uses: actions/cache@v6
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: ${{ steps.store.outputs.path }}
key: pnpm-store-${{ runner.os }}-${{ runner.arch }}-node24-${{ hashFiles('pnpm-lock.yaml') }}
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/api-sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
issues: write
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Setup workspace
uses: ./.github/actions/setup
- name: Run API sync check
Expand Down Expand Up @@ -48,7 +48,7 @@ jobs:
echo "$MISSING_LIST" > missing-endpoints.txt
fi
- name: Upload sync report
uses: actions/upload-artifact@v7
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7
with:
name: syncReport
path: |
Expand All @@ -57,7 +57,7 @@ jobs:
retention-days: 30
- name: Check for new endpoints and create issue
if: steps.sync.outputs.missing_count > 0
uses: actions/github-script@v8
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
with:
script: |
const fs = require('fs');
Expand Down
30 changes: 0 additions & 30 deletions .github/workflows/biome.yml

This file was deleted.

17 changes: 0 additions & 17 deletions .github/workflows/build.yml

This file was deleted.

92 changes: 53 additions & 39 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,81 +1,95 @@
name: CI
'on':
push:
pull_request:
branches:
- main
pull_request:
push:
branches:
- main
paths-ignore:
- '**/*.md'
workflow_dispatch: null
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
changes:
name: Changes
runs-on: ubuntu-latest
runs-on: ubuntu-slim
timeout-minutes: 5
outputs:
since: ${{ steps.filter.outputs.everything != 'true' && github.event.pull_request.base.sha || '' }}
code: ${{ github.event_name != 'pull_request' || steps.filter.outputs.code == 'true' }}
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: dorny/paths-filter@ceb8a2b8f2d89434be7ff52d3de7ec3738c5cc9d # v4.0.3
id: filter
if: github.event_name == 'pull_request'
with:
token: ''
filters: |
everything:
everything: &everything
- pnpm-lock.yaml
- biome.json
- package.json
- 'tsconfig*.json'
- 'mcp-apps/tsconfig.json'
- 'vitest*.cts'
- '.github/**'
- package.json
timeout-minutes: 5
biome:
needs: changes
uses: ./.github/workflows/biome.yml
with:
since: ${{ needs.changes.outputs.since }}
typecheck:
uses: ./.github/workflows/typecheck.yml
test:
code:
- *everything
- 'src/**'
- 'mcp-apps/**'
- 'tests/**'
- 'public/**'
verify:
name: Test and build
needs: changes
uses: ./.github/workflows/test.yml
with:
since: ${{ needs.changes.outputs.since }}
build:
uses: ./.github/workflows/build.yml
if: needs.changes.outputs.code == 'true'
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
- name: Setup workspace
uses: ./.github/actions/setup
- name: Run integration tests
if: needs.changes.outputs.since == ''
run: pnpm test:integration
- name: Run unit tests with the coverage gate
if: needs.changes.outputs.since == ''
run: pnpm test:coverage
- name: Run integration tests for changed files
if: needs.changes.outputs.since != ''
env:
SINCE: ${{ needs.changes.outputs.since }}
run: pnpm exec vitest run --config vitest.integration.config.cts --changed "$SINCE"
- name: Run unit tests for changed files
if: needs.changes.outputs.since != ''
env:
SINCE: ${{ needs.changes.outputs.since }}
run: pnpm exec vitest run --changed "$SINCE"
- name: Build
run: pnpm build
gate:
name: CI Gate
runs-on: ubuntu-slim
timeout-minutes: 5
needs:
- changes
- biome
- typecheck
- test
- build
- verify
if: always()
runs-on: ubuntu-slim
steps:
- name: Require every gate to pass
run: |
echo "biome=${{ needs.biome.result }} typecheck=${{ needs.typecheck.result }} test=${{ needs.test.result }} build=${{ needs.build.result }}"
test "${{ needs.biome.result }}" = "success" \
&& test "${{ needs.typecheck.result }}" = "success" \
&& test "${{ needs.test.result }}" = "success" \
&& test "${{ needs.build.result }}" = "success"
timeout-minutes: 5
- name: Require every check to pass
if: contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')
run: exit 1
report-failure:
name: Open issue on main failure
needs:
- changes
- biome
- typecheck
- test
- build
- verify
if: failure() && github.event_name == 'push' && github.ref == 'refs/heads/main'
permissions:
contents: read
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
- name: Setup workspace
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
RELEASE_TITLE: ${{ github.event.pull_request.title || 'Manual release' }}
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
ref: main
fetch-depth: 0
Expand Down Expand Up @@ -133,7 +133,7 @@ jobs:
git push origin "refs/tags/${TAG}"
- name: Create GitHub Release
if: steps.skip_check.outputs.skip != 'true'
uses: softprops/action-gh-release@v3
uses: softprops/action-gh-release@efb35369e0ad2afab669f228072c1b0d510eae64 # v3
with:
tag_name: ${{ steps.version.outputs.tag }}
name: ${{ steps.version.outputs.tag }} - ${{ env.RELEASE_TITLE }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/report-failure.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-slim
steps:
- name: File or update a ci-failure issue with the captured error
uses: actions/github-script@v7
uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7
with:
script: |
const { owner, repo } = context.repo;
Expand Down
38 changes: 0 additions & 38 deletions .github/workflows/test.yml

This file was deleted.

19 changes: 0 additions & 19 deletions .github/workflows/typecheck.yml

This file was deleted.

2 changes: 2 additions & 0 deletions .husky/pre-push
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
CI=1 pnpm install --frozen-lockfile
pnpm run check:ci
pnpm run typecheck
pnpm run typecheck:mcp-apps
pnpm run test
pnpm run build
Loading