Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

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

分かる人は以下の

  • fork する https://github.com/ykhirao/write-code-everyday-bot/
  • GitHub Actionsを使えるように申請する(30分くらい)
  • touch .github/workflows/blank.yml して後に記載のyamlファイルをpushする
  • write-code-everyday-bot/ の settings から secrets つまりシークレットキーとして、 GITHUB_PASS という名前で自分のGitHubのパスワードを入力する
    • (本当はパスワードじゃなくて、sshでやりたかったのですがうまくいかなかったのでできそうな方PRお願いしたく… :pray:

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

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 "yuki.dees39th@gmail.com"
        git remote set-url origin https://ykhirao:${{ secrets.GITHUB_PASS }}@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. レポジトリにパスワードを埋め込む

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

Add a new secret のところに GITHUB_PASS という名前でパスワードを埋め込む。一度設定したら二度と見えないので、誰かがパソコンを勝手に操作して…とかで漏れる心配はないと思う。(詳しい方いたら教えてほしい)

4. 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_PASS }}@github.com/${NAME}/${REPO}
        git branch
        git checkout master
        git branch
        ./omikuji.sh >> README.md
        git add .
        git commit -m "update!"
      env:
        NAME: ykhirao
        EMAIL: yuki.dees39th@gmail.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できる面白そうな何かがあれば触ってみたいなと思ってます!!!

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

参考にした資料

.

ykhirao
Web Developer For 4 years. PHP/Laravel && (React OR Vue.js)
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away