はじめに
2023年12月にGitHub ActionsでArtifacts v4が一般利用可能となりました。v4の変更によって、artifactsアップロード後にartifact-idが付与されるようになりました。
https://github.blog/changelog/2023-12-14-github-actions-artifacts-v4-is-now-generally-available/
付与されたartifact-idを使うことでアップロードしたartifactのDLリンクが作れるようになります。
サマリ
次のように書くことでダウンロードリンクが作れます
${{github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }}/artifacts/${{ steps.**actions/upload-artifact@v4で指定したid名**.outputs.artifact-id }}
サンプル
プロジェクトルートフォルダにあるhoge.txtをアップロードしてslackにDLリンクを通知する例を示します。
yaml
jobs:
upload-artifacts:
*中略*
steps:
- name: Upload artifacts
uses: actions/upload-artifact@v4
id: artifact-upload-step
with:
path: hoge.txt
- name: Send to slack
if: success()
uses: slackapi/slack-github-action@v1.26.0
with:
payload: |
{
"text": "Github Actions実行結果: ${{ job.status }}\nダウンロードリンク: ${{github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }}/artifacts/${{ steps.artifact-upload-step.outputs.artifact-id }}",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Github Actions実行結果: ${{ job.status }}\nダウンロードリンク: ${{github.server_url}}/${{ github.repository }}/actions/runs/${{ github.run_id }}/artifacts/${{ steps.artifact-upload-step.outputs.artifact-id }}"
}
}
]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK