以下のようにMakefileを作成しました。ご確認ください。
PROJECT_NAME := $(shell grep -oP '(?<=name = ").*(?=")' pyproject.toml)
NEW_VERSION := $(shell rye version)
.PHONY: pre-release
pre-release:
git checkout -b pre-release
rye version --bump minor
$(eval NEW_VERSION := $(shell rye version))
rye build -c
pdoc --html --output-dir=docs --force $(PROJECT_NAME)
git cliff --tag $(NEW_VERSION) -o CHANGELOG.md
git add --all && git commit -m "new release setup $(PROJECT_NAME)"
gh pr create --title "Pre-release" --body "Pre-release for $(NEW_VERSION)" --base main
echo $(shell gh pr list | grep 'Pre-release' | awk '{print $$1}') > pr_id.txt
.PHONY: release
release:
gh pr merge $(shell cat pr_id.txt) --merge --delete-branch
git checkout main && git pull origin main
git tag v$(NEW_VERSION) && git push origin v$(NEW_VERSION)
git branch -d pre-release
rm pr_id.txt
rye publish
git checkout -b dev-after-$(NEW_VERSION)
.PHONY: help
help:
@echo "Makefile commands:"
@echo "make pre-release"
@echo "make release"
このMakefileは以下のコマンドを提供します:
make pre-release
: プレリリースブランチを作成し、バージョン番号を更新し、ビルドとドキュメンテーションの生成を行い、変更をコミットし、プルリクエストを作成します。make release
: プルリクエストをマージし、メインブランチに移動してリモートの変更をプルし、新しいバージョンのタグを付けてプッシュし、プレリリースブランチを削除し、pr_id.txt
を削除し、パブリッシュを行い、次の開発フェーズのためのブランチを切ります。make help
: Makefileの使い方を表示します。
これらのコマンドはプロジェクトディレクトリで実行することができます。必要に応じてMakefileをカスタマイズしてください。ご不明な点がございましたら、お知らせください。よろしくお願いいたします。