Skip to content

ci: add tag-triggered release workflow for ts and rust crates#69

Merged
iduartgomez merged 1 commit intomainfrom
chore/release-workflows
Apr 23, 2026
Merged

ci: add tag-triggered release workflow for ts and rust crates#69
iduartgomez merged 1 commit intomainfrom
chore/release-workflows

Conversation

@iduartgomez
Copy link
Copy Markdown
Contributor

Summary

  • Add .github/workflows/release.yml that publishes on tag push:
    • typescript-v*npm publish @freenetorg/freenet-stdlib
    • rust-v*cargo publish freenet-stdlib
    • rust-macros-v*cargo publish freenet-macros
  • Each job verifies the tag version matches the manifest (package.json or Cargo.toml), runs tests, does a dry-run publish, then the real publish.
  • Also supports workflow_dispatch with a dry_run toggle so we can exercise it without pushing a tag.
  • Add release-rust Claude skill mirroring release-typescript so both flows are documented end-to-end.
  • Update release-typescript skill to list the CI path as preferred.

Required repo secrets

These do not exist yet and must be added before the workflow can publish:

Secret Used by How to get
NPM_TOKEN ts job npmjs.com → Access Tokens → "Automation" (bypasses 2FA)
CARGO_REGISTRY_TOKEN rust jobs crates.io → Account Settings → API Tokens

Without these, jobs will fail at the publish step.

Test plan

  • yaml.safe_load parses release.yml cleanly
  • After merge: add secrets, run workflow_dispatch with dry_run=true on each target to verify build/pack/dry-run steps pass
  • Next real release: push a tag, confirm the workflow publishes

Adds .github/workflows/release.yml that publishes on tag push:
  - typescript-v*        -> npm publish @freenetorg/freenet-stdlib
  - rust-v*              -> cargo publish freenet-stdlib
  - rust-macros-v*       -> cargo publish freenet-macros
Each job verifies the tag version matches the manifest, runs tests
and a dry-run publish before the real publish. Also supports
workflow_dispatch with a dry_run toggle.

Adds a release-rust Claude skill mirroring release-typescript so both
flows have end-to-end docs. Updates the ts skill to mention the CI
path as preferred.

Required repo secrets (not set yet):
  - NPM_TOKEN              (npm automation token with publish rights)
  - CARGO_REGISTRY_TOKEN   (crates.io token)
@iduartgomez iduartgomez merged commit e628596 into main Apr 23, 2026
9 checks passed
@iduartgomez iduartgomez deleted the chore/release-workflows branch April 23, 2026 13:25
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