モノラルログ

マツオ ( @matsuoshi / monaural.net ) のざっくりしたブログです

GitHub Actions で cron を使う

f:id:matsuoshi:20200508124640p:plain

GitHub Actions の cron を使って、定期的に実行したいジョブを設定したのでそのメモ

GitHub Actions とは

いうたら GitHub に標準搭載の CI/CD 環境的なものです。Git Push されたらテストを自動実行、みたいなことが GitHub内だけで完結します。 public リポジトリだと無料なのはもちろん、なんと private リポジトリの場合でも無料から使えます(実行時間に上限あり)。くわしくは pricing のページを

github.com

ひとまずサンプル

GitHub Actions の設定ファイルを作ります。ファイル名は何でもよいです、拡張子は .yml で。

name: cron sample
on:
  schedule:
    - cron: '0 12 * * *'

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - name: hello
      run: |
        echo "hello world"

これを、リポジトリ内の /.github/workflows/ フォルダ内に置いて、GitHub に push するだけでOK。

上記の例だと、毎日 12:00 (UTC) に GitHub Actions によって ubuntu の環境が立ち上がり、hello world が実行されます。

注意点など

最短間隔は 5分

cron の最短間隔は 5分のようです。実際に cron: '*/2 * * *' などと5分未満の間隔を設定してみたのですが、5分に1回しか実行されませんでした。

って、ドキュメントにも書かれてましたわ。

スケジュールされたワークフローを実行できる最短のインターバルは5分ごとです。

help.github.com

指定時刻ぴったりに動く感じではない

上記と関連するかもですが、分単位でかっちりトリガーされる、というわけではなさそう。前後 5分程度のブレは見ておいたほうがよさげです。1分のズレが許されない、厳格な用途には向かなさげ。ゆるふわで。

時刻はUTC

UTC以外に設定変更する方法が見当たらず……。なので、日本時間だと 9時間引いて指定する感じになります。

privateリポジトリは制限あり

publicリポジトリは、無料アカウントでも時間制限なしです。private リポジトリの場合は時間制限があり、1アカウント 2,000分/月 までとなります。

月間2,000分ということは、1日あたり1時間ちょい。1時間あたりだと 2.6分くらい。

チーム開発でCI環境を……というならともかく、個人でちょろっと動かすくらいなら private リポジトリでも無料の範囲である程度いけそう。すごい。

curl が使える

なにか webhook的なものをトリガーしたければ、curl を使えばOKでした。

      run: |
        curl -X POST -d {} https://example.com/

こんな感じの指定になりますね。

public リポジトリだけど、設定ファイル内の情報を隠したい場合

たとえば GitHub Actions内で webhook をコールしたい、けど URL は知られたくない、けど public リポジトリにはしたい、という場合。

secret 機能が使えます。

f:id:matsuoshi:20200508123134p:plain

リポジトリの設定がありまして、setting -> secret と進むと、ナイショの値を設定できます。ここでたとえば SECRET_URL という値を入れてあげて、ymlファイル側では

      run: |
        curl -X POST -d {} ${{ secrets.SECRET_URL }}

こんな感じに指定してやることで、secret として設定した値を使うことができます。

まとめ

べんり。

cron の設定を、コードと一緒に管理できるのは良いですね。情報があちこちに散らばらず、同じリポジトリ内にまとまっているのは、やはり分かりやすいです。

private リポジトリでもそれなりの時間分使えますし!

楽天モバイル (MVNO) から楽天モバイル (MNO) に乗り換えた

楽天モバイルのサポーターズプログラムで Rakuten mini を使ってました。

使い勝手的に特に大きな問題ないな~ ということで、以前から使ってたMVNOの方の楽天モバイルから、新しい楽天モバイルMNP で乗り換えました。

なんせ1年間無料!
ギガ使い放題!
通話も無料!

正直いつまで続くかわからないリモートワークの状況の中で、スマホの重要性が減ってきてるんですよね~。ほとんど家にいるから通信は家の Wi-Fi で十分、つまりギガはほとんど必要ないし、通勤時間がないからスマホ触る時間自体減ってるし。

ということで1年間無料はかなりありがたい……!

また、楽天モバイルMVNO からの MNP の場合、契約解除料や転出料がかからないのもありがたかったっす。切り替えるだけで節約できたという感じ。

端末の Rakuten Mini のほうは、カメラがもうちょっと良ければな~ というのと、バッテリー持ちももうちょっと良ければな~ という2点くらいで、あとはほとんど不満ありません。リモートワークになるまえから普通にメインのスマホとして使っています。(サブでタブレットを併用中)

リモートワークの運動不足に、みんなで筋肉体操

NHKの「みんなで筋肉体操

武田真治が出てる体操番組ですね。5分でヘトヘトになれるやつ。ほんとにキツい。

www4.nhk.or.jp

体がなまりがちなリモートワークのご時世に、こういうちょっとした体操はありがたい。自分も毎日のようにやっています。家の中でできるし、時間も全然かからないしね。本気でやるとかなりハードで、いい感じです。

以前はNHK公式のYouTubeで見られたんですが、いまはYouTube上からなくなってるみたい。もう見られなくなったかも!? とちょっと焦ったんですが、なんのことはない、NHK公式でアーカイブされてました。

www.nhk.or.jp

www.nhk.or.jp

運動不足に気をつけて、やっていきましょう 💪

筋肉体操がハードなら、ふつうにラジオ体操もいいよね、これは公式に YouTube にあがってます。


[テレビ体操] ラジオ体操第1 | NHK

あと、ラジオ体操って椅子に座りながらでもできるんですよね。今時のデスクワークにもぴったりかもね。

リモートワークのお供に、鳩時計とパタパタ時計アプリ

リモートワークやってます

このご時世ですね、すっかりリモートワークな状況が続いています。自宅作業の毎日。

それにしてもリモートワークって、時間、時間の感覚、溶けていきません?

「気がついたらもうこんな時間かー」とか、「休憩全然取れてないわ~」とか、「1日の仕事のやめどきが分からない……」とかとか。

職場だとみんなが休憩するときに一緒にコーヒー飲んだり、まわりが帰宅しだしたら自分もそろそろ上がろうかな…… とかなったりしますけど、リモートワークだとそのタイミングの掴み方が難しい。個人的には作業部屋の陽当たりも良くないので、外の明るさで時間を感じるということもしづらい。

時間の感覚、溶ける。身体的にも精神的にも影響でてきそう。

そこで鳩時計アプリですよ

時間の感覚を取り戻すために、鳩時計アプリとパタパタ時計アプリを使ってみました。これがけっこういい。

f:id:matsuoshi:20200412130726p:plain

↑ 余ってる古いスマホ (画面ヒビ割れてる) に、時計アプリ入れてデスク上に設置したの図、です。

鳩時計アプリ

単純に、30分に1回、「ポッポー 🐦」と音が鳴るだけのアプリです。

「あっもうこんな時間か」と気づかせてくれます。自分だけでなく、オンラインミーティング中に「もう30分経ったのか~」とみんなに気づかせてくれる効果もあります。

あと音がかわいいよね。なごむ。

パタパタ時計アプリ

単純に大きな時計を目の前に表示しておきたかったので、古いスマホにアプリを入れて、時刻を全画面表示させました。デスクの上に置いて、でっかく現在時刻を意識させてくれます。

このアプリはパタパタ時計 (flip clock) を模しているものです。なので1分に1回、時刻が変わるタイミングで「パタッ」っていう小さな音とアニメーションがあります。この1分ごとの音もまた、時間の感覚を少しだけ意識させてくれます。

けっこういいですよ

単純だけど、リモートワークでの時間の感覚溶ける問題、

  • 現在時刻をでっかく目の前に出す
  • 1分ごとにパタッって小さく音が鳴る
  • 30分ごとに「ポッポー」

で、わりと取り戻せるようになりました。ほんとに単純なことだけど。

鳩時計考えた人すごいな~~ 先人の知恵だ。

参考

ちなみに実際に使った Android アプリはこちら。(同種のアプリはたくさんあって、細かくは調べてないです)

play.google.com

play.google.com