Operations
Release
Understand the tag-driven GitHub release and npm publish contract.
Release
Releases are tag-driven. Push a vX.Y.Z tag and GitHub Actions handles validation, binary builds, GitHub release assets, and npm publishing.
Release flow
- Run Go and Node quality checks.
- Build release binaries for supported platforms.
- Publish GitHub release assets.
- Publish the npm package at the tag version.
Artifact contract
| Item | Convention |
|---|---|
| Binary name | cricinfo |
| npm package | cricinfo-cli-go |
| npm command | cricinfo from bin/cricinfo.js |
| GitHub release asset | cricinfo_<goos>_<goarch>[.exe] |
| Install fallback | scripts/postinstall.js builds locally if no matching asset is available. |
Supported release targets are built by make build-all:
darwin/amd64
darwin/arm64
linux/amd64
linux/arm64
windows/amd64
Create a tag
make release-tag VERSION=x.y.z
The Makefile creates and pushes vX.Y.Z. Make sure the package version and intended tag are aligned before publishing.
When changing release internals
If you change the CLI name, package name, binary naming, or release asset layout, update these together:
package.jsonbin/cricinfo.jsscripts/postinstall.jsMakefile.github/workflows/release.yml
Keeping those files synchronized preserves the install contract for npm users and automation that expects the cricinfo command.