Configure these secrets in GitHub repository settings:
| Secret | Description |
|---|---|
NPM_TOKEN |
NPM automation token for @kikuai/reliapi package |
PYPI_TOKEN |
PyPI API token for reliapi-sdk package |
DOCKERHUB_USERNAME |
Docker Hub username |
DOCKERHUB_TOKEN |
Docker Hub access token |
# Install dependencies
make install
# Verify everything works
make verify# For bug fixes
make release-patch
# For new features
make release-minor
# For breaking changes
make release-majorThis will:
- Run tests
- Bump version in all files
- Regenerate OpenAPI spec
- Generate SDKs and Postman collection
- Create git commit and tag
- Push to origin
CI will then automatically:
- Run full test suite
- Build and push Docker image
- Publish NPM package
- Publish PyPI package
- Create GitHub Release
If you need more control:
# 1. Bump version manually
python scripts/bump_version.py patch # or minor/major
# 2. Generate artifacts
make openapi
make sdk
make postman
# 3. Verify
make verify
# 4. Commit and tag
git add -A
git commit -m "chore(release): v1.0.1"
git tag -a v1.0.1 -m "Release v1.0.1"
# 5. Push
git push origin main
git push origin v1.0.1Version is tracked in these files (all updated by bump_version.py):
product.yaml- Source of truthpyproject.toml- Root packagereliapi/__init__.py- Package versioncli/pyproject.toml- CLI packagesdk/js/package.json- JS SDK (after generation)sdk/python/pyproject.toml- Python SDK (after generation)action/package.json- GitHub ActionCHANGELOG.md- Changelog entry
| Workflow | Trigger | Description |
|---|---|---|
ci.yml |
Push/PR to main | Lint, test, build |
publish-npm.yml |
Tag v* | Publish to NPM |
publish-pypi.yml |
Tag v* | Publish to PyPI |
publish-docker.yml |
Tag v* | Push to Docker Hub |
release-assets.yml |
Tag v* | Create GitHub Release |
If a release has issues:
# 1. Delete the tag locally and remotely
git tag -d v1.0.1
git push origin :refs/tags/v1.0.1
# 2. Revert the commit
git revert HEAD
git push origin main
# 3. Unpublish packages (if needed)
# NPM: npm unpublish @kikuai/reliapi@1.0.1
# PyPI: Cannot unpublish, create new patch version
# Docker: docker rmi kikuai/reliapi:1.0.1- Check
NPM_TOKENis valid - Verify package name is correct
- Check if version already exists
- Check
PYPI_TOKENis valid - Verify package name is correct
- Check if version already exists
- Check
DOCKERHUB_TOKENis valid - Verify image name matches
Before each release:
- No secrets in committed code
- No private URLs/IPs exposed
- Dependencies are up to date
- Security patches applied
- Leak detection passes