別のリポジトリが新しいリリースを作成したときにトリガーされるGitHubワークフローを構築しようとしています。
:ドキュメントで、段落があるでしょうが。on.event_name.types
event_name
release
問題はrelease
、別のリポジトリのイベントを参照する方法はありますか?
別のリポジトリが新しいリリースを作成したときにトリガーされるGitHubワークフローを構築しようとしています。
:ドキュメントで、段落があるでしょうが。on.event_name.types
event_name
release
問題はrelease
、別のリポジトリのイベントを参照する方法はありますか?
回答:
別のリポジトリのリリースイベントを参照する方法はありますか?
この機能が存在しないことをかなり確認してください。
リリースを作成するリポジトリにアクセスできる場合は、Webhookイベントを呼び出して、on: repository_dispatch
ワークフローをトリガーして別のリポジトリで実行できます。この場合、repository-dispatchアクションが役立ちます。
リリースを作成するリポジトリにアクセスできない場合(ここではそうだと思います)、これが私の提案です。まず、追跡するリポジトリのリリースバージョンタグを定期的にチェックする次のワークフローを作成します。現在リポジトリに保存しているリリースバージョンと異なる場合は、新しいバージョンがコミットされます。
変更されたファイルのチェックを機能させるには、最初に宛先ファイル(たとえば、release-versions / swagger-ui-latest.txt)を準備する必要があることに注意してください。さらに、repo
デフォルトの代わりにスコープ付きトークンを使用する必要がありますGITHUB_TOKEN
。詳細については、GitHubアクションから送信元にプッシュするをご覧ください。
name: Get latest release version
on:
schedule:
- cron: '0 10 * * *'
jobs:
get-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.REPO_SCOPED_TOKEN }}
- name: Fetch release version
run: |
curl -sL https://api.github.com/repos/swagger-api/swagger-ui/releases/latest | \
jq -r ".tag_name" > release-versions/swagger-ui-latest.txt
- name: Check for modified files
id: git-check
run: echo ::set-output name=modified::$(if git diff-index --quiet HEAD --; then echo "false"; else echo "true"; fi)
- name: Commit latest release version
if: steps.git-check.outputs.modified == 'true'
run: |
git config --global user.name 'Your Name'
git config --global user.email 'your-email@users.noreply.github.com'
git commit -am "New release version"
git push
次に、ディレクトリへの変更を検出したときにのみ実行される2番目のワークフローを作成できますrelease-versions
。
on:
push:
paths:
- 'release-versions/*'
このワークフローでは、保存されたバージョンを使用して、必要なアセットをフェッチし、必要な処理をすべて実行できます。