Skip to content

fix github actions? #184

fix github actions?

fix github actions? #184

Workflow file for this run

name: PyTest
on:
pull_request:
types: [opened]
push:
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
matrix:
python-version: ["3.9", "3.10"]
steps:
- name: Check out repository code
uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python -m pip install --upgrade wheel
python -m pip install -r requirements.txt
python -m pip install -r requirements-ftp.txt
python -m pip install -r requirements-s3.txt
python -m pip install pytest pytest-asyncio pytest-cov
- uses: getong/mariadb-action@v1.1
with:
mariadb version: '10.6.4'
mysql database: 'yepcord_test'
mysql root password: ${{ secrets.DB_PASS }}
- name: Wait for MySQL
run: |
while ! mysqladmin ping --host=127.0.0.1 --password=${{ secrets.DB_PASS }} --silent; do
sleep 1
done
- name: Setup database
run: |
python -m alembic upgrade head
env:
DB_CONNECT_STRING: mysql+pymysql://root:${{ secrets.DB_PASS }}@127.0.0.1/yepcord_test?charset=utf8mb4
- name: Run test suite for core
run: |
pytest -x --cov-report=xml --cov-append --cov=src/yepcord --disable-warnings tests/test_core.py
env:
DB_CONNECT_STRING: mysql+pymysql://root:${{ secrets.DB_PASS }}@127.0.0.1/yepcord_test?charset=utf8mb4
KEY: ${{ secrets.KEY }}
- name: Run test suite for http
run: |
pytest -x --cov-report=xml --cov-append --cov=src/rest_api --cov=src/yepcord --disable-warnings tests/test_http.py
env:
DB_CONNECT_STRING: mysql+pymysql://root:${{ secrets.DB_PASS }}@127.0.0.1/yepcord_test?charset=utf8mb4
KEY: ${{ secrets.KEY }}
TENOR_KEY: ${{ secrets.TENOR_KEY }}
- name: Run test suite for cdn and file storage
run: |
pytest -x --cov-report=xml --cov-append --cov=src/cdn --cov=src/yepcord --cov-config=.coveragerc --disable-warnings tests/test_storage_cdn.py
env:
DB_CONNECT_STRING: mysql+pymysql://root:${{ secrets.DB_PASS }}@127.0.0.1/yepcord_test?charset=utf8mb4
KEY: ${{ secrets.KEY }}
STORAGE_TYPE: local
STORAGE_PATH: tests/files
- name: Run s3 server
run: |
python -m pip install fake-s3
mkdir -p tests/files/yepcord-test
python -m fake_s3 --host 0.0.0.0 --port 10001 --root tests/files &
- name: Run test suite for cdn and s3 storage
run: |
pytest -x --cov-report=xml --cov-append --cov=src/cdn --cov=src/yepcord --cov-config=.coveragerc --disable-warnings tests/test_storage_cdn.py
env:
DB_CONNECT_STRING: mysql+pymysql://root:${{ secrets.DB_PASS }}@127.0.0.1/yepcord_test?charset=utf8mb4
KEY: ${{ secrets.KEY }}
STORAGE_TYPE: s3
S3_ENDPOINT: http://127.0.0.1:10001
S3_KEYID: 1
S3_ACCESSKEY: 1
S3_BUCKET: yepcord-test
- name: Run ftp server
run: |
python -m pip install pyftpdlib
python -c "exec('''\nfrom pyftpdlib.authorizers import DummyAuthorizer\nfrom pyftpdlib.handlers import FTPHandler\nfrom pyftpdlib.servers import FTPServer\nauthorizer = DummyAuthorizer()\nauthorizer.add_user('root', '123456', 'tests/files/', perm='elradfmwMT')\nhandler = FTPHandler\nhandler.authorizer = authorizer\nserver = FTPServer(('127.0.0.1', 9021), handler)\nserver.serve_forever()\n''')" &
- name: Wait for Ftp server
run: |
while ! wget -O /dev/null -q ftp://root:123456@127.0.0.1:9021; do sleep 1; done
- name: Run test suite for cdn and ftp storage
run: |
pytest -x --cov-report=xml --cov-append --cov=src/cdn --cov=src/yepcord --cov-config=.coveragerc --disable-warnings tests/test_storage_cdn.py
env:
DB_CONNECT_STRING: mysql+pymysql://root:${{ secrets.DB_PASS }}@127.0.0.1/yepcord_test?charset=utf8mb4
KEY: ${{ secrets.KEY }}
STORAGE_TYPE: ftp
FTP_HOST: 127.0.0.1
FTP_PORT: 9021
FTP_USER: root
FTP_PASSWORD: 123456
- name: Print coverage report
run: |
coverage report
- name: Upload coverage reports to Codecov
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}