はじめに
こんにちは、エンジニアのkeitaMaxです。
今回は、XserverにLaravel Inertia React をGitHubActionsを使用してデプロイしようと思います。
GitHubActionsを以下のように作成します。
name: deploy
on:
push:
tags:
- 'stg.v.*'
jobs:
deploy:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./src
steps:
- uses: actions/checkout@v2
- name: dokcer-compose up
run: |
docker compose up -d
- name: composer install
run: |
docker compose exec app composer install
- name: Copy .env
run: |
docker compose exec app php -r "file_exists('.env') || copy('.env.example', '.env');"
- name: Generate key
run: |
docker compose exec app php artisan key:generate
- name: npm run install
run: |
docker compose exec app npm install
- name: npm build
run: |
docker compose exec app npm run build
- name: FTP-Deploy-Action
uses: SamKirkland/FTP-Deploy-Action@v4.3.5
with:
server: ${{ secrets.PRD_FTP_SERVER }}
username: ${{ secrets.PRD_FTP_USERNAME }}
password: ${{ secrets.PRD_FTP_PASSWORD }}
local-dir: ./src/
server-dir: ./
こちらリリースタグをstg.v.1
のようにした時にデプロイできるようにしました。
下記の部分でやっております。
on:
push:
tags:
- 'stg.v.*'
参考にした記事は記事の一番下にリンクを置いておきます。
GitHubの設定
GitHubに以下の3つを登録しなくてはいけません。
FTP_SERVER: ${{ secrets.FTP_SERVER }}
FTP_USERNAME: ${{ secrets.FTP_USERNAME }}
FTP_PASSWORD: ${{ secrets.FTP_PASSWORD }}
こちらはxserverのサーバパネルから確認することができます。
サーバーパネルのサブFTPアカウント設定
からサブFTPアカウント設定
をします。
そこで設定したFTPユーザーIDがFTP_USERNAME
になります。
また、同じ画面で設定したパスワードがFTP_PASSWORD
になります。
FTP_SERVER
はサーバのホスト名となり、sv***.xserver.jp
のようなものです。
サーバーパネルのURLについています。
参考URL:https://www.xserver.ne.jp/manual/man_ftp_setting.php
これをGitHubに設定します。
リポジトリ → Settings → secrets and variables → actions
から設定できます。
設定できると以下のようになります。
動かしてみる
実際にタグを打って動かしてみます。
GuiHubのリポジトリのコードの右下にあるReleases
をクリックします。
Draft a new release
をクリックします。
Choose tag
からstg.v.2
みたいな感じでタグの名前を入力し、+ボタンを押して作成します。
最後にPublishリリースをおします。
すると、以下のようにGitHubActionが動き、デプロイできます。
おわりに
この記事での質問や、間違っている、もっといい方法があるといったご意見などありましたらご指摘していただけると幸いです。
最後まで読んでいただきありがとうございました!
次の記事
参考