feat: send alert image with telegram message, if requested #237
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: tests | |
on: | |
push: | |
branches: main | |
pull_request: | |
branches: main | |
jobs: | |
pytest: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: "3.9" | |
- uses: abatilo/actions-poetry@v2 | |
with: | |
poetry-version: "1.6.1" | |
- name: Resolve dependencies | |
run: poetry export -f requirements.txt --without-hashes --with dev --output src/app/requirements.txt | |
- name: Run the backend & the tests | |
env: | |
TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} | |
TELEGRAM_TEST_CHAT_ID: ${{ secrets.TELEGRAM_TEST_CHAT_ID }} | |
run: | | |
docker compose -f docker-compose.test.yml up -d --build --wait | |
docker compose -f docker-compose.test.yml exec localstack awslocal s3 mb s3://sample-bucket | |
docker compose -f docker-compose.test.yml exec localstack awslocal s3api put-object --bucket sample-bucket --key media-folder | |
docker compose -f docker-compose.test.yml exec -T backend pytest --cov=app --cov-report xml tests/ | |
docker compose -f docker-compose.test.yml cp backend:/app/coverage.xml ./coverage-src.xml | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
file: ./coverage-src.xml | |
flags: unittests | |
fail_ci_if_error: true | |
pytest-client: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
python: [3.9] | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
architecture: x64 | |
- uses: abatilo/actions-poetry@v2 | |
with: | |
poetry-version: "1.6.1" | |
- name: Resolve dependencies | |
run: poetry export -f requirements.txt --without-hashes --output src/app/requirements.txt | |
- name: Run backend | |
env: | |
BUCKET_NAME: ${{ secrets.BUCKET_NAME }} | |
BUCKET_MEDIA_FOLDER: ${{ secrets.BUCKET_MEDIA_FOLDER }} | |
S3_ENDPOINT_URL: ${{ secrets.S3_ENDPOINT_URL }} | |
S3_ACCESS_KEY: ${{ secrets.S3_ACCESS_KEY }} | |
S3_SECRET_KEY: ${{ secrets.S3_SECRET_KEY }} | |
S3_REGION: ${{ secrets.S3_REGION }} | |
SUPERUSER_LOGIN: dummy_login | |
SUPERUSER_PWD: dummy&P@ssw0rd! | |
POSTGRES_USER: dummy_pg_user | |
POSTGRES_PASSWORD: dummy_pg_pwd | |
POSTGRES_DB: dummy_pg_db | |
run: | | |
docker volume prune -f | |
docker compose up -d --build --wait | |
docker ps | |
- name: Cache python modules | |
uses: actions/cache@v2 | |
with: | |
path: ~/.cache/pip | |
key: ${{ runner.os }}-python-${{ matrix.python }}-${{ hashFiles('client/pyproject.toml') }} | |
- name: Run client tests | |
env: | |
SUPERUSER_LOGIN: dummy_login | |
SUPERUSER_PWD: dummy&P@ssw0rd! | |
run: | | |
python -m pip install --upgrade uv | |
uv pip install --system -e "client/.[test]" | |
sleep 15 | |
cd client && pytest --cov=pyroclient --cov-report xml tests/ -n auto | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
file: ./client/coverage.xml | |
flags: client | |
fail_ci_if_error: true | |
headers: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
steps: | |
- uses: actions/checkout@v2 | |
with: | |
persist-credentials: false | |
- name: Check the headers | |
uses: frgfm/validate-python-headers@main | |
with: | |
license: 'Apache-2.0' | |
owner: 'Pyronear' | |
starting-year: 2020 | |
folders: 'src,client,.github' | |
ignore-files: 'version.py,__init__.py' | |
ignore-folders: 'client/tests/,src/tests/,src/alembic/versions/' |