chore(deps): update node.js to v24.18.0 #110
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
| name: CI | |
| on: | |
| pull_request: | |
| push: | |
| branches: [ main ] | |
| paths-ignore: | |
| - "docs/**" | |
| - "README.md" | |
| - "agents-datum.md" | |
| release: | |
| types: [ "published" ] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| BUN_CACHE: ~/.bun/install/cache | |
| jobs: | |
| # ─── Install ──────────────────────────────────────────────── | |
| install: | |
| name: Install Dependencies | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: { bun-version: latest } | |
| - uses: actions/cache@v5 | |
| id: cache-deps | |
| with: | |
| path: | | |
| ${{ env.BUN_CACHE }} | |
| **/node_modules | |
| key: ${{ runner.os }}-deps-${{ hashFiles('**/bun.lock', '**/package.json') }} | |
| - if: steps.cache-deps.outputs.cache-hit != 'true' | |
| run: bun install --frozen-lockfile | |
| # ─── Quality ──────────────────────────────────────────────── | |
| lint: | |
| name: Lint & Format | |
| needs: install | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: oven-sh/setup-bun@v2 | |
| - uses: actions/cache@v5 | |
| with: | |
| path: | | |
| ${{ env.BUN_CACHE }} | |
| **/node_modules | |
| key: ${{ runner.os }}-deps-${{ hashFiles('**/bun.lock', '**/package.json') }} | |
| - run: bun run lint && bun run format:check | |
| typecheck: | |
| name: Type Check | |
| needs: install | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: { bun-version: latest } | |
| - uses: actions/cache@v5 | |
| with: | |
| path: | | |
| ${{ env.BUN_CACHE }} | |
| **/node_modules | |
| key: ${{ runner.os }}-deps-${{ hashFiles('**/bun.lock', '**/package.json') }} | |
| - run: bun run typecheck | |
| build: | |
| name: Build | |
| needs: [ lint, typecheck ] | |
| runs-on: ubuntu-latest | |
| if: ${{ !failure() && !cancelled() }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: oven-sh/setup-bun@v2 | |
| with: { bun-version: latest } | |
| - uses: actions/cache@v5 | |
| with: | |
| path: | | |
| ${{ env.BUN_CACHE }} | |
| **/node_modules | |
| key: ${{ runner.os }}-deps-${{ hashFiles('**/bun.lock', '**/package.json') }} | |
| - run: bun run build | |
| # ─── Status Gate ──────────────────────────────────────────── | |
| status-check: | |
| name: Final Status Check | |
| needs: [ install, lint, typecheck, build ] | |
| if: always() | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Check Workflow Status | |
| run: | | |
| if [[ "${{ contains(needs.*.result, 'failure') }}" == "true" ]]; then | |
| echo "❌ One or more jobs failed" | |
| exit 1 | |
| elif [[ "${{ contains(needs.*.result, 'cancelled') }}" == "true" ]]; then | |
| echo "⚠️ One or more jobs were cancelled" | |
| exit 1 | |
| else | |
| echo "✅ All jobs passed" | |
| fi | |
| # ─── Publish (only after all checks pass) ─────────────────── | |
| publish-container-image: | |
| name: Publish Container Image | |
| needs: [ status-check ] | |
| if: ${{ !failure() && !cancelled() }} | |
| permissions: | |
| id-token: write | |
| contents: read | |
| packages: write | |
| attestations: write | |
| uses: datum-cloud/actions/.github/workflows/publish-docker.yaml@v1.14.0 | |
| with: | |
| image-name: agents-datum-net | |
| secrets: inherit | |
| publish-kustomize-bundles: | |
| name: Publish Kustomize Bundles | |
| needs: [ publish-container-image ] | |
| if: ${{ !failure() && !cancelled() }} | |
| permissions: | |
| id-token: write | |
| contents: read | |
| packages: write | |
| uses: datum-cloud/actions/.github/workflows/publish-kustomize-bundle.yaml@v1.14.0 | |
| with: | |
| bundle-name: ghcr.io/datum-cloud/agents-datum-net-kustomize | |
| bundle-path: config | |
| image-overlays: config/base | |
| image-name: ghcr.io/datum-cloud/agents-datum-net | |
| secrets: inherit |