mirror of
https://github.com/evennia/evennia.git
synced 2026-03-17 05:16:31 +01:00
At this time the mysql database spun up by github actions is not possible to connect to once evennia starts. It's unclear why this is.
103 lines
3.4 KiB
YAML
103 lines
3.4 KiB
YAML
# This Evennia workflow will install Python dependencies, run tests with a variety of Python versions
|
|
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
|
|
|
|
name: Evennia test-suite and coveralls
|
|
|
|
on:
|
|
push:
|
|
branches: [ master, develop ]
|
|
pull_request:
|
|
branches: [ master, develop ]
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
python-version: [3.7, 3.8]
|
|
# TODO: mysql disabled, not able to connect to it so far
|
|
TESTING_DB: ['sqlite3', 'postgresql'] # , 'mysql']
|
|
fail-fast: False
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Set up PostgreSQL server
|
|
uses: harmon758/postgresql-action@v1
|
|
if: ${{ matrix.TESTING_DB == 'postgresql' }}
|
|
with:
|
|
postgresql version: '10.7'
|
|
postgresql db: 'evennia'
|
|
postgresql user: 'evennia'
|
|
postgresql password: 'password'
|
|
- name: Set up MySQL server
|
|
uses: mirromutth/mysql-action@v1.1
|
|
if: ${{ matrix.TESTING_DB == 'mysql'}}
|
|
with:
|
|
mysql version: '5.7'
|
|
character set server: 'utf8mb4'
|
|
collation server: 'utf8mb4_unicode_ci'
|
|
mysql database: 'evennia'
|
|
mysql user: 'evennia'
|
|
mysql password: 'password'
|
|
|
|
# wait for db to activage, get logs from their start
|
|
- name: Wait / sleep
|
|
uses: jakejarvis/wait-action@v0.1.0
|
|
if: ${{ matrix.TESTING_DB == 'postgresql' || matrix.TESTING_DB == 'mysql' }}
|
|
with:
|
|
time: '10s'
|
|
- name: Database container logs
|
|
uses: jwalton/gh-docker-logs@v1.0.0
|
|
- name: Check running containers
|
|
run: docker ps -a
|
|
|
|
- name: Set up Python ${{ matrix.python-version }}
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
- name: Install package dependencies
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
pip install wheel
|
|
pip install psycopg2-binary
|
|
pip install mysqlclient
|
|
pip install coveralls
|
|
pip install codacy-coverage
|
|
pip install -e .
|
|
|
|
- name: Install extra dependencies # Only develop branch right now
|
|
if: ${{ github.ref == 'refs/heads/develop' }}
|
|
run: pip install -r requirements_extra.txt
|
|
|
|
- name: Install and initialize evennia
|
|
run: |
|
|
evennia --init testing_mygame
|
|
cp .travis/${{ matrix.TESTING_DB }}_settings.py testing_mygame/server/conf/settings.py
|
|
cd testing_mygame
|
|
evennia migrate
|
|
evennia collectstatic --noinput
|
|
|
|
- name: Run test suite
|
|
run: |
|
|
cd testing_mygame
|
|
coverage run --source=../evennia --omit=*/migrations/*,*/urls.py,*/test*.py,*.sh,*.txt,*.md,*.pyc,*.service ../bin/unix/evennia test --settings=settings --keepdb evennia
|
|
coverage xml
|
|
|
|
# we only want to run coverall once, so we only do it for one of the matrix combinations
|
|
- name: Send data to Coveralls
|
|
if: ${{ matrix.TESTING_DB == 'sqlite3' && matrix.python-version == 3.7 }}
|
|
env:
|
|
COVERALLS_REPO_TOKEN: ${{ secrets.COVERALLS_REPO_TOKEN }}
|
|
run: |
|
|
cd testing_mygame
|
|
coveralls
|
|
- name: Send data to Codacy
|
|
if: ${{ matrix.TESTING_DB == 'sqlite3' && matrix.python-version == 3.7 }}
|
|
uses: codacy/codacy-coverage-reporter-action@master
|
|
with:
|
|
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
|
|
coverage-reports: ./testing_mygame/coverage.xml
|