name: CI Build on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-latest services: postgres: image: postgres env: POSTGRES_PASSWORD: postgres ports: - 5432:5432 options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 mysql: image: mysql:5.7 env: MYSQL_ALLOW_EMPTY_PASSWORD: yes ports: - 3306:3306 options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 strategy: matrix: python-version: ['2.7', '3.5', '3.6', '3.7', '3.8', '3.9'] name: Build with Python ${{ matrix.python-version }} steps: - name: Checkout code uses: actions/checkout@v2 # Fetch all tags and branches because tests rely on it with: fetch-depth: 0 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: python -m pip install tox tox-gh-actions - name: Test with tox ${{ matrix.python-version }} run: tox lint: name: Linting runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Set up Python 3.6 uses: actions/setup-python@v2 with: python-version: 3.6 - name: Install dependencies run: python -m pip install tox - name: Lint with tox run: tox env: TOXENV: lint