カランのブログ

ソフトウェアエンジニア / 台湾人 / 福岡生活

今のモード ライト

GitHub Actionsの一言で表現すると

GitHubに組み込まれたCI/CDツール。

![github-actions](/img/Screenshot_2020-05-02 kjj6198 animal-crossing-info.png "github-actions")

概要

以前はCIを行うために、チーム内でCircleCI、DroneCI、Jenkinsなどの解決策について議論(喧嘩)する必要がありました。しかし、チームがコードをGitHubにホストするだけで、GitHubと簡単に統合できます。万能薬や鬼門とは言えませんが、一般的なテストの実行やプッシュとデプロイなどのシナリオでは、比較的簡単に達成できると思います。以下で説明します。

導入方法

プログラムのルートディレクトリに .github/workflows/your-workflow.yml の記述ファイルを追加するだけです。

関連リソース

始める前に、いくつかのドキュメントリンクを直接提供します。ドキュメントを読み終えてから作業を開始したい場合は、次のリンクを参照してください:

自分のプロジェクトにGitHub Actionsを追加する方法

workflowには複数のjobsがあります。ジョブ自体は複数のステップで構成され、ステップはGitHubアクション、コマンドの実行などができます。以下は例です:

name: your-name

# 使用できるイベントはドキュメントを参照してください
# https://help.github.com/en/actions/reference/workflow-syntax-for-github-actions#on
on:
  push:
    branches:
      - master
    paths-ignore: # このignoreを使用すると、ファイルを変更してもGitHub Actionsがトリガーされないことがあります
      - 'docs/**'
      - 'README.md'
      - 'LICENSE'
      - 'CONTRIBUTING.md'
    branches-ignore:
      - 'xxxx'
    tags-ignore:
      - 'v1.*'
env: # 環境変数を設定
  PROJECT_ID: ${{ secrets.PROJECT_ID }}
  RUN_REGION: asia-northeast2
  SERVICE_ACCOUNT: ${{ secrets.SERVICE_ACCOUNT }}

jobs:
  setup-build-and-deploy:
    name: Setup gcloud and deploy
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
      - uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
        with:
          version: '290.0.1'
          project_id: ${{ secrets.PROJECT_ID }}
          service_account_email: ${{ secrets.SA_EMAIL }}
          server_account_key: ${{ secrets.SA_KEY }}
          export_default_credentials: true
      - name: Deploy
        run: |-
          echo $SERVICE_ACCOUNT > /tmp/key.json && \
          gcloud auth activate-service-account --key-file /tmp/key.json && \
          gcloud app deploy --project "$PROJECT_ID"

より高度な場合、実行時に動的に判断する場合は、次のように記述できます:https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions

env:
  my_env_var: ${{ ALPHA ? 'A' : 'B' }}

GitHub Actionsは実行中にいくつかのコンテキストを提供します。

環境変数

環境変数は、プロジェクトのシークレット内で設定できます。デフォルトでは、Collaboratorのみがシークレットを見ることができ、他の人はGitHub Actionsにシークレットをプルリクエストできません。

Github Secret

この記事は、GitHub Actionsの使い方を手軽にメモしたものであり、次回の設定はより迅速に行えるでしょう。

作者

Kalan 頭像照片,在淡水拍攝,淺藍背景

愷開 | Kalan

Kalan です。台湾出身で、2019年に日本へ転職し、福岡に住んでいます。フロントエンド開発に精通しているだけでなく、IoT、アプリ開発、バックエンド、電子工作などの分野にも挑戦しています。 最近、エレキギターを始めました。ブログを通じて、より多くの人と交流できればと思っています。気軽に絡んでください