はじめに
この記事では、GitHub Actionsを利用してGitサブモジュールを自動的に更新するワークフローの設定方法を説明します。
GitHub Actionsを使ったサブモジュールの自動更新設定
GitHubリポジトリで .github/workflows
ディレクトリに以下の内容でワークフローファイルを作成します。
name: Update Submodules
on:
schedule:
- cron: '0 0 * * *' # 毎日 UTC 0時に実行されます。
workflow_dispatch: # このワークフローを手動で起動できるように設定します。
jobs:
update-submodules:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v3
with:
fetch-depth: 0 # 全ての履歴とサブモジュールをフェッチします。
- name: Update submodules
run: |
git submodule update --init --recursive
git submodule update --remote
- name: Commit and push changes
run: |
git config --global user.name 'Your Name'
git config --global user.email ${{ secrets.USER_EMAIL }}
git commit -am "Automatically update submodules"
git push
GitHub Secretsの使用
'Your Name'はご自身のGiHubの名前に変更してください。
GitHubのSecretsを活用することで、メールアドレスなどの機密情報をセキュアに管理できます。
リポジトリの Settings → Secrets → Actions で USER_EMAIL
としてメールアドレスを設定します。
Github Actionsの権限付与
以下記事を参考にGithub Actionsでリポジトリ更新ができるように権限付与が必要です。
https://zenn.dev/osawa_koki/articles/a63b96a2707a8f
設定例
まとめ
この設定を行うことで、サブモジュールを自動的に最新の状態に保つことができます。
参考資料