GitHub ActionsでソースをmasterにPushしたら自動でサーバにアップロードする方法

ノート Git
Minimal Office desk table top view with open notebook blank pages, Keyboard computer, mouse, coffee cup on a white table with copy space, White color workplace composition, flat lay
ホーム » Git » GitHub ActionsでソースをmasterにPushしたら自動でサーバにアップロードする方法

導入

本ブログでは、GitHub Actionsを用いてソースコードをmasterブランチにpushした際に自動的にサーバーにアップロードする方法について解説します。この手法を用いると、コードのデプロイが自動化され、エンジニアの作業負担を軽減することができます。

前提知識

この記事を理解するためには、以下の知識があると役立ちます:

  • 基本的なGitの操作方法(特にpush操作)
  • GitHub Actionsについての基本的な理解
  • サーバーへのファイルアップロード方法

問題定義

エンジニアリングの作業では、コードの変更を頻繁にサーバーにアップロードする必要があります。しかし、これを手動で行うと手間がかかり、エラーの原因となることもあります。そこで、GitHub Actionsを使ってこのプロセスを自動化する方法を考えます。

解決策の概要

GitHub Actionsを使って、masterブランチへのpushをトリガーにサーバへの自動アップロードを実現します。これにより、手動でのアップロード作業を省くことができます。

具体的な手順

以下に具体的な手順を示します:

  1. GitHubリポジトリの.github/workflowsディレクトリに新たにYAMLファイル(例:deploy.yml)を作成します。
  2. このYAMLファイルに、pushがトリガーとなるGitHub Actionsのワークフローを記述します。以下にサンプルコードを示します:
  3. サーバーへのSSH接続に必要な秘密鍵をGitHubリポジトリのSecretsに追加します。上記のYAMLファイルでは、この秘密鍵をDEPLOY_KEYとして使用しています。
  4. 上記のステップが完了したら、コードをmasterブランチにpushしてみてください。すると、GitHub Actionsが自動的にサーバーへのアップロードを行います。
name: Deploy to server

on:
  push:
    branches:
      - master

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Deploy to server
      run: |
        rsync -rav --delete --exclude '.git' . user@yourserver:/path/to/directory
      env:
        DEPLOY_KEY: ${{ secrets.DEPLOY_KEY }}

このワークフローでは、masterブランチへのpushをトリガーに、コードがサーバにrsyncコマンドを使用してアップロードされます。

エラーとトラブルシューティング

もし何らかのエラーが発生した場合は、GitHub Actionsのログを確認しましょう。主なエラー原因としては以下が考えられます

  • SSH接続のエラー:秘密鍵が正しく設定されていない、またはサーバーの設定が不適切な場合に発生します。
  • rsyncコマンドのエラー:サーバーのパスが間違っているか、必要な権限がない場合に発生します。

これらのエラーが発生した場合は、関連する設定を再確認し、適切な値が設定されていることを確認してください。

結果と利点

この設定を行うことで、ソースコードのアップロードが自動化され、手動でのアップロード作業を省くことができます。これにより、エンジニアはコードの開発に専念でき、ワークフローの効率化が図られます。

結論

GitHub Actionsを活用すれば、ソースコードのmasterブランチへのpushをトリガーとしてサーバへの自動アップロードを行うことができます。これにより、コードのデプロイが自動化され、エンジニアの作業負担を軽減することが可能となります。

参考リソース

以上で、GitHub Actionsを用いてソースコードをmasterブランチにpushした際に自動的にサーバーにアップロードする方法についての解説を終わります。この記事が皆さんの作業効率向上に役立つことを願っています。

コメント

タイトルとURLをコピーしました