build(deps-dev): bump the minor-and-patch group across 1 directory with 3 updates #331
Workflow file for this run
This file contains hidden or 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
| # CI pipeline for the OpenDecree TypeScript SDK. | |
| # | |
| # Jobs: lint, typecheck, test (matrix: Node 22/24), examples, integration → check (alls-green gate) | |
| # The check job aggregates all results for branch protection. | |
| # | |
| # Docs-only PRs (*.md, docs/**, examples/**/README.md) skip the entire workflow via | |
| # paths-ignore. Required checks for those PRs are satisfied by ci-docs.yml. | |
| # | |
| # The first job defines YAML anchors (&checkout, &setup-node-22, &install) | |
| # on its setup steps; subsequent jobs alias them to avoid repetition. | |
| # The test job uses its own setup-node step because the matrix node-version | |
| # varies per run. | |
| # | |
| # The integration job checks out the decree server repo, builds the server | |
| # and tools images, then runs the Vitest integration suite against a | |
| # docker-compose stack (postgres + redis + decree). | |
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| paths-ignore: | |
| - "**/*.md" | |
| - "docs/**" | |
| - "examples/**/README.md" | |
| workflow_call: | |
| jobs: | |
| lint: | |
| name: Lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - &checkout | |
| name: Checkout | |
| uses: actions/checkout@v7 | |
| with: | |
| persist-credentials: false | |
| - &setup-node-22 | |
| name: Set up Node.js | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: "22" | |
| cache: npm | |
| - &install | |
| name: Install dependencies | |
| run: npm ci | |
| - name: Run biome lint | |
| run: npm run lint | |
| typecheck: | |
| name: Typecheck | |
| runs-on: ubuntu-latest | |
| steps: | |
| - *checkout | |
| - *setup-node-22 | |
| - *install | |
| - name: Run tsc | |
| run: npm run typecheck | |
| test: | |
| name: Test (Node ${{ matrix.node-version }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node-version: ["22", "24"] | |
| steps: | |
| - *checkout | |
| - name: Set up Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: npm | |
| - *install | |
| - name: Run tests with coverage | |
| run: npm run test:coverage | |
| - name: Upload coverage to Codecov | |
| # codecov/codecov-action@v6.0.0 | |
| uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f | |
| with: | |
| files: coverage/coverage-final.json | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| version: | |
| name: Version sync | |
| runs-on: ubuntu-latest | |
| steps: | |
| - *checkout | |
| - *setup-node-22 | |
| - *install | |
| - name: Check src/version.ts matches package.json | |
| run: npm run check:version | |
| examples: | |
| name: Examples | |
| runs-on: ubuntu-latest | |
| steps: | |
| - *checkout | |
| - *setup-node-22 | |
| - name: Install SDK dependencies | |
| run: npm ci | |
| - name: Build SDK | |
| run: npm run build | |
| - name: Install example dependencies | |
| run: cd examples && npm ci | |
| - name: Typecheck examples | |
| run: cd examples && npx tsc --noEmit | |
| integration: | |
| name: Integration | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| permissions: | |
| contents: read | |
| packages: read | |
| steps: | |
| - *checkout | |
| - *setup-node-22 | |
| - *install | |
| - name: Checkout decree server | |
| uses: actions/checkout@v7 | |
| with: | |
| repository: opendecree/decree | |
| path: _decree | |
| persist-credentials: false | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v4 | |
| with: | |
| driver: docker-container | |
| - name: Log in to ghcr.io | |
| uses: docker/login-action@v4 | |
| with: | |
| registry: ghcr.io | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Build tools image | |
| uses: docker/build-push-action@v7 | |
| with: | |
| context: _decree | |
| file: _decree/build/Dockerfile.tools | |
| load: true | |
| tags: decree-tools | |
| cache-from: type=gha,scope=decree-tools | |
| cache-to: type=gha,scope=decree-tools,mode=max | |
| - name: Build server image | |
| uses: docker/build-push-action@v7 | |
| with: | |
| context: _decree | |
| file: _decree/build/Dockerfile | |
| load: true | |
| tags: decree-server | |
| cache-from: type=gha,scope=decree-server | |
| cache-to: type=gha,scope=decree-server,mode=max | |
| - name: Start decree stack | |
| run: docker compose up -d --wait service | |
| env: | |
| DECREE_SRC: ./_decree | |
| TOOLS_IMAGE: decree-tools | |
| SERVICE_IMAGE: decree-server | |
| - name: Run integration tests | |
| run: npm run test:integration | |
| - name: Tear down decree stack | |
| if: always() | |
| run: docker compose down -v | |
| env: | |
| DECREE_SRC: ./_decree | |
| check: | |
| name: CI check | |
| if: always() | |
| needs: [lint, typecheck, test, examples, version, integration] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: re-actors/alls-green@release/v1 | |
| with: | |
| jobs: ${{ toJSON(needs) }} |