Repository navigation
fix(ci): make the release dispatchable - #278
Merged
Merged
Conversation
The merge of #277 produced no workflow run at all - no run, no check run - so nothing was published, and there was no way to trigger it by hand: this workflow triggers on `push` to main only, and that push produced nothing. `workflow_dispatch` makes the release reachable from the Actions UI or the API when the push trigger does not fire. It changes nothing about what a release does - semantic-release computes from the commits since the last tag either way. This is a workaround rather than the fix. The underlying problem is that this repo has stopped scheduling workflow runs: its most recent run is from 19:31, while cli, vscode-extension, test-framework and sas-language all triggered normally at the same moments. That needs someone with admin access to diagnose. What this does is ensure a missed release can be recovered instead of being stranded. Verification: the workflow file parses as YAML, and the only change is the trigger block.
Flipping `toJson`'s default to false left the eight `else if (withDefaults)`
branches uncovered, because no spec passed `true` any more. This repo gates on
coverage, so CI failed on it:
Jest: Uncovered count for statements (16) exceeds global threshold (10)
All 440 tests passed - it was the gate, not a test. The uncovered lines were
exactly 341, 347, 353, 359, 369, 379, 389 and 400, one per injected default.
The new case asserts the escape hatch still does what it says: the four
mandatory attributes plus the eight inserted defaults, which is what a caller
passing `true` - and the CLI's `saveWithDefaultValues` flag - relies on.
Verification: npx jest --config=jest.config.js --coverage - 39 suites, 441 tests
pass, no threshold error; npx tsc --noEmit clean; npm run lint clean.
sasjs-gha Bot
pushed a commit
that referenced
this pull request
Oct 5, 2026
## [3.7.1](v3.7.0...v3.7.1) (2026-10-05) ### Bug Fixes * **ci:** make the release dispatchable ([#278](#278)) ([bf2f677](bf2f677)), closes [#277](#277) * **utils:** drop the Node crypto import, and tighten what the package ships ([#274](#274)) ([0f79733](0f79733)) * **utils:** insert no config a target does not declare, and reject release-suppressing markers ([#277](#277)) ([58baebb](58baebb)), closes [#274](#274)
|
🎉 This PR is included in version 3.7.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds
workflow_dispatchto the publish workflow.On 2026-10-05 the merge of #277 produced no workflow run at all - no run, no check run - so nothing was published. This workflow triggers on
pushtomainonly, which means there was no way to trigger the release by hand either: no dispatch, and re-running the previous run would re-analyse at the older commit rather than at the merge.workflow_dispatchmakes the release reachable from the Actions UI or the API when the push trigger does not fire. It does not change what a release does - semantic-release computes the version from the commits since the last tag either way.This is a workaround, and the real problem is still open
This repo has stopped scheduling workflow runs. Evidence:
pull_requestrun from 14:08The same pattern affects sasjs/adapter: its
pull_requestruns stop after 15:38 while the dynamic PR workflow still runs. Both repos have no rulesets configured, and the installation token gets 403 on the Actions permission endpoints, so the cause is not visible from here.It needs someone with admin to look at the two repos' Actions settings. This change at least means a missed release can be recovered rather than being stranded - which is what happened here.
Verification
on:block; no job, step or permission movedFolded in: the coverage gate
CI on this PR failed on coverage, and it could not go green without this, so it is here rather than in a separate PR:
All 440 tests passed - it was the gate, not a test. The uncovered lines in
target.tswere exactly 341, 347, 353, 359, 369, 379, 389 and 400: the eightelse if (withDefaults)branches, one per inserted default. FlippingtoJson's default to false in #277 left them unexercised, because no spec passedtrueany more.A new case asserts the escape hatch still does what it says - the four mandatory attributes plus the eight inserted defaults - which is what a caller passing
true, and the CLI'ssaveWithDefaultValuesflag, relies on.Verified with the command CI actually runs:
npx jest --config=jest.config.js --coverage- 39 suites, 441 tests pass, no threshold error. I had only run barenpx jestlocally before, which is why this reached CI.