release-please を使用してリリースPRとGitHubリリースを自動作成するComposite Actionです。
- uses: buffett-code-dev/github-actions/github/release-please@main
with:
github-token: ${{ secrets.GITHUB_TOKEN }}| 名前 | 必須 | デフォルト | 説明 |
|---|---|---|---|
github-token |
Yes | GitHubトークン (contents write, pull-requests write権限が必要) | |
config-file |
release-please-config.json |
release-please設定ファイルのパス | |
manifest-file |
.release-please-manifest.json |
release-pleaseマニフェストファイルのパス | |
release-type |
リリースタイプ (例: node, python 等)。config-file/manifest-fileを使用しない場合に指定 |
||
target-branch |
release-pleaseの対象ブランチ |
| 名前 | 説明 |
|---|---|
release_created |
リリースが作成されたかどうか |
tag_name |
作成されたリリースのタグ名 |
upload_url |
作成されたリリースのアップロードURL |
major |
作成されたリリースのメジャーバージョン |
minor |
作成されたリリースのマイナーバージョン |
patch |
作成されたリリースのパッチバージョン |
| 名前 | 説明 |
|---|---|
releases_created |
いずれかのリリースが作成されたかどうか |
prs_created |
リリースPRが作成・更新されたかどうか |
pr |
リリースPRの番号 |
paths_released |
リリースされたパスの一覧 (JSON文字列) |
all |
release-pleaseの全出力 (JSON文字列)。モノレポでパッケージ別の出力を取得する際に使用 |
name: Release Please
on:
push:
branches:
- main
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: buffett-code-dev/github-actions/github/release-please@main
with:
github-token: ${{ secrets.GITHUB_TOKEN }}name: Release Please
on:
push:
branches:
- main
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
release-please:
runs-on: ubuntu-latest
steps:
- uses: buffett-code-dev/github-actions/github/release-please@main
id: release
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
- name: Post-release action
if: ${{ steps.release.outputs.release_created }}
run: echo "Released ${{ steps.release.outputs.tag_name }}"config-file/manifest-fileを使わず、release-typeを直接指定する場合:
- uses: buffett-code-dev/github-actions/github/release-please@main
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
release-type: node
target-branch: mainbotアカウントではリリースPRのCIが起動しない場合に、GitHub App TokenやPATを使用:
- name: Generate GitHub App Token
id: generate_token
uses: actions/create-github-app-token@v3
with:
app-id: ${{ secrets.GH_APP_ID }}
private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
owner: ${{ github.repository_owner }}
- uses: buffett-code-dev/github-actions/github/release-please@main
with:
github-token: ${{ steps.generate_token.outputs.token }}all 出力からパッケージ別の値を取得する場合:
jobs:
release-please:
runs-on: ubuntu-latest
outputs:
releases-created: ${{ steps.release.outputs.releases_created }}
all: ${{ steps.release.outputs.all }}
steps:
- uses: buffett-code-dev/github-actions/github/release-please@main
id: release
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
deploy:
needs: [release-please]
if: ${{ fromJSON(needs.release-please.outputs.all)['packages/my-pkg--release_created'] == 'true' }}
runs-on: ubuntu-latest
steps:
- run: echo "Deploying ${{ fromJSON(needs.release-please.outputs.all)['packages/my-pkg--tag_name'] }}"- uses: buffett-code-dev/github-actions/github/release-please@main
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
config-file: custom-release-please-config.json
manifest-file: custom-manifest.jsonrelease-please-config.jsonと.release-please-manifest.jsonを元にリリース対象を判定します- Conventional Commits に基づいてバージョンを自動決定します
- リリースPRを作成または更新します
- リリースPRがマージされると、GitHubリリースとタグを自動作成します
- リポジトリのルートに
release-please-config.jsonと.release-please-manifest.jsonが存在すること(release-type直接指定の場合は不要) - ワークフローが
contents: writeとpull-requests: write権限を持っていること - コミットメッセージが Conventional Commits に準拠していること