0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub CLIとGitHub Actionsワークフロー基礎

Posted at

この記事では、GitHub CLI (gh) のセットアップ手順と、GitHub Actions のワークフロー構文の基本的な書き方をまとめます。

1. GitHub CLI (gh) のセットアップ

1-1. インストール

GitHub CLIは、リポジトリの操作やPRの作成・レビューなどをコマンドライン上で行える便利なツールです。各OSごとにインストール手順が異なります。

macOS:

brew install gh

Ubuntu (Deb系):

curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update
sudo apt install gh

Windows:

GitHub公式のインストーラーでインストール

またはchocolateyを利用して choco install gh でインストール

1-2. ログイン

インストール後、下記コマンドでGitHubにログインします。

gh auth login

対話式のプロンプトでGitHubアカウントの認証を行います。ログインが成功すると、GitHub CLI上でリポジトリ操作やIssue/Pull Requestなどの操作が可能になります。

2. GitHub Actionsのワークフロー構文基礎

GitHub Actionsは、GitHub上でCI/CDパイプラインを構築するためのプラットフォームです。リポジトリ内の .github/workflows/ ディレクトリにYAMLファイルを配置することで、さまざまなイベントに応じてスクリプトやジョブを実行できます。

2-1. 基本の構文

以下は簡単なワークフローの例です。プルリクエストが作成されたときにテストを実行するものとします。

name: Run Tests on Pull Request

on:
  pull_request:
    branches: [ main ]

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - name: Install Dependencies
        run: npm install
      - name: Run Tests
        run: npm test

name: ワークフローの名前

on: どのイベントでトリガーされるか

ここでは pull_request がトリガーとなり、対象ブランチを main に絞っています

jobs: ワークフローの実際の処理

runs-on ではジョブが実行される環境を指定

steps ではそのジョブ内で実行する具体的なステップを定義

2-2. onセクションの書き方

on セクションには、以下のようなトリガーを指定可能です。

・push

・pull_request

・workflow_dispatch (手動トリガー)

・schedule (cron)

・release

・etc.

複数のイベントを指定する場合:

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

2-3. 変数の扱い

GitHub Actions内で独自の変数を利用したいときは、 env: を使って環境変数として定義します。

env:
  NODE_ENV: test

また、GitHubが用意しているコンテキスト ( GITHUB_REF や GITHUB_SHA など) やSecrets (機密情報) を参照することもできます。

steps:
  - name: Print Env
    run: echo "Branch is $GITHUB_REF"

2-4. jobsセクション

複数のジョブを定義し、それらを並列または依存関係付きで実行できます。

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - run: npm install
      - run: npm run build

  test:
    runs-on: ubuntu-latest
    needs: build
    steps:
      - uses: actions/checkout@v3
      - run: npm test

needs: build のように記述すると、 test ジョブは build ジョブが完了してから実行されます。

3. まとめ

GitHub CLI は、GitHubリポジトリの操作をCUIベースで効率化するために活用できます。ローカル環境とGitHub間のやりとり (Issue管理やPull Request作成・レビューなど) がコマンドライン一発で行えるため、大変便利です。

GitHub Actions は、YAMLファイルでイベントやジョブを定義し、CI/CDパイプラインを簡単に実装可能です。基本的な構文と設定方法を押さえておくと、さまざまな開発フローを自動化できます。

これらを組み合わせて、ローカルからPRを作成し、それに対して自動テストやデプロイを実行する流れを組むことができれば、一連の開発サイクルが効率化されます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?