Skip to content

feat(jobnik-sdk): publish from its own tag with packaging and type validation - #12

Open
CptSchnitz wants to merge 1 commit into
migration/09-delivery-pipelinefrom
migration/10-sdk-publish
Open

feat(jobnik-sdk): publish from its own tag with packaging and type validation#12
CptSchnitz wants to merge 1 commit into
migration/09-delivery-pipelinefrom
migration/10-sdk-publish

Conversation

@CptSchnitz

Copy link
Copy Markdown
Collaborator

Adds a publish-sdk job to the delivery pipeline, gated on the SDK's own
release tag (jobnik-sdk-vX.Y.Z) so pushing the shared jobnik line's tag
never triggers it. Packaging and type-resolution are validated first via
a new check-pack task (publint, attw --pack, and a script asserting the
dry-run pack's own invariants), reachable through turbo like any other
task so it can be run before tagging; the job fails before publish if
any of them finds a problem.

check-pack's own script (scripts/checkPack.mts) asserts what the other
two tools don't: that the dry-run pack actually contains the build
output and the specification file, and that jobnik-openapi — private,
never published — stays out of dependencies/peerDependencies. Wired
into scripts/tsconfig.json alongside the package's other two scripts,
which is what makes a script in that directory part of the TypeScript
project at all.

Also points the SDK's package metadata (repository, homepage, bugs) at
this repository, with a directory field so the registry page links to
the right subfolder — the old jobnik-sdk repository is frozen.

check-pack is wired into the PR checks matrix too, so packaging drift
is caught on every pull request rather than only at release time.


Stack created with GitHub Stacks CLIGive Feedback 💬

…lidation

Adds a publish-sdk job to the delivery pipeline, gated on the SDK's own
release tag (jobnik-sdk-vX.Y.Z) so pushing the shared jobnik line's tag
never triggers it. Packaging and type-resolution are validated first via
a new check-pack task (publint, attw --pack, and a script asserting the
dry-run pack's own invariants), reachable through turbo like any other
task so it can be run before tagging; the job fails before publish if
any of them finds a problem.

check-pack's own script (scripts/checkPack.mts) asserts what the other
two tools don't: that the dry-run pack actually contains the build
output and the specification file, and that jobnik-openapi — private,
never published — stays out of dependencies/peerDependencies. Wired
into scripts/tsconfig.json alongside the package's other two scripts,
which is what makes a script in that directory part of the TypeScript
project at all.

Also points the SDK's package metadata (repository, homepage, bugs) at
this repository, with a directory field so the registry page links to
the right subfolder — the old jobnik-sdk repository is frozen.

check-pack is wired into the PR checks matrix too, so packaging drift
is caught on every pull request rather than only at release time.
@github-actions

Copy link
Copy Markdown

Coverage Report for apps/jobnik-manager

Status Category Percentage Covered / Total
🟢 Lines 100% (🎯 80%) 767 / 767
🟢 Statements 100% (🎯 80%) 784 / 784
🟢 Functions 100% (🎯 80%) 112 / 112
🟢 Branches 100% (🎯 80%) 219 / 219
File CoverageNo changed files found.
Generated in workflow #10 for commit a22af1c by the Vitest Coverage Report Action

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant