name: Selenium on: push: branches: [master, testing] pull_request: branches: [master, testing] jobs: build: runs-on: ubuntu-latest # Service containers to run with `container-job` services: # Label used to access the service container postgres: # Docker Hub image image: postgres:11 ports: - 5432:5432 # Set health checks to wait until postgres has started options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 env: POSTGRES_DB: dh_test POSTGRES_USER: dhub POSTGRES_PASSWORD: ereuse strategy: max-parallel: 4 matrix: python-version: [3.9] steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} cache: 'pip' - name: Install dependencies run: | sudo apt-get update -qy sudo apt-get -y install postgresql-client --no-install-recommends python -m pip install --upgrade pip pip install -r requirements-dev.txt pip install -r requirements.txt pip install -e . mkdir bin wget https://github.com/mozilla/geckodriver/releases/download/v0.30.0/geckodriver-v0.30.0-linux64.tar.gz tar xf geckodriver-v0.30.0-linux64.tar.gz -C bin/ - name: Prepare database env: POSTGRES_DB: dh_test POSTGRES_USER: dhub POSTGRES_PASSWORD: ereuse run: | export PGPASSWORD=$POSTGRES_PASSWORD psql -h "localhost" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "CREATE EXTENSION pgcrypto SCHEMA public;" psql -h "localhost" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "CREATE EXTENSION ltree SCHEMA public;" psql -h "localhost" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "CREATE EXTENSION citext SCHEMA public;" psql -h "localhost" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "CREATE EXTENSION pg_trgm SCHEMA public;" - name: Selenium tests env: SECRET_KEY: 'f00046306835001b55c230092e3a7990485beda0bc3bf732088d1ba1b5b74110e22e3f9ec3a24890272554b37d4' DB_DATABASE: dh_test FLASK_APP: examples/app.py dhi: dbtest run: | alembic -x inventory=dbtest upgrade head dh dummy --yes flask run & pytest tests/test_selenium.py