From 3007a484fb5f77fb621b3b0be84793c4c270ac4d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 23 Oct 2026 02:02:12 +0100 Subject: [PATCH 1/6] ci: run the notes LLM live test per-PR against Ollama Cloud Add a Notes LLM (live Ollama) job to CI that runs ollama-live.spec.ts against Ollama Cloud (minimax-m2.7:cloud, the model this repo's own release notes use) when packages/notes or the job's workflow changes. It feeds CI Status, so a failure blocks and a skip passes; the spec itself skips with a warning on an Ollama outage. Forks and Dependabot get no secrets, and the standing release PR only bumps versions, so the job skips for all three. Pushes skip too: the PR already ran it. Closes #589 Co-Authored-By: Claude Opus 5.5 --- .../workflows/_ci-detect-changes.reusable.yml | 11 +++++ .../workflows/_ci-notes-llm-live.reusable.yml | 41 +++++++++++++++++++ .github/workflows/ci.yml | 16 ++++++++ 3 files changed, 68 insertions(+) create mode 100644 .github/workflows/_ci-notes-llm-live.reusable.yml diff --git a/.github/workflows/_ci-detect-changes.reusable.yml b/.github/workflows/_ci-detect-changes.reusable.yml index 765783e9..b3e14aaa 100644 --- a/.github/workflows/_ci-detect-changes.reusable.yml +++ b/.github/workflows/_ci-detect-changes.reusable.yml @@ -33,6 +33,9 @@ on: run_e2e: description: 'Whether to run E2E tests' value: ${{ jobs.detect.outputs.run_e2e }} + run_notes_llm_live: + description: 'Whether to run the notes LLM live test against Ollama' + value: ${{ jobs.detect.outputs.run_notes_llm_live }} permissions: contents: read @@ -50,6 +53,7 @@ jobs: run_config: ${{ steps.determine.outputs.run_config }} run_integration: ${{ steps.determine.outputs.run_integration }} run_e2e: ${{ steps.determine.outputs.run_e2e }} + run_notes_llm_live: ${{ steps.determine.outputs.run_notes_llm_live }} steps: - name: Checkout @@ -80,6 +84,9 @@ jobs: - 'test/e2e/**' - 'scripts/test-e2e.ts' - '.github/workflows/_ci-e2e.reusable.yml' + notes_llm_live: + - 'packages/notes/**' + - '.github/workflows/_ci-notes-llm-live.reusable.yml' infra: - '.github/workflows/**' - '.github/actions/**' @@ -101,6 +108,7 @@ jobs: echo "run_config=true" >> $GITHUB_OUTPUT echo "run_integration=true" >> $GITHUB_OUTPUT echo "run_e2e=true" >> $GITHUB_OUTPUT + echo "run_notes_llm_live=true" >> $GITHUB_OUTPUT echo "::notice::Force all mode - running all tests" exit 0 fi @@ -112,6 +120,7 @@ jobs: CONFIG="${{ steps.changes.outputs.config }}" INTEGRATION="${{ steps.changes.outputs.integration }}" E2E="${{ steps.changes.outputs.e2e }}" + NOTES_LLM_LIVE="${{ steps.changes.outputs.notes_llm_live }}" INFRA="${{ steps.changes.outputs.infra }}" RUN_VERSION="false" @@ -163,6 +172,7 @@ jobs: echo "run_config=$RUN_CONFIG" >> $GITHUB_OUTPUT echo "run_integration=$RUN_INTEGRATION" >> $GITHUB_OUTPUT echo "run_e2e=$RUN_E2E" >> $GITHUB_OUTPUT + echo "run_notes_llm_live=$NOTES_LLM_LIVE" >> $GITHUB_OUTPUT echo "## Change Detection" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY @@ -175,4 +185,5 @@ jobs: echo "| config/core | $CONFIG | $RUN_CONFIG |" >> $GITHUB_STEP_SUMMARY echo "| integration | $INTEGRATION | $RUN_INTEGRATION |" >> $GITHUB_STEP_SUMMARY echo "| e2e | $E2E | $RUN_E2E |" >> $GITHUB_STEP_SUMMARY + echo "| notes LLM live | $NOTES_LLM_LIVE | $NOTES_LLM_LIVE |" >> $GITHUB_STEP_SUMMARY echo "| infra | $INFRA | - |" >> $GITHUB_STEP_SUMMARY diff --git a/.github/workflows/_ci-notes-llm-live.reusable.yml b/.github/workflows/_ci-notes-llm-live.reusable.yml new file mode 100644 index 00000000..24430b65 --- /dev/null +++ b/.github/workflows/_ci-notes-llm-live.reusable.yml @@ -0,0 +1,41 @@ +name: Notes LLM (live Ollama) + +on: + workflow_call: + inputs: + cache_key: + required: true + type: string + secrets: + OLLAMA_API_KEY: + required: true + +permissions: + contents: read + +jobs: + notes-llm-live: + name: Notes LLM (live Ollama) + runs-on: ubuntu-latest + + steps: + - name: Checkout Repository + uses: actions/checkout@v7 + + - name: Setup Development Environment + uses: ./.github/workflows/actions/setup-workspace + + - name: Download build artifacts + uses: ./.github/workflows/actions/download-archive + with: + name: releasekit-build + cache_key: ${{ inputs.cache_key }} + + # Not turbo: its strict env mode strips RELEASEKIT_NOTES_LIVE and the suite silently skips. + - name: Run notes LLM live test + run: pnpm --filter @releasekit/notes test ollama-live + env: + RELEASEKIT_NOTES_LIVE: '1' + RELEASEKIT_NOTES_LIVE_MODEL: 'minimax-m2.7:cloud' + OLLAMA_BASE_URL: 'https://ollama.com' + OLLAMA_API_KEY: ${{ secrets.OLLAMA_API_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 69a41edc..c4fb3701 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -192,6 +192,21 @@ jobs: os: ${{ matrix.os }} cache_key: ${{ needs.build.outputs.cache_key }} + notes-llm-live: + name: Notes LLM (live Ollama) + needs: [detect-changes, build] + # Skip forks and Dependabot (no secrets) and the standing release PR (version bumps only). + if: >- + needs.detect-changes.outputs.run_notes_llm_live == 'true' && + github.actor != 'dependabot[bot]' && + github.head_ref != 'release/next' && + (github.event_name == 'workflow_dispatch' || github.event.pull_request.head.repo.full_name == github.repository) + uses: ./.github/workflows/_ci-notes-llm-live.reusable.yml + with: + cache_key: ${{ needs.build.outputs.cache_key }} + secrets: + OLLAMA_API_KEY: ${{ secrets.OLLAMA_API_KEY }} + ci-status: name: CI Status if: always() @@ -206,6 +221,7 @@ jobs: - integration-tests - package-tests - e2e-tests + - notes-llm-live runs-on: ubuntu-latest steps: - name: Check CI results From ee341389bd4b8015c30a40d9b6b35704f34d3d5f Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 23 Oct 2026 02:10:06 +0100 Subject: [PATCH 2/6] ci: take the live test's Ollama model and base URL from repo variables Co-Authored-By: Claude Opus 5.5 --- .github/workflows/_ci-notes-llm-live.reusable.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/_ci-notes-llm-live.reusable.yml b/.github/workflows/_ci-notes-llm-live.reusable.yml index 24430b65..1f472b17 100644 --- a/.github/workflows/_ci-notes-llm-live.reusable.yml +++ b/.github/workflows/_ci-notes-llm-live.reusable.yml @@ -36,6 +36,6 @@ jobs: run: pnpm --filter @releasekit/notes test ollama-live env: RELEASEKIT_NOTES_LIVE: '1' - RELEASEKIT_NOTES_LIVE_MODEL: 'minimax-m2.7:cloud' - OLLAMA_BASE_URL: 'https://ollama.com' + RELEASEKIT_NOTES_LIVE_MODEL: ${{ vars.OLLAMA_MODEL }} + OLLAMA_BASE_URL: ${{ vars.OLLAMA_BASE_URL }} OLLAMA_API_KEY: ${{ secrets.OLLAMA_API_KEY }} From 1aa095fb6fff0e49d4a3a0648853a86afe59cdc0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 23 Oct 2026 02:42:09 +0100 Subject: [PATCH 3/6] ci: make the live job generic: Live Tests, one step per suite Tests that hit a live external service share what sets them apart (a secret, a paid call, skip-on-outage), whatever package they're in. Rename the job, its workflow and the detect-changes output to match, and name the notes run as one step. Another live suite adds a step and its package paths to the live filter. Co-Authored-By: Claude Opus 5.5 --- .../workflows/_ci-detect-changes.reusable.yml | 20 +++++++++---------- ...ive.reusable.yml => _ci-live.reusable.yml} | 8 ++++---- .github/workflows/ci.yml | 10 +++++----- 3 files changed, 19 insertions(+), 19 deletions(-) rename .github/workflows/{_ci-notes-llm-live.reusable.yml => _ci-live.reusable.yml} (89%) diff --git a/.github/workflows/_ci-detect-changes.reusable.yml b/.github/workflows/_ci-detect-changes.reusable.yml index b3e14aaa..fb31302b 100644 --- a/.github/workflows/_ci-detect-changes.reusable.yml +++ b/.github/workflows/_ci-detect-changes.reusable.yml @@ -33,9 +33,9 @@ on: run_e2e: description: 'Whether to run E2E tests' value: ${{ jobs.detect.outputs.run_e2e }} - run_notes_llm_live: - description: 'Whether to run the notes LLM live test against Ollama' - value: ${{ jobs.detect.outputs.run_notes_llm_live }} + run_live: + description: 'Whether to run tests against live external services' + value: ${{ jobs.detect.outputs.run_live }} permissions: contents: read @@ -53,7 +53,7 @@ jobs: run_config: ${{ steps.determine.outputs.run_config }} run_integration: ${{ steps.determine.outputs.run_integration }} run_e2e: ${{ steps.determine.outputs.run_e2e }} - run_notes_llm_live: ${{ steps.determine.outputs.run_notes_llm_live }} + run_live: ${{ steps.determine.outputs.run_live }} steps: - name: Checkout @@ -84,9 +84,9 @@ jobs: - 'test/e2e/**' - 'scripts/test-e2e.ts' - '.github/workflows/_ci-e2e.reusable.yml' - notes_llm_live: + live: - 'packages/notes/**' - - '.github/workflows/_ci-notes-llm-live.reusable.yml' + - '.github/workflows/_ci-live.reusable.yml' infra: - '.github/workflows/**' - '.github/actions/**' @@ -108,7 +108,7 @@ jobs: echo "run_config=true" >> $GITHUB_OUTPUT echo "run_integration=true" >> $GITHUB_OUTPUT echo "run_e2e=true" >> $GITHUB_OUTPUT - echo "run_notes_llm_live=true" >> $GITHUB_OUTPUT + echo "run_live=true" >> $GITHUB_OUTPUT echo "::notice::Force all mode - running all tests" exit 0 fi @@ -120,7 +120,7 @@ jobs: CONFIG="${{ steps.changes.outputs.config }}" INTEGRATION="${{ steps.changes.outputs.integration }}" E2E="${{ steps.changes.outputs.e2e }}" - NOTES_LLM_LIVE="${{ steps.changes.outputs.notes_llm_live }}" + LIVE="${{ steps.changes.outputs.live }}" INFRA="${{ steps.changes.outputs.infra }}" RUN_VERSION="false" @@ -172,7 +172,7 @@ jobs: echo "run_config=$RUN_CONFIG" >> $GITHUB_OUTPUT echo "run_integration=$RUN_INTEGRATION" >> $GITHUB_OUTPUT echo "run_e2e=$RUN_E2E" >> $GITHUB_OUTPUT - echo "run_notes_llm_live=$NOTES_LLM_LIVE" >> $GITHUB_OUTPUT + echo "run_live=$LIVE" >> $GITHUB_OUTPUT echo "## Change Detection" >> $GITHUB_STEP_SUMMARY echo "" >> $GITHUB_STEP_SUMMARY @@ -185,5 +185,5 @@ jobs: echo "| config/core | $CONFIG | $RUN_CONFIG |" >> $GITHUB_STEP_SUMMARY echo "| integration | $INTEGRATION | $RUN_INTEGRATION |" >> $GITHUB_STEP_SUMMARY echo "| e2e | $E2E | $RUN_E2E |" >> $GITHUB_STEP_SUMMARY - echo "| notes LLM live | $NOTES_LLM_LIVE | $NOTES_LLM_LIVE |" >> $GITHUB_STEP_SUMMARY + echo "| live | $LIVE | $LIVE |" >> $GITHUB_STEP_SUMMARY echo "| infra | $INFRA | - |" >> $GITHUB_STEP_SUMMARY diff --git a/.github/workflows/_ci-notes-llm-live.reusable.yml b/.github/workflows/_ci-live.reusable.yml similarity index 89% rename from .github/workflows/_ci-notes-llm-live.reusable.yml rename to .github/workflows/_ci-live.reusable.yml index 1f472b17..a4a97f2e 100644 --- a/.github/workflows/_ci-notes-llm-live.reusable.yml +++ b/.github/workflows/_ci-live.reusable.yml @@ -1,4 +1,4 @@ -name: Notes LLM (live Ollama) +name: Live Tests on: workflow_call: @@ -14,8 +14,8 @@ permissions: contents: read jobs: - notes-llm-live: - name: Notes LLM (live Ollama) + live-tests: + name: Live Tests runs-on: ubuntu-latest steps: @@ -32,7 +32,7 @@ jobs: cache_key: ${{ inputs.cache_key }} # Not turbo: its strict env mode strips RELEASEKIT_NOTES_LIVE and the suite silently skips. - - name: Run notes LLM live test + - name: Notes against live Ollama run: pnpm --filter @releasekit/notes test ollama-live env: RELEASEKIT_NOTES_LIVE: '1' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c4fb3701..1eb268e5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -192,16 +192,16 @@ jobs: os: ${{ matrix.os }} cache_key: ${{ needs.build.outputs.cache_key }} - notes-llm-live: - name: Notes LLM (live Ollama) + live-tests: + name: Live Tests needs: [detect-changes, build] # Skip forks and Dependabot (no secrets) and the standing release PR (version bumps only). if: >- - needs.detect-changes.outputs.run_notes_llm_live == 'true' && + needs.detect-changes.outputs.run_live == 'true' && github.actor != 'dependabot[bot]' && github.head_ref != 'release/next' && (github.event_name == 'workflow_dispatch' || github.event.pull_request.head.repo.full_name == github.repository) - uses: ./.github/workflows/_ci-notes-llm-live.reusable.yml + uses: ./.github/workflows/_ci-live.reusable.yml with: cache_key: ${{ needs.build.outputs.cache_key }} secrets: @@ -221,7 +221,7 @@ jobs: - integration-tests - package-tests - e2e-tests - - notes-llm-live + - live-tests runs-on: ubuntu-latest steps: - name: Check CI results From 5a661aad409f001a123b725e4721d562db24b864 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 23 Oct 2026 02:45:04 +0100 Subject: [PATCH 4/6] docs(agents): say what live tests are and how CI runs them Co-Authored-By: Claude Opus 5.5 --- AGENTS.md | 1 + 1 file changed, 1 insertion(+) diff --git a/AGENTS.md b/AGENTS.md index d7481821..f293d47d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -21,6 +21,7 @@ Design decisions are recorded in `docs/adr/` — check there before reworking a - **One package:** `pnpm --filter test` or `typecheck` skips Turborepo, so it runs against the dependencies' built `dist/`, which may be stale. Build them first with `pnpm turbo run build --filter=^...`. - **Lint:** a package's own `lint` script is Biome only; `pnpm lint` also runs ESLint. - **CI-only suites:** `pnpm test` doesn't run the action harness (`test:action:*`, `test:harness:*`), `scripts/test-e2e.ts` or `scripts/test-packages.ts`. Run them when you change a CLI, `action.yml` or what a package ships. +- **Live tests:** integration tests that call a real service, such as `packages/notes/test/integration/ollama-live.spec.ts`, skip unless their opt-in variable is set; CI runs them in the Live Tests job. A new one needs a step in `_ci-live.reusable.yml` and its package's paths in Detect Changes' `live` filter. ## Gotchas From 0ccaf36a0cc1a1f10420e5bacf9a9bbf6fbf02a0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 23 Oct 2026 02:57:05 +0100 Subject: [PATCH 5/6] ci: tighten the Live Tests job after review - Skip it outside goosewobbler/releasekit, so a fork's own CI doesn't run it without the secret. - Count live changes in has_changes, so a live suite in an otherwise unfiltered package still gets a build. - Narrow the notes paths to src, package.json and the spec, so docs edits don't make paid calls. - AGENTS.md: a new live suite's secret must be declared and passed in. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/_ci-detect-changes.reusable.yml | 6 ++++-- .github/workflows/ci.yml | 1 + AGENTS.md | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/_ci-detect-changes.reusable.yml b/.github/workflows/_ci-detect-changes.reusable.yml index fb31302b..cf1c6f54 100644 --- a/.github/workflows/_ci-detect-changes.reusable.yml +++ b/.github/workflows/_ci-detect-changes.reusable.yml @@ -85,7 +85,9 @@ jobs: - 'scripts/test-e2e.ts' - '.github/workflows/_ci-e2e.reusable.yml' live: - - 'packages/notes/**' + - 'packages/notes/src/**' + - 'packages/notes/package.json' + - 'packages/notes/test/integration/ollama-live.spec.ts' - '.github/workflows/_ci-live.reusable.yml' infra: - '.github/workflows/**' @@ -160,7 +162,7 @@ jobs: fi HAS_CHANGES="false" - if [ "$RUN_VERSION" = "true" ] || [ "$RUN_PUBLISH" = "true" ] || [ "$RUN_NOTES" = "true" ] || [ "$RUN_RELEASE" = "true" ] || [ "$RUN_CONFIG" = "true" ] || [ "$RUN_INTEGRATION" = "true" ] || [ "$RUN_E2E" = "true" ]; then + if [ "$RUN_VERSION" = "true" ] || [ "$RUN_PUBLISH" = "true" ] || [ "$RUN_NOTES" = "true" ] || [ "$RUN_RELEASE" = "true" ] || [ "$RUN_CONFIG" = "true" ] || [ "$RUN_INTEGRATION" = "true" ] || [ "$RUN_E2E" = "true" ] || [ "$LIVE" = "true" ]; then HAS_CHANGES="true" fi diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1eb268e5..dcc53352 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -200,6 +200,7 @@ jobs: needs.detect-changes.outputs.run_live == 'true' && github.actor != 'dependabot[bot]' && github.head_ref != 'release/next' && + github.repository == 'goosewobbler/releasekit' && (github.event_name == 'workflow_dispatch' || github.event.pull_request.head.repo.full_name == github.repository) uses: ./.github/workflows/_ci-live.reusable.yml with: diff --git a/AGENTS.md b/AGENTS.md index f293d47d..2d8b3c5a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -21,7 +21,7 @@ Design decisions are recorded in `docs/adr/` — check there before reworking a - **One package:** `pnpm --filter test` or `typecheck` skips Turborepo, so it runs against the dependencies' built `dist/`, which may be stale. Build them first with `pnpm turbo run build --filter=^...`. - **Lint:** a package's own `lint` script is Biome only; `pnpm lint` also runs ESLint. - **CI-only suites:** `pnpm test` doesn't run the action harness (`test:action:*`, `test:harness:*`), `scripts/test-e2e.ts` or `scripts/test-packages.ts`. Run them when you change a CLI, `action.yml` or what a package ships. -- **Live tests:** integration tests that call a real service, such as `packages/notes/test/integration/ollama-live.spec.ts`, skip unless their opt-in variable is set; CI runs them in the Live Tests job. A new one needs a step in `_ci-live.reusable.yml` and its package's paths in Detect Changes' `live` filter. +- **Live tests:** integration tests that call a real service, such as `packages/notes/test/integration/ollama-live.spec.ts`, skip unless their opt-in variable is set; CI runs them in the Live Tests job. A new one needs a step in `_ci-live.reusable.yml`, any new secret declared there and passed from `ci.yml`, and its package's paths in Detect Changes' `live` filter. ## Gotchas From b0060fc229c23fe87596cfabada9fc673c5ae89c Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 23 Oct 2026 03:15:06 +0100 Subject: [PATCH 6/6] ci: test the release-notes model from the config, and widen who runs Live Tests - Read the model and base URL from releasekit.config.json instead of repo variables, so the live test checks exactly what releases use, and a config change triggers it. - Run it for Dependabot too (needs OLLAMA_API_KEY as a Dependabot secret), so SDK bumps get a live run. - Add ci.yml and detect-changes to the live filter, so a broken guard or secret mapping shows up in the PR that breaks it. - Gate build on run_live as well, instead of counting live changes in has_changes, so a live-only change doesn't run the whole matrix. - OLLAMA_API_KEY isn't required, matching the other reusable workflows. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/_ci-detect-changes.reusable.yml | 5 ++++- .github/workflows/_ci-live.reusable.yml | 10 ++++++---- .github/workflows/ci.yml | 5 ++--- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.github/workflows/_ci-detect-changes.reusable.yml b/.github/workflows/_ci-detect-changes.reusable.yml index cf1c6f54..7fd17009 100644 --- a/.github/workflows/_ci-detect-changes.reusable.yml +++ b/.github/workflows/_ci-detect-changes.reusable.yml @@ -88,6 +88,9 @@ jobs: - 'packages/notes/src/**' - 'packages/notes/package.json' - 'packages/notes/test/integration/ollama-live.spec.ts' + - 'releasekit.config.json' + - '.github/workflows/ci.yml' + - '.github/workflows/_ci-detect-changes.reusable.yml' - '.github/workflows/_ci-live.reusable.yml' infra: - '.github/workflows/**' @@ -162,7 +165,7 @@ jobs: fi HAS_CHANGES="false" - if [ "$RUN_VERSION" = "true" ] || [ "$RUN_PUBLISH" = "true" ] || [ "$RUN_NOTES" = "true" ] || [ "$RUN_RELEASE" = "true" ] || [ "$RUN_CONFIG" = "true" ] || [ "$RUN_INTEGRATION" = "true" ] || [ "$RUN_E2E" = "true" ] || [ "$LIVE" = "true" ]; then + if [ "$RUN_VERSION" = "true" ] || [ "$RUN_PUBLISH" = "true" ] || [ "$RUN_NOTES" = "true" ] || [ "$RUN_RELEASE" = "true" ] || [ "$RUN_CONFIG" = "true" ] || [ "$RUN_INTEGRATION" = "true" ] || [ "$RUN_E2E" = "true" ]; then HAS_CHANGES="true" fi diff --git a/.github/workflows/_ci-live.reusable.yml b/.github/workflows/_ci-live.reusable.yml index a4a97f2e..e41bbc13 100644 --- a/.github/workflows/_ci-live.reusable.yml +++ b/.github/workflows/_ci-live.reusable.yml @@ -8,7 +8,7 @@ on: type: string secrets: OLLAMA_API_KEY: - required: true + required: false permissions: contents: read @@ -33,9 +33,11 @@ jobs: # Not turbo: its strict env mode strips RELEASEKIT_NOTES_LIVE and the suite silently skips. - name: Notes against live Ollama - run: pnpm --filter @releasekit/notes test ollama-live + run: | + RELEASEKIT_NOTES_LIVE_MODEL=$(jq -er '.notes.releaseNotes.llm.model' releasekit.config.json) + OLLAMA_BASE_URL=$(jq -er '.notes.releaseNotes.llm.baseURL' releasekit.config.json) + export RELEASEKIT_NOTES_LIVE_MODEL OLLAMA_BASE_URL + pnpm --filter @releasekit/notes test ollama-live env: RELEASEKIT_NOTES_LIVE: '1' - RELEASEKIT_NOTES_LIVE_MODEL: ${{ vars.OLLAMA_MODEL }} - OLLAMA_BASE_URL: ${{ vars.OLLAMA_BASE_URL }} OLLAMA_API_KEY: ${{ secrets.OLLAMA_API_KEY }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index dcc53352..d6d9d027 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,7 +33,7 @@ jobs: build: name: Build needs: [detect-changes] - if: needs.detect-changes.outputs.has_changes == 'true' + if: needs.detect-changes.outputs.has_changes == 'true' || needs.detect-changes.outputs.run_live == 'true' uses: ./.github/workflows/_ci-build.reusable.yml with: os: ubuntu-latest @@ -195,10 +195,9 @@ jobs: live-tests: name: Live Tests needs: [detect-changes, build] - # Skip forks and Dependabot (no secrets) and the standing release PR (version bumps only). + # Skip forks (no secrets) and the standing release PR (version bumps only). if: >- needs.detect-changes.outputs.run_live == 'true' && - github.actor != 'dependabot[bot]' && github.head_ref != 'release/next' && github.repository == 'goosewobbler/releasekit' && (github.event_name == 'workflow_dispatch' || github.event.pull_request.head.repo.full_name == github.repository)