1. 作ったもの
GitHub の main ブランチに push すると、ソースコードをサーバ (VPS) にデプロイしてくれる機能
- 備忘録になります。すべてざっくりとしか書いていません
2. ファイル
◯ 構成
$ tree -a -L 3
.
├── docker-compose.yml
├── deploy.sh
└── .github
└── workflows
└── main.yml
$
2.1. main.yml
- 初期設定をする(
actions/checkout@v2
のこと、よくわからない) - SSH を設定する
- GitHub Actions が
deploy.sh
を本番環境で実行する
main.yml
name: Deploy to VPS
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
# 1. `name` はコメント
# 2. `uses` は関数
# 3. `with` は引数
steps:
- name: 1. GitHub Actions の初期設定、らしいです。なにをしているかはわかりません...
uses: actions/checkout@v4
- name: 2. SSH を設定します。
uses: shimataro/ssh-key-action@v2
with:
# 1. 秘密鍵
# ここにコピペ
# https://github.com/{your-github-account}/{your-project}/settings/secrets/actions
private-key: ${{ secrets.DEPLOY_KEY }}
# 2. 公開鍵
# ここからコピペ(VPS に WebARENA Indigo を利用されている方は)
# https://indigo.arena.ne.jp/sshkey
known-hosts: ssh-rsa AAAAB3N...
- name: 3. デプロイします。
run: |
pwd
ls -la
ssh -o StrictHostKeyChecking=no ubuntu@example.com 'bash -s' < deploy.sh
# scp コマンドでアップロードする方法もあるそうです。
# 今回は gh コマンドでダウンロード
# scp -r . ubuntu@example.com:/home/ubuntu/Projects/new-your-project
2.2. deploy.sh
- 古い docker-compose を停止する
- 古い docker-compose をバックアップする
- 新しい docker-compose を起動する
deploy.sh
#!/bin/bash
# 1. down
cd /home/ubuntu/Projects/your-project
docker-compose down
# 2. backup
cd /home/ubuntu/Projects
yyyymmddhhmmss=`date +%Y%m%d%H%M%S`
mv your-project your-project-${yyyymmddhhmmss}
# 3. up
gh repo clone your-github-account/your-project
cd /home/ubuntu/Projects/your-project
docker-compose up --build -d
3. 前提知識
これを知らないと上で何を書いているかわからない(正直この記事を書いている本人も何を書いているかわからない)。
3.1. GitHub Actions
GitHub Actions の理解はこの辺から...
30分程度で概要から基本的な文法まで教えてくれます。Udemy も含めて色々探したのですが、この動画しか理解できませんでした(この動画も理解はできていません...)。
GitHub Actions で使用する YAML の文法はサプーさんに教えてもらってください。
3.2. SSH
SSH の理解が足らずに苦慮しました。
-
秘密鍵
だけでなく -
公開鍵
も提示しないといけないというのは想定外でした -
-o StrictHostKeyChecking=no
とかもなんなのかよくわかっていません
4. そのほか
今回使用した VPS は WebARENA Indigo になります。
WebARENA を使っているのですが、この記事には助けていただきました。最初、ログインの資料が見当たらなくて焦りました笑
さくらの VPS へのデプロイの記事になります。