Update pythonapp.yml #239
This file contains hidden or 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: Python application | |
| on: [push] | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v1 | |
| - name: Set up Python 3.9 | |
| uses: actions/setup-python@v1 | |
| with: | |
| python-version: 3.9 | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install numpy | |
| pip install -r requirements.txt | |
| - name: Install openslide | |
| run: | | |
| sudo apt-get install libopenslide0 libopenslide-dev | |
| - name: Lint with flake8 | |
| run: | | |
| pip install flake8 | |
| # stop the build if there are Python syntax errors or undefined names | |
| flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics | |
| # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide | |
| flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics | |
| - name: Set up EXACT for unit tests | |
| shell: 'script -q -e -c "bash {0}"' | |
| run: | | |
| git clone https://github.com/ChristianMarzahl/Exact.git | |
| cd Exact | |
| export DJANGO_SUPERUSER_USERNAME=testuser | |
| export DJANGO_SUPERUSER_PASSWORD=testpw | |
| cp env.dev env.prod | |
| cp env.dev.db env.prod.db | |
| cp exact/exact/settings.py.example exact/exact/settings.py | |
| docker compose -f docker-compose.prod.yml up -d --build | |
| docker compose -f docker-compose.prod.yml exec web python3 manage.py migrate --noinput | |
| docker compose -f docker-compose.prod.yml exec web python3 manage.py createsuperuser --noinput | |
| docker compose -f docker-compose.prod.yml exec web python3 manage.py collectstatic --no-input --clear | |
| - name: Wait for EXACT backend to be ready | |
| run: | | |
| for i in {1..60}; do | |
| if curl -s http://localhost:1337/api/v1/teams/; then | |
| echo "EXACT backend is up!" | |
| break | |
| fi | |
| echo "Waiting for EXACT backend..." | |
| sleep 5 | |
| done | |
| - name: Test with pytest | |
| run: | | |
| pip install pytest | |
| cd tests | |
| pytest |