Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Testについて #161

Merged
merged 16 commits into from
Mar 26, 2024
86 changes: 42 additions & 44 deletions .github/workflows/pytest.yml
Original file line number Diff line number Diff line change
@@ -1,60 +1,58 @@
# This is a basic workflow to help you get started with Actions

#name: pytest
name: pytest

#permissions: write-all
permissions: write-all

# Controls when the workflow will run
#on:
# Triggers the workflow on push or pull request events but only for the "develop" branch
# push:
# branches: ["develop", "main"]
# pull_request:
# branches: ["develop", "main"]
on:
# Triggers the workflow on push or pull request events but only for the "develop" branch
push:
branches: ["develop", "main"]
pull_request:
branches: ["develop", "main"]

# Allows you to run this workflow manually from the Actions tab
# workflow_dispatch:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
#jobs:
# This workflow contains a single job called "pytest"
# pytest:
# The type of runner that the job will run on
# runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
# steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
# - uses: actions/checkout@v3

# - name: Test with pytest on Docker
# run: |
# touch ./app/.env
# echo DB_HOST=db >> ./app/.env
# echo MYSQL_USER=docker_dev >> ./app/.env
# echo MYSQL_PASSWORD=cRH1eL4GbNZkFXlk >> ./app/.env
# echo BIND-ADDRESS=0.0.0.0 >> ./app/.env
# echo MYSQL_RANDOM_ROOT_PASSWORD=yes >> ./app/.env
# echo MYSQL_DATABASE=quaint-app >> ./app/.env
# docker-compose up -d
# docker-compose exec -T app bash
# ./wait-for-it.sh

# - name: Create Coverage Comment
# id: coverageComment
# uses: MishaKav/pytest-coverage-comment@main
# with:
# pytest-coverage-path: ./pytest-coverage.txt
# junitxml-path: ./app/test/pytest.xml

jobs:
# This workflow contains a single job called "pytest"
pytest:
# The type of runner that the job will run on
runs-on: ubuntu-latest

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3

- name: Test with pytest on Docker
run: |
touch ./app/.env
echo DB_HOST=db >> ./app/.env
echo MYSQL_USER=docker_dev >> ./app/.env
echo MYSQL_PASSWORD=cRH1eL4GbNZkFXlk >> ./app/.env
echo BIND-ADDRESS=0.0.0.0 >> ./app/.env
echo MYSQL_RANDOM_ROOT_PASSWORD=yes >> ./app/.env
echo MYSQL_DATABASE=quaint-app >> ./app/.env
docker-compose up -d
sleep 60s
docker-compose exec -T app bash /workspace/wait-for-it.sh db:3306 -t 60 -- pytest ./workspace/app/test --cov --junitxml=/app/app/test/pytest.xml --cov-report=term-missing:skip-covered > ./pytest-coverage.txt
- name: Create Coverage Comment
id: coverageComment
uses: MishaKav/pytest-coverage-comment@main
with:
pytest-coverage-path: ./pytest-coverage.txt
junitxml-path: ./app/test/pytest.xml
# - name: Create Coverage Badge
# uses: schneegans/[email protected]
# with:
# auth: ${{ secrets.BADGE_GIST }} # 名前は適宜変更:手順5で決めたトークン名
# gistID: 81370c9284b6c64224021c2c6520c2e3 #先ほど控えたGist ID
# 以降はコピペ可
# cerverageCommentはPytest Coverage CommentのID
# 書き換えた場合は変更が必要
# # 以降はコピペ可
# # cerverageCommentはPytest Coverage CommentのID
# # 書き換えた場合は変更が必要
# filename: pytest-coverage-comment.json
# label: Coverage
# message: ${{ steps.coverageComment.outputs.coverage }}
Expand Down
5 changes: 5 additions & 0 deletions app/config.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
import datetime
import os
from dotenv import load_dotenv

from pydantic import BaseSettings

load_dotenv()

class Parameters(BaseSettings):
person_per_user:int=3 # 1つのユーザーで同時入場できる人数
Expand Down Expand Up @@ -66,3 +68,6 @@ class Config:

params=Parameters()
settings= Settings()

print("config")
print(settings.mysql_user)
3 changes: 2 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ services:
- .:/workspace:cached
ports:
- "8000:8000"
command: /bin/bash /workspace/docker_startup.sh
command: >
/bin/sh -c 'chmod +x /workspace/docker_startup.sh && /workspace/docker_startup.sh'

redis:
image: "redis:latest"
Expand Down
1 change: 1 addition & 0 deletions docker_startup.sh
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
cd workspace
python3 -m pip install --upgrade pip
pip install -r ./requirements.txt
wait
chmod +x ./wait-for-it.sh
bash ./wait-for-it.sh db:3306 -t 60 -- alembic upgrade head
uvicorn app.main:app --host 0.0.0.0 --reload
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ hashids==1.3.1
jose==1.0.0
passlib==1.7.4
pydantic==1.10.6
pytest==7.1.2
pytest
python_jose==3.3.0
requests
SQLAlchemy==1.4.37
Expand Down
Loading