ピックアップ
Github Actionsのシンプルな挙動を試した件
本番環境へのデプロイに関して、
自分なりに試そうとする中で、
再確認の意味を込めて、
Github Actionsを設定し直して、
試した時の個人用のメモ。
調べながら、メモしている感じなので、
個人的な見返してどういう経緯だったとかを確認するようなので、
調べる中で気になった関連事項についても個人用に書いているので、
個別に必要な情報は、記事内にもある公式情報を参照してもらえると。
試した内容
試した内容としては、
- ローカル環境でファイル修正
- リポジトリに反映
- サーバー環境に反映
という流れ。
このシンプルな流れを試す。
前提
前提としては、
- SSHポートは実行時にオープン
- SSH鍵情報はパスフレーズなし
という感じ。
試す時だけ、ポートいったん開けて、
鍵情報もとりあえず、
パスフレーズなしをこのために作って試しました。
実施内容
今回は、
HTMLファイル用意して、
それが反映されるかを確認。
HTMLファイルの中身は任意で省略。
ファイル構成は
├── .github
│ └── workflows
│ └── ci.yml
├── README.md
└── index.html
この感じ。
この中のworkflowファイルを準備。
name: Deploy to Production
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
environment: Sample-github-actions
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Debug HOST secret
run: |
echo "===================="
echo "HOST secret value: ${{ secrets.HOST }}"
echo "===================="
- name: Deploy via SSH
uses: appleboy/ssh-action@v1.0.0
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USER }}
key: ${{ secrets.PRIVATE_KEY }}
script: |
cd /var/www/html/sample
pwd
ls -l
git pull origin main
この中の
environment: Sample-github-actions
ここに
Githubの管理ページで設定した、
SecretsのEnvironmentを設定。
これがないと、
うまくその中の変数が取得できなかった。
その変数を
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USER }}
key: ${{ secrets.PRIVATE_KEY }}
のように使っている。
これ、
SSHでの接続をしているので、
Githubの管理ページの方から、
- 「Settings」- 「Secrets and variables」
にそれぞれを設定。
Nameが、HOSTやUSERのような変数名。
ここで作成する「Environments」が、
environment: Sample-github-actions
となります。
基本的にこの設定と、
先ほどのコードで、
SSH設定が間違っていなければ、
問題なく、
Github Actionsで
サーバーにも反映できました。
おすすめ書籍
コメント一覧
コメントはまだありません。
コメントを残す