「GitHub Actions Meetup Tokyo β」に参加してきました

  • GitHub Actions Meetup Tokyo βに参加してきました。

gaugt.connpass.com

タイトル 発表者
新GitHub Actions のはじめかた @miyajan
GitHub Actionsで WebDriverどこまでやるの? @hiroshitoda
GitHub Actions Parallel Testing @yasuhiroki
GitHub Actionsと(主にreviewdogを使った)Automated Code Review @haya14busa
他のCIサービスと比較してできることできないこと @Kesin
Github Actions でハマった点と解決方法 @kawasin73
自作Github actions入門 @Naturalclar

GitHub Actions のはじめかた

  • @miyajanさん

GitHubActionsをはじめるとき

既存のワークフローを探す時

アクションを作る時

既存のアクションを探す時

予想外の挙動で困った時

GitHub Actionsで WebDriverどこまでやるの?

  • @hiroshitodaさん

GitHubActionsが動く基盤

GitHubActionsで最初から使えるソフトウェア

Appiumの利用とNested Virtualizationの壁

  • Androidエミュレータを動かせるのはmacOSだけ
    • Linux/Windows環境がNestedVirtualizationに対応してないから
  • 公開Dockerイメージを使える
    • AppiumでもDocker使っていい感じにしたい
    • NestedVirtualization問題
    • やるならmacOS
    • budtmo/docker-android
      • 5~6GB
      • 2分くらいでpullできる
    • bitriseio/docker-android
      • 26~27GB
      • キャッシュできない環境では実用に耐えない

GitHub Actions Parallel Testing

  • @yasuhirokiさん

並列テスト

複数のテストを分割して並列に実行したい

  • matrixを使うとできる
    • 自分でコードもちょっと書かないといけない
  • CircleCIは実行時間が均されるように自動で振り分けてくれる
    • knapsackを使うといい感じにできる

テスト結果を集計したい

  • artifactを使う
    • それぞれのノードで見えるディレクトリにファイルをアップロード
    • それらをダウンロードして集計する

Tips

GitHub Actions と (主に reviewdog を使った) Automated Code Review

  • @haya14busaさん

GITHUB_TOKEN

  • secret.GITHUB_TOKENを明示的に指定したときだけ使える
    • forkしたリポジトリからはちゃんと見えないようになってる
  • リポジトリにインストールされたGitHub Appのアクセストーク

Check API

  • コードにコメントをつけられる
  • Review APIより使いやすい
  • reviewdog

他のCIサービスと比較してできることできないこと

  • @Kesinさん

ビルドキャッシュとアーティファクト

マトリックスビルド

  • nodeの複数バージョンでJobを実行といったことができる

マトリックスビルドとconainter

  • マトリックスで指定したイメージ上でテストが実行できる
  • actions/setup-xxxを使わなくてもよくなる

Github Actionsでハマった点と解決方法

  • @kawasin73さん

プライベートリポジトリ

  • プライベートリポのインストールが難しい

3rd Party Action信頼できない

  • 大もとはGitHubリポジトリ
    • 差し替えられても気づけない
  • フォークして使いましょう
    • 中身を確認して使う

git cloneに失敗する

  • サーバ鍵の検証を諦めて無視した
  • GitHubないからGitHubリポジトリにアクセスするので中間者攻撃はないだろう

セマンティクスバージョニングがない

  • v0.1はv0.1.0にならない
  • Actionsのバージョンはタグとの完全一致

自作Github actions入門

  • @Naturalclarさん

actions-toolkit

github.com

  • @actions/core
  • @actions/exec
  • @actions/io
  • @actions/github
  • @actions/tool-cache