Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GithubActionsHandsOn資料

chihiro
October 17, 2020
290

 GithubActionsHandsOn資料

2020年10月17日にTechPlay女子部で開催したGithubActionsのHandsOnの資料です。

chihiro

October 17, 2020
Tweet

Transcript

  1. ざっくりスケジュール 10:00 - 10:15 オープニング(イマココ) 自己紹介タイムを含みます! 10:15 - 10:30 座学

    10:30 - 11:00 Hands on part1 11:00 - 11:05 休憩 11:05 - 11:55 Hands on prat2 11:55 - 12:00 クロージング
  2. Hands on の進め方 3部構成です 1. 座学 (10分程度) 2. Hands on

    part1 (30分程度) ◦ 私の実演とハンズオンを交互に進めていきます 3. Hands on part2 (50分程度) ◦ パート1でやったこと&資料を参考にしながら各個人でもくもく進めていきます ◦ わからない場合など、もちろん質問 OKです! ◦ もくもく進めるのもあり!わからないことを質問するのもあり!な時間です
  3. CI/CD とは • CI ◦ Continuous Integration (継続的インテグレーション) ▪ コードに変更があるたびに自動でテストを実行すること

    • CD ◦ Continuous Delivery (継続的デリバリ) ▪ コードを常にリリース可能な状態にしておく ◦ Continuous Deployment ( 継続的デプロイ) ▪ 常に自動でデプロイする
  4. CI/CD で自動化できること • ビルド • テスト • デプロイ • その他

    ◦ 使用しているライブラリのアップデート ◦ 静的解析チェック
  5. ①初めての GitHub Actions ゴール: ワークフローを定義して echo コマンドで文字列を出力する ★ 自分で .github/workflows

    ディレクトリを準備してymlファイルを作って、ということもできます が、今日は github.com 上でワークフローを作ってみます ★ 「echo コマンドで文字列を出力する」というシンプルなワークフローを作ってみましょう
  6. example.yml 詳しくはこちら name: CI # このワークフローの名前 on: # このワークフローをキックするイベント push:

    # push された時 branches: [ main ] # main ブランチ jobs: # 1つのワークフローは 1つ以上のjobからなる build: # このジョブのID runs-on: ubuntu-latest # “build”ジョブを実行するマシンの種類 steps: # 1つのジョブにはstepsと呼ばれる一連のタスクがある - name: Run a one-line script # 1つのstepは - によって区切られる run: echo Hello, world! # 使用されているマシンの OSのシェルを使用してコマンドラインプログラムを実行する
  7. ②actionを使ってみよう ゴール: checkout アクションを使ってみよう ★ actionとは ◦ GitHub Actions 内のライブラリのようなもの

    ◦ https://github.com/marketplace?type=actions ◦ 実はすでに先ほど作成したワークフローで checkout actionを使っています
  8. ヒント main.ymlを修正する前に、ローカルでUnitテストを実行する手順を復習します 0. PCにnode.js環境構築 & ローカルにリポジトリを clone 1. npm install

    2. npm test この手順を GitHub Actions で実現します。今の main.yml では、0番目の手順まで実現できてい ます。 残り2つの手順をそれぞれステップで実現します。
  9. ヒント • 今までは push イベントを使っていましたが、 schedule イベントを使います • 以下のリンクを参考にしてみてください ◦

    https://docs.github.com/ja/free-pro-team@latest/actions/reference/workflow-s yntax-for-github-actions#onschedule ◦ https://docs.github.com/ja/free-pro-team@latest/actions/reference/events-that- trigger-workflows#schedule
  10. ヒント • まずはUnitテストを失敗させましょう ◦ 実は今のアプリにはおかしいところがあります。そして Unitテストも間違っています。Unit テストを修正してみてください(コードも間違っているのでテストは失敗するはずです )。 ◦ テストは、

    リポジトリの__tests__/service/rule-test.js です • ステップの中で if 条件文を使うことができます • 以下のリンクを参考にしてみてください ◦ https://docs.github.com/ja/free-pro-team@latest/actions/reference/context-and -expression-syntax-for-github-actions#failure ◦