ホームページ >バックエンド開発 >Python チュートリアル >GitHub アクションを使用して DevOps ワークフローを自動化する

GitHub アクションを使用して DevOps ワークフローを自動化する

Susan Sarandon
Susan Sarandonオリジナル
2024-11-11 03:37:02783ブラウズ

Automate DevOps Workflows with GitHub Actions

著者: Trix Cyrus

ウェイマップ侵入テストツール: ここをクリック
TrixSec Github: ここをクリック


GitHub アクションとは何ですか?

GitHub Actions は、GitHub に統合された自動化ツールで、ワークフロー、CI/CD パイプライン、テスト、コード品質チェック、さらにはリポジトリ内でのデプロイメントを直接自動化する機能を提供します。 YAML ファイルを使用してワークフローを定義できるため、トリガー、環境、タスクを完全に制御できます。


DevOps に GitHub アクションを使用する理由

  1. GitHub との統合: GitHub リポジトリ、問題、プル リクエストとシームレスに統合します。
  2. スケーラブルな CI/CD パイプライン: さまざまなプラットフォームでビルド、テスト、デプロイメントを実行します。
  3. カスタマイズ可能なワークフロー: 単純なタスクから複雑な複数ステップのプロセスまで、ニーズに正確に一致するワークフローを定義します。
  4. 再利用可能なワークフロー: 複数のプロジェクト間で再利用可能なワークフローとカスタム アクションを共有します。

GitHub アクションの主要コンポーネント

  1. ワークフロー: .github/workflows ディレクトリに保存されている YAML ファイルで定義された自動プロセス。
  2. ジョブ: 各ワークフローは、同時または順次に実行できるジョブで構成されます。
  3. ステップ: 各ジョブには一連のステップがあり、コマンド、スクリプト、または再利用可能なアクションの実行が含まれる場合があります。
  4. トリガー: プッシュ、プルリクエスト、スケジュールなど、ワークフローをトリガーするイベントを定義します。

初めての DevOps ワークフローをセットアップする

新しいコミットがプッシュされるたびにコードをテストしてビルドするための、基本的な CI ワークフローの作成について説明します。

  1. ワークフロー ファイルの作成

    リポジトリの .github/workflows に移動し、ci.yml.

  2. という名前のファイルを作成します。
  3. ワークフロー構造を定義する

   name: CI Workflow

   on:
     push:
       branches:
         - main
     pull_request:
       branches:
         - main

   jobs:
     build:
       runs-on: ubuntu-latest

       steps:
         - name: Checkout code
           uses: actions/checkout@v3

         - name: Set up Node.js
           uses: actions/setup-node@v3
           with:
             node-version: '16'

         - name: Install dependencies
           run: npm install

         - name: Run tests
           run: npm test

         - name: Build project
           run: npm run build
  1. ワークフローの説明
  • トリガー (オン): ワークフローは、メイン ブランチをターゲットとする Push または pull_request イベントでトリガーされます。
  • ジョブ: 依存関係をインストールし、テストを実行し、プロジェクトをビルドする単一のビルド ジョブがあります。
  • ステップ: 各ステップではアクションまたはコマンドを使用します (例: コードをチェックアウトするためのアクション/チェックアウト、Node.js をセットアップするためのアクション/セットアップノード、およびさまざまな npm コマンド)。

lint チェックとコード品質チェックの追加

コードの品質を確保するために、ワークフローに lint ステップを追加できます。

- name: Lint code
  run: npm run lint

依存関係のインストールの後にこのステップを追加すると、パイプラインの早い段階でコード品質の問題を特定するのに役立ちます。


GitHub アクションによるデプロイメントの自動化

次に、AWS や Firebase などのクラウド サービスに自動デプロイメント ステップを追加しましょう。

例: Firebase へのデプロイ

  1. Firebase CLI をセットアップする

    まず、ローカルマシンに Firebase CLI をインストールして設定します。 firebase login:ci でトークンを生成し、GitHub シークレット (FIREBASE_TOKEN) として保存します。

  2. 展開ステップを追加します

   name: CI Workflow

   on:
     push:
       branches:
         - main
     pull_request:
       branches:
         - main

   jobs:
     build:
       runs-on: ubuntu-latest

       steps:
         - name: Checkout code
           uses: actions/checkout@v3

         - name: Set up Node.js
           uses: actions/setup-node@v3
           with:
             node-version: '16'

         - name: Install dependencies
           run: npm install

         - name: Run tests
           run: npm test

         - name: Build project
           run: npm run build

ここでは、needs: build を指定します。これは、この展開ジョブがビルド ジョブが正常に完了した後にのみ実行されることを意味します。


GitHub アクションの高度なヒント

  1. キャッシュを使用する: 依存関係をキャッシュすることでワークフローを高速化します。
- name: Lint code
  run: npm run lint
  1. マトリックス ビルド: マトリックス戦略を使用して、複数のバージョンまたはプラットフォームにわたってテストします。
   deploy:
     needs: build
     runs-on: ubuntu-latest

     steps:
       - name: Checkout code
         uses: actions/checkout@v3

       - name: Set up Node.js
         uses: actions/setup-node@v3
         with:
           node-version: '16'

       - name: Install dependencies
         run: npm install

       - name: Build project
         run: npm run build

       - name: Deploy to Firebase
         env:
           FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
         run: |
           npm install -g firebase-tools
           firebase deploy
  1. シークレットと環境変数: 機密情報を GitHub シークレットに保存し、${{ Secrets.SECRET_NAME }} を使用してアクセスします。

ワークフローの監視とデバッグ

  • ログの表示: GitHub Actions の各ステップでは、[アクション] タブからアクセスできるログが生成されます。
  • デバッグ モード: 詳細ログを作成するには、値 true を指定して ACTIONS_STEP_DEBUG をシークレットに追加します。
  • エラー通知: ワークフローの失敗に関するアラートを受信するように通知 (Slack や電子メールなど) を設定します。

再利用可能なワークフロー

プロジェクトが成長するにつれて、YAML ファイルで workflow_call を定義し、特にコードのフォーマットやセキュリティ スキャンなどのタスクで複数のリポジトリ間で再利用することにより、再利用可能なワークフローを作成することを検討してください。


まとめ

GitHub Actions を使用して DevOps ワークフローを自動化すると、生産性が向上し、人的エラーが削減され、より堅牢な CI/CD パイプラインが作成されます。ワークフローがバックグラウンドでシームレスに実行されるため、開発者は展開タスクではなく、コードの作成に集中できます。 DevOps の取り組みにおける GitHub Actions の可能性を最大限に高めるために、テストから小規模に始めて、徐々にデプロイとモニタリングに拡張していきます。


このガイドは、GitHub Actions を使用してプロジェクトを構築、テスト、デプロイするための基盤を提供します。慣れてきたら、カスタム アクション、統合、高度な自動化を使用してさらに拡張し、完全に最適化された DevOps パイプラインを実現できます。

~TrixSec

以上がGitHub アクションを使用して DevOps ワークフローを自動化するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。