< Back

【GitHub Actions】CIを使って毎日自動でGitHubに草を生やそうwww

【GitHub Actions】CIを使って毎日自動でGitHubに草を生やそうwww

タイトルに草が生えてますし内容もネタですが、文章の調子は至って真面目な記事にする予定です。

分かる人は以下の

以上で、なんとなくわかる方は以降の記事は読まなくても大丈夫かと思います。

.github/workflows/blank.yml
name: CI

on:
  schedule:
  - cron: 0 0 * * * #JSTで9時
  push: # 一度動作確認してActionsが動きそうならオフにする

jobs:
  build:

    runs-on: ubuntu-latest
    
    steps:
    - uses: actions/checkout@v1
    - name: Run a one-line script
      run: echo Hello, world!
    - name: Run a multi-line script
      run: |
        echo Add other actions to build,
        echo test, and deploy your project.
        git config user.name "ykhirao-bot"
        git config user.email "yk@example.com"
        git remote set-url origin https://ykhirao:${{ secrets.GITHUB_TOKEN }}@github.com/ykhirao/write-code-everyday-bot-fork
        git branch
        git checkout master
        git branch
        ./omikuji.sh >> README.md
        git add .
        git commit -m "update!"
        git push origin master

前提条件確認

1. 草とは

こういうGitHubの個人ページに行った時に表示される、いつどれくらいコミットされてるかわかるので、エンジニアの技術評価に使われていたりする。

スクリーンショット 2019-09-26 13.01.31.png

エンジニア系のHRサイトだと以下のようなところがGitHubのデータ解析してポイントつけてくれたりするので面白いかも。

⚠⚠今回私が紹介する方法でコミット数だけ増やしても実力は何も変わらないのでネタだと思ってください
⚠⚠エンジニア採用する会社さんもコミット数が多い人を採用するのではなく、ちゃんとどういうレポジトリにコミットしているとか、ちゃんと面談で聞いていくのがいいのではないかなと思います

設計確認

  • 毎朝9時に占いをして、その結果をREADME.mdにコミットする
  • それをPushする

名称未設定.001.jpeg

簡単ですね。

これを読んで得ること

  • スケジュールでいろんなスクリプトをフックできる環境が手に入る
    • 毎月何かを実行したり、毎日運勢をSlackに送ったり…?
  • GitHub Actions少し詳しくなる
  • CircleCIなどにも応用できるので いわゆる CI/CD という分野のことが少しわかる

比較的初心者向けに書いていきますが、ある程度は省いていきます

間違いを見つけたとき、動かないとき

自分でデバックするか、このQiitaに編集リクエストくれると嬉しいかもです… :pray:

さて、毎日コミットする環境を作りましょう!!!!

ここからが本編です。

1. forkする

スクリーンショット 2019-09-26 13.53.25.png

ここの Fork というのを押して自分のGitHubへコピーします。

2. GitHub Actionsを有効にする

GitHub Actionsが有効になっていない人は有効にするために申請する。私の場合は夜中に30分待ちました。JST23時ころ。

スクリーンショット 2019-09-26 12.58.53.png

3. GitHub Actionsを設定する

スクリーンショット 2019-09-26 14.02.29.png

Set up this workflow をクリックする

スクリーンショット 2019-09-26 14.04.43.png

左側の編集画面に何も考えずに以下の文章を貼り付ける

name: CI

on:
  push: # 一度動作確認してActionsが動きそうならオフにする # オフにしないとpushの無限ループにおちいるよ。
#   schedule:
#   - cron: 0 0 * * *

jobs:
  build:

    runs-on: ubuntu-latest
    
    steps:
    - uses: actions/checkout@v1
    - name: Run a multi-line script
      run: |
        echo Add other actions to build,
        echo test, and deploy your project.
        git config user.name ${NAME}
        git config user.email ${EMAIL}
        git remote set-url origin https://${NAME}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repos }}
        git branch
        git checkout master
        git branch
        ./omikuji.sh >> README.md
        git add .
        git commit -m "update!"
      env:
        NAME: ${{ github.actor }}
        EMAIL: yk@example.com
        REPO: write-code-everyday-bot

そしてコミットするとpushに反応して、CIが動き出す。

スクリーンショット 2019-09-26 14.22.58.png スクリーンショット 2019-09-26 14.23.07.png

失敗してたらこのあたりに出てくるので、確認してみてください。たぶんパスワードがなくて失敗とかありそう。

最後に

CircleCIとかまともに設定いじったことなかったので、初めてのCIでした。すごく楽しかったのでまたスケジュールでhookできる面白そうな何かがあれば触ってみたいなと思ってます!!!

ここまで読んでいただきありがとうございました!

参考にした資料

.