release-flow
リリースパイプラインパターン — Conventional Commitsを使用したpython-semantic-releaseの活用、PyPIの信頼できる公開方法、GHCRを活用したDockerマルチアーキテクチャビルド、GitHub Actionsワークフロー、およびバージョンタグ戦略
description の原文を見る
Release pipeline patterns — python-semantic-release with conventional commits, PyPI trusted publishing, Docker multi-arch builds with GHCR, GitHub Actions workflows, and version tagging strategy
SKILL.md 本文
パイプラインの概要
Conventional Commits → semantic-release → Tag + Changelog
→ PyPI publish (trusted publishing)
→ Docker build + push (GHCR)
→ GitHub Release with assets
Conventional Commits → バージョンバンプ
| プレフィックス | バンプ | 例 |
|---|---|---|
fix: | PATCH | fix(parser): handle empty YAML blocks |
feat: | MINOR | feat(cli): add --json output flag |
feat!: or BREAKING CHANGE: | MAJOR | feat!: restructure artifact schema |
docs:, chore:, refactor:, test: | バンプなし | docs: update README |
python-semantic-release
pyproject.toml での設定:
[tool.semantic_release]
version_toml = ["pyproject.toml:project.version"]
branch = "main"
commit_message = "chore(release): {version}"
build_command = "uv build"
[tool.semantic_release.changelog]
changelog_file = "CHANGELOG.md"
[tool.semantic_release.remote]
type = "github"
GitHub Actions リリースワークフロー
3つのジョブパイプライン (release → publish-pypi → publish-docker):
ジョブ 1: Release (バージョンバンプ + タグ付け)
python-semantic-release/python-semantic-release@v10- 必要な権限:
contents: write,id-token: write RELEASE_TOKEN(PAT) を使用してタグをプッシュ- 出力:
released,version,tag
ジョブ 2: PyPI (信頼できるパブリッシング)
needs.release.outputs.released == 'true'でトリガーpypa/gh-action-pypi-publish@release/v1- OIDC信頼できるパブリッシング用に
id-token: writeを使用 (APIキー不要) - 環境:
pypi(リポジトリ設定で PyPI プロジェクト URL を使用して設定)
ジョブ 3: Docker (マルチアーキテクチャ GHCR)
- リリースタグでチェックアウト
- マルチプラットフォーム:
linux/amd64,linux/arm64 - タグ:
latest,vX.Y.Z,vX.Y,vX - レイヤーキャッシュ用に GHA キャッシュを使用
- ビルド保証アテステーションを生成
PyPI 信頼できるパブリッシング設定
- PyPI プロジェクト設定 → 「新しいパブリッシャーを追加」
- 設定: GitHub 所有者、リポジトリ名、ワークフローファイル名、環境名 (
pypi) - APIキー不要 — GitHub Actions からの OIDC トークン
Docker タグ付け戦略
バージョン 3.2.1 の場合:
ghcr.io/owner/repo:latest # ローリング最新版
ghcr.io/owner/repo:v3.2.1 # 正確なバージョン
ghcr.io/owner/repo:v3.2 # マイナー (互換性ピニング用)
ghcr.io/owner/repo:v3 # メジャー
pyproject.toml のバージョンバンプ
semantic-release がこれを自動的に処理します。pyproject.toml のバージョンは信頼できる唯一の情報源です。手動で編集しないでください。
手動/緊急リリース
# GitHub UI または CLI 経由でトリガー
gh workflow run release.yml -f force=patch # or minor/major
リリース前のチェックリスト
- main ですべての CI がグリーン
- 最後のリリース以降の Conventional Commits
- CHANGELOG を確認 (自動生成されますが検証)
- Docker ビルドをローカルでテスト:
docker build -t test . - main に未コミットの変更がない
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- pvliesdonk
- リポジトリ
- pvliesdonk/agents.md
- ライセンス
- MIT
- 最終更新
- 2026/3/21
Source: https://github.com/pvliesdonk/agents.md / ライセンス: MIT
関連スキル
superpowers-streamer-cli
SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。
catc-client-ops
Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。
ci-cd-and-automation
CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。
shipping-and-launch
本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。
linear-release-setup
Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。
tracking-application-response-times
API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。