GithubActionsをとりあえずみてみる
GithubでActionsから、適したの選択したら、テンプレート的なのが出てきた。
# このアクションファイルの識別用タイトル
name: Django CI
# いつ実行するか
on:
push:
branches: [ "master" ]
pull_request:
branches: [ "master" ]
jobs:
build:
# 設定関連
runs-on: ubuntu-latest
strategy:
max-parallel: 4
matrix:
python-version: [3.7, 3.8, 3.9]
# 実行するよ↓
steps:
# JOB1よくわからん。いい感じにしてくれそう
- uses: actions/checkout@v3
# JOB2よくわからん。いい感じにしてくれそう
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
# JOB3 パッケージインストールはこんな感じ
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
# JOB4 何かしら実行しちゃうぞ
- name: Run Tests
run: |
python manage.py test
最初に作られたのがこんな感じでした、
Githubのサーバー内で動くだけだよな??よくわかっていないが、とりあえず
自動でpullしたい、、、
https://docs.github.com/ja/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_iduses
https://docs.github.com/ja/actions/learn-github-actions/understanding-github-actions
pushしたらActionsの実行結果を確認できる!
pushしたら自動でpullされてサーバーを再起動するようにしてみる
https://github.com/appleboy/ssh-action
appleboy/ssh-action@v0.1.7
を使うと、ssh接続できてコマンドも使えるみたいなのでやってみた!
name: Django CI
on:
push:
branches: ["master"]
pull_request:
branches: ["master"]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Deploy
uses: appleboy/ssh-action@v0.1.7
with:
host: ${{ secrets.HOST }}
username: ${{ secrets.USERNAME }}
key: ${{ secrets.KEY }}
script: |
cd ${{ vars.ROOT_DIR }}
git pull origin master
sudo service apache2 restart
${{ secrets.HOST }}
こんなフォーマット形式があるが、
GitのSettingsからsecrets
とvariables
を保存して、読み出すことができる。