GitHub Actionsを使い、自動でcommitとpushを行うように設定してみます。
GitHubのリポジトリ内のテキストファイルを、GitHub Actionsのワークフローを用いて毎日自動で更新し、同時にcommitとpushを行います。
テキストファイルとコミットログには、Actionを実行した時間を取得して書き込む様にします。
必要なファイルは以下の2つになります。
1<リポジトリ>
2 ├ commit_log.txt
3 └ .github
4 └ workflows
5 └ auto-commit.yml
GitHubのリポジトリ直下にコミットログを追加するためのcommit_log.txt
と、自動コミット・プッシュのワークフローの設定ファイルであるauto-commit.yml
を/.github/workflows
直下に配置します。
ymlファイルはリポジトリの「Actionsタブ「の「set up a workflow yourself」からでも作成することができます。
auto-commit.yml
の内容は以下になります。
1name: auto-commit
2
3on:
4 workflow_dispatch:
5
6 schedule:
7 - cron: "0 0 * * *"
8
9jobs:
10 build:
11 runs-on: ubuntu-latest
12
13 steps:
14 - uses: actions/checkout@v3
15
16 - name: Set current datetime as env variable
17 env:
18 TZ: 'Asia/Tokyo'
19 run: echo "CURRENT_DATETIME=$(date +'%Y-%m-%d %H:%M:%S')" >> $GITHUB_ENV
20
21 - name: Commit
22 run: |
23 git config --global user.email ${{ secrets.USER_EMAIL }}
24 git config --global user.name ${{ secrets.USER_NAME }}
25 echo -e ${{ env.CURRENT_DATETIME }} >> commit_log.txt
26 git add commit_log.txt
27 git commit -m "[add] 自動コミット:${{ env.CURRENT_DATETIME }}"
28 git push origin main
ワークフローの手動実行と毎日の自動実行を設定しています。
続いて、環境変数のUSER_EMAIL
とUSER_NAME
を設定します。
リポジトリの「Settingsタブ」→「Secrets and variables」→「Actions」→「New repository secret」から環境変数を設定します。
環境変数はそれぞれ、USER_EMAIL
は登録しているメールアドレス、USER_NAME
はGitHubのIDになります。設定すると以下の様な画面になります。
また、設定の「Actions」→「General」で「Workflow permissions」の設定が「Read and write permissions」になっているか確認しましょう。これが設定されていないとActionの書き込み権限が無いので上手く動作しません。
ここまでで準備が終わったので、Actionを実行します。
これで、自動で設定したActionが実行されるようになりました。画像から設定したActionが毎日実行されていることが分かります。
今回はGitHub Actionsのワークフローに関する記事でした。特に有用な使い道は無さそうな内容ですが、参考になれば幸いです。以上で記事を終わりにします。