Skip to content

liblaf/copier-release

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

193 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

✨ Features

copier-release is a small Copier template for GitHub repositories that want a conventional-commit release loop without copying release plumbing by hand.

  • πŸš€ Release PRs from main: calculates the next semantic version with git-cliff, writes CHANGELOG.md, bumps package.json when it exists, and opens a signed release PR.
  • 🏷️ GitHub releases after merge: watches merged release-please/* PRs, creates the version tag, and creates the matching GitHub Release from the PR body.
  • 🧹 Legacy cleanup: removes older release-please config and superseded release workflow names during Copier generation.
  • 🧩 Project-friendly scope: handles changelogs, tags, and GitHub Releases while leaving package publishing, artifacts, and deployment to the consuming project.

πŸ“¦ Apply The Template

Important

Use --trust when applying or updating this template. The template runs cleanup tasks during generation.

copier copy --trust gh:liblaf/copier-release .

πŸ”„ Update The Template

Generated repositories keep their release-template answers in .config/copier/.copier-answers.release.yaml.

copier recopy --trust --answers-file '.config/copier/.copier-answers.release.yaml'

🧱 What You Get

File Purpose
.github/workflows/release-pr.yaml Finds the next version, generates the changelog and release PR body, bumps package.json when present, and opens a release PR.
.github/workflows/release-publish.yaml Runs when a release-please/* PR is merged, then tags the merge commit and creates the GitHub Release.
.config/copier/.copier-answers.release.yaml Stores the template source and answers for reproducible copier recopy runs.

The generated workflows use this repository's shared git-cliff configuration from https://raw.githubusercontent.com/liblaf/copier-release/refs/heads/main/cliff.toml, so generated repositories do not need to keep their own cliff.toml.

πŸ” Required GitHub Setup

Create a GitHub Actions environment named release-please, then provide:

  • vars.APP_ID
  • secrets.PRIVATE_KEY

Those credentials are passed to liblaf/actions/auth so the workflows can open release PRs, push tags, and create GitHub Releases as a GitHub App.

πŸ” Release Flow

  1. Push Conventional Commits to main, such as feat:, fix:, docs:, or ci:.
  2. release-pr.yaml calculates the next version and opens release-please/main when a release is needed.
  3. Review and merge the release PR after CI is green.
  4. release-publish.yaml tags the merged release commit and creates the GitHub Release.
  5. Run project-specific publish, artifact, or deploy workflows from your own repository.

🧭 Commit Guidance

Use Conventional Commits for predictable version bumps and changelog grouping.

🀝 Contributing

Ideas, fixes, and improvements are welcome. Open an issue or pull request if you want to refine the template, release workflow, or generated changelog format.

PR WELCOME Contributors

πŸ”— More Copier Templates

  • Shared - shared automation for code quality, maintenance, and repository hygiene
  • Python - a modern Python project template with tooling, docs, and CI
  • Rust - a Rust template with cross-compilation, CI, and release automation
  • TypeScript - a TypeScript template built around modern tooling and GitHub automation

πŸ“ License

Copyright Β© 2024 liblaf.
This project is MIT licensed.

About

πŸš€ Copier template for automated GitHub release PRs, changelogs, tags, and draft releases

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages