Closed4

Github Actionsを導入する

志水 亮介 (Ryosuke Shimizu)志水 亮介 (Ryosuke Shimizu)

まずはGitHub Actions やってみる

今回はまず触ってる。

どうやってGitHub Actions を触るか、どんな機能があるか確認します。

下記で作成したサイトのgithubに対して行う。

https://zenn.dev/ryosuketter/scraps/cf116e7c28cedb

バージョンなどは上記スクラップにあります。

なんて?

これは、GitHub ActionsおよびCodespacesについてのデモンストレーションの開始を歓迎するテキストです。このデモでは、GitHub Actionsを使用してCI/CDワークフローを自動化する方法について学びます。また、Codespacesを使用して、この開発環境にアクセスする方法についても触れます。

デモの終了時には、以下のことができるようになります。

  • GitHub Actions用のYAMLワークフローを記述、実行、表示する方法。
  • これらのワークフローを使用して、エラーを見つけ、コードの品質を確保する方法。
  • GitHub Actionsの一般的なユースケースを識別する方法。

このデモでは、GitHub Actionsを使用して、ポートフォリオウェブサイトをGitHub PagesにデプロイするいくつかのCI/CDワークフローを実行して、練習することができます。ポートフォリオをカスタマイズして、世界と共有してください。

それでは、始めましょう!🚀

GitHub Pagesにデプロイするまでのplaygroundやることになってる。うーむ。

あ、書けそう。

簡単な例 (Hello, World) を参考にトリアへず動かしてみます。

https://www.kaizenprogrammer.com/entry/2019/08/18/205010

最初の name はワークフローの名前らしいです。

on でリポジトリへの push 時にこのワークフローは実行されると定義しています。

ブランチの指定はないので、全てのブランチで push された時に動作します。

jobs以下は

このワークフローには、単一のジョブ(build)が定義されており、Ubuntu環境で実行されます。このジョブには、名前が"Greeting"と定義され、1つのステップがあります。このステップでは、コマンドラインで"Hello, World!"というメッセージを出力するコマンドが実行されます。

勘で書きますが

  • jobs: ワークフロー内で実行内容の定義
  • build: ???
  • name: ジョブ名
  • runs-on: 実行する環境を指定
  • steps: 処理をステップごとに書けるのかな? run, run, run みたいな感じで
  • run: 実際のシェルスクリプト書くのかな?

まだ、こんな感じ理解。

以下を見ればいいけど、長くてまだ見れてない。

https://docs.github.com/ja/actions/using-workflows/workflow-syntax-for-github-actions

作成した ワークフローを実行してみましょう。トリガーはブランチ関係なくpushすればいいかもと思うので

README.md を適当に編集して push してみる。

Action の作成、編集、ワークフローの実行までできた。echoコマンド実行しただけだけど。

志水 亮介 (Ryosuke Shimizu)志水 亮介 (Ryosuke Shimizu)

まずはGitHub Actions やってみる

.github/workflows/main.yml
# アクション名
name: CI

# ワークフローが実行されるトリガー
on: push

# Node 環境をセットアップ
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: checkout
        uses: actions/checkout@v3
      - name: setup-node
        uses: actions/setup-node@v3
        with:
          node-version: 18
          cache: npm
      - name: yarn-install
        run: yarn
      - name: test
        run: yarn run jest
      - name: eslint
        run: yarn next lint
解説
  • アクション名が「CI」
  • コードがリポジトリに push されたときに実行される
  • Node.js の環境をセットアップするためにジョブを定義
    • ジョブが Ubuntu 環境上で実行されること
    • ジョブが複数のステップで構成されること
      • ステップごとに、特定のアクションを定義
        • actions/checkout@v3 を使ってリポジトリをチェックアウト
        • actions/setup-node@v3 を使って Node.js 環境をセットアップ
        • yarn コマンドを使って依存関係をインストール
        • yarn run jest を使ってテストを実行
        • yarn next lint を使ってコードの静的解析を実行

この設定ファイルを GitHub にアップロードすると、GitHub Actions が自動的に実行され、CI パイプラインが動作するようになります。具体的には、コードの変更がリポジトリに push されたときに、定義されたジョブとステップが順番に実行されます。

理解できていない部分。誤っている箇所などあると思うが、一応動くものは完成。

ローカルでeslintが動いてエラー出たところはgithub actions上でも出たので。一応はいいのでは

このスクラップは2023/04/06にクローズされました