LoginSignup
1
1

More than 1 year has passed since last update.

GitHab Actionsを用いてgit pushしたら自動的にXserverにデプロイする

Last updated at Posted at 2022-08-21

前回の記事

今回の作業

GitHub Actionsを用いて、リモートレポジトリのmainブランチにpushした際に本番環境(xserver)に自動デプロイできるようにする

GitHub ActionsのWorkflowを準備

スクリーンショット 2022-08-21 23.47.52.png

New workflowをクリックして新しいymlファイルを作成する

中身はこんな感じ

deploy.yml

name: deploy to xserver

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
        - uses: actions/checkout@v2
        - name: ssh key generate
          run: echo "$SSH_PRIVATE_KEY" > key && chmod 600 key
          env:
            SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}]
            
        - name: rsync deployments
          uses: burnett01/rsync-deployments@5.1
          with:
            switches: -avz --delete
            remote_path: ${{ secrets.REMOTE_PATH }}
            remote_host: ${{ secrets.REMOTE_HOST }}
            remote_user: ${{ secrets.REMOTE_USER }}
            remote_port: ${{ secrets.REMOTE_PORT }}
            remote_key: ${{ secrets.SSH_PRIVATE_KEY }}

変数をSecretsに記載

秘密鍵はもちろん、ホスト名などもこのファイル内に直書きするのはセキュリティ上良くないらしいのでSecretsに変数の中身を記載
Settings→Secrets→Actions

スクリーンショット 2022-08-21 23.52.27.png

中身は下記の通り

            REMOTE_PATH: /home/サーバーID/ドメイン名/
            REMOTE_HOST: サーバー番号.xserver.jp
            REMOTE_USER: ユーザー名
            REMOTE_PORT: 10022
            SSH_PRIVATE_KEY: FTP設定の時にxserverからダウンロードした秘密鍵

これで設定は完了

実行してみる

適当にロゴアイコンを変更してリモートレポジトリにプッシュすると、自動でActionsが実行される
成功すればGitHub上で緑のチェックマークが表示され、実際にサイト上を確認するとロゴが変更されているのを確認

スクリーンショット 2022-08-21 23.57.34.png

参考にさせていただいたサイト

https://gadgelaun.com/?p=29970
https://zenn.dev/hirof1990/articles/2f8eeab56b8637
https://www.to-r.net/media/github-actions/

感想

一発でできたみたいに書いたけど、実際はCI/CDがどういうことかみたいなところから最初はわからなかったり、
Workflowファイル内でやってることが全然わからなかったり、
Actions内でのxserverへのssh接続で「Permission denied」エラーが出て失敗しまくったり、
GitHub上でActionsの再実行ができることを知らず毎回pushしてコミット履歴がぐちゃぐちゃになったり、
とにかく心が折れました。
ただ#0で書いたワークフローのうち、4.フロントを簡単にいじれるように環境を整える という一番大変なところをクリアできたのでよかったかな。
Qiitaの連載としては、当初の目的よりだいぶずれてしまっているので気が向いたら整理したいなと思います。

追記

デプロイ対象をpublic_htmlだけでなくドメイン名ディレクトリ全体にしちゃったのでその後書いた記事が全部ロールバックされちゃったえ〜ん;;;
ってことで、気が向いたら修正します・・・。

1
1
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
1
1