注意点
DBパスワ : Settings →
Secrets and variables
→ Actionsに 書く
yamlファイルをこう変えないと、動かない
app.py や main.py のパス
postgresql の環境変数
Jest のテストフォルダ名
PostgreSQL の初期化スクリプト適用(schema.sql の読み込みなど)
フロントとバックを同時に立ち上げるか立ち上げないか
最低限yamlファイル
1: Pythonのみ
name: CI - Step1 Python only
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test-python:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Run Python tests
run: pytest
2: Python + Jest
name: CI - Step2 Python & Jest
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
# Python
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- run: pytest
# Node.js for Jest
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- run: |
npm ci
npm test
3: Python + Jest + PostgreSQL
name: CI - Step3 Full stack
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:15
env:
POSTGRES_USER: testuser
POSTGRES_PASSWORD: testpass
POSTGRES_DB: testdb
ports: ['5432:5432']
options: >-
--health-cmd="pg_isready -U testuser"
--health-interval=10s
--health-timeout=5s
--health-retries=5
steps:
- name: Checkout code
uses: actions/checkout@v4
# Python
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- run: pytest
# Node.js for Jest
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- run: |
npm ci
npm test