GitHubの草を自動栽培する


Twitter でタイムラインを眺めていると 「草生やして転職。」 なんていうふざけた広告が流れてくるので、なら自動栽培してやろうと思い立った。

Tools

  • GitHub
  • Travis CI

Overview

とても簡単で毎日 Travis CI を動かして、ファイルいじって、 GitHub にプッシュするだけです。

Config

Travis CI に設定する必要がある項目を紹介する

Cron Jobs

毎日実行されるように設定するだけ

Environment Variables

GitHub の Personal Access Token を使う

USER_TOKEN にトークンをセットすると完了

travis env set USER_TOKEN the-generated-token --private -r tanjo/saibai

または Travis CI のサイトで設定できる

Code

Travis CI の TRAVIS_EVENT_TYPEcron の時にファイルを更新して GitHub へ push する。

イベントタイプによる判断をしているので cron 以外のジョブでは GitHub への push が実行されることはありません。

tanjo/saibai はダミーリポジトリ名で存在しません。

.travis.yml
language: ruby
rvm: 2.6.2
before_install:
- gem install bundler:2.0.1
script:
  - |
    if [ $TRAVIS_EVENT_TYPE = cron ]; then
      echo -e "machine github.com\n  login $USER_TOKEN" >> ~/.netrc
      git clone --branch develop --depth 1 https://github.com/tanjo/saibai.git
      pushd saibai
      git config user.name "tanjo"
      git config user.email "[email protected]"
      echo `date` > .updated
      git commit -m "Update .updated"
      git push origin develop
      popd
    fi
branches:
  only:
  - develop

Result

約1年くらい栽培した結果がこちらです。

丹精込めた日ほど色濃く育ちます。

他にどうやらまとめてやる方法があるらしいですが、日々の努力をアピールするため毎日 push しました。

ちなみに、こういった使い方は推奨されないためオススメはしません。

Travis CI で develop ビルドから master へ自動 push がしたい等の参考にしてください。