Skip to content

Update Dockerfile #1938

Update Dockerfile

Update Dockerfile #1938

Workflow file for this run

# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: Testing
on: push
jobs:
lint:
name: Lint code
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
name: Install Python
with:
python-version: '3.8'
# Lint things before going any further
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --show-source --statistics
# exit-zero treats all errors as warnings.
flake8 . --count --exit-zero --max-complexity=10 --statistics
test:
name: Test on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
max-parallel: 2
fail-fast: false
matrix:
os: [ubuntu-latest]
# os: [ubuntu-latest, macos-latest]
python-version: [3.7, 3.8, 3.9]
steps:
# Checkout and env setup
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies (Linux)
if: ${{ runner.os == 'Linux' }}
run: |
sudo apt-get update
sudo bash scripts/ci_prepare_linux_for_build.sh
- name: Install dependencies (macOS)
if: ${{ runner.os == 'macOS' }}
run: |
bash scripts/ci_prepare_macos_for_build.sh
- name: Build project
run: |
bash run_developer_setup.sh
# Install and test
- name: Install project
run: |
pip install --upgrade pip
pip install -e .[tests,problematic]
mkdir -p /tmp/work
export PYTHONFAULTHANDLER=1
python -X faulthandler -m wbia --set-workdir /tmp/work --preload-exit
- name: gdb backtrace (if failed)
if: failure()
run: |
set -x
sudo apt-get install -y gdb
echo -e "r\nbt\nq" | gdb --args python -m wbia --set-workdir /tmp/work --preload-exit
- name: Test project
run: |
pytest --slow --web-tests
- name: Ensure web loads
run: |
timeout 30 python -m wbia.dev --dbdir /tmp/work/db --web || code=$?; if [[ $code -ne 124 && $code -ne 0 ]]; then exit $code; fi
test_postgres:
name: Test on ${{ matrix.os }} (PostGRES)
runs-on: ${{ matrix.os }}
strategy:
max-parallel: 2
fail-fast: false
matrix:
os: [ubuntu-latest]
python-version: [3.7, 3.8, 3.9]
services:
db:
image: postgres:10
env:
POSTGRES_PASSWORD: wbia
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
# Checkout and env setup
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies (Linux)
if: ${{ runner.os == 'Linux' }}
run: |
sudo apt-get update
sudo bash scripts/ci_prepare_linux_for_build.sh
- name: Install dependencies (macOS)
if: ${{ runner.os == 'macOS' }}
run: |
bash scripts/ci_prepare_macos_for_build.sh
- name: Build project
run: |
bash run_developer_setup.sh
# Install and test
- name: Install project
run: |
pip install --upgrade pip
pip install -e .[tests,problematic,postgres]
mkdir -p /tmp/work
python -m wbia --set-workdir /tmp/work --preload-exit
- name: Test project
run: |
pytest --slow --web-tests --with-postgres-uri='postgresql://postgres:wbia@localhost:5432/postgres'
- name: Ensure web loads
run: |
timeout 30 python -m wbia.dev --dbdir /tmp/work/db --web || code=$?; if [[ $code -ne 124 && $code -ne 0 ]]; then exit $code; fi