name: CI on: [pull_request, push] jobs: #################### Unittests #################### unittest: runs-on: ubuntu-latest strategy: matrix: python-version: [3.7,3.8,3.9] steps: - name: Install system packages run: sudo apt update && sudo apt-get install libcurl4-openssl-dev libssl-dev - name: Check out code from GitHub uses: actions/checkout@v2.3.5 - name: Set up Python ${{ matrix.python-version }} id: python uses: actions/setup-python@main with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: pip install --upgrade pip setuptools wheel tox tox-docker - name: Run unittest run: tox -v -e ${{ matrix.python-version }}-linux-unit -- -v #################### Integration tests #################### integration: needs: [unittest] runs-on: ubuntu-latest continue-on-error: ${{ matrix.experimental }} strategy: fail-fast: false matrix: python-version: [3.7,3.8,3.9] experimental: [false] include: - python-version: pypy3 experimental: true steps: - name: Install system packages run: sudo apt update && sudo apt-get install libcurl4-openssl-dev libssl-dev - name: Check out code from GitHub uses: actions/checkout@v2.3.5 - name: Set up Python ${{ matrix.python-version }} id: python uses: actions/setup-python@main with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: pip install --upgrade pip setuptools wheel tox tox-docker - name: Run AMQP integration tests run: tox -v -e ${{ matrix.python-version }}-linux-integration-py-amqp -- -v - name: Run redis integration tests run: tox -v -e ${{ matrix.python-version }}-linux-integration-py-redis -- -v #################### Linters and checkers #################### lint: needs: [unittest, integration] runs-on: ubuntu-latest strategy: matrix: python-version: [3.9] steps: - name: Install system packages run: sudo apt update && sudo apt-get install libcurl4-openssl-dev libssl-dev - name: Check out code from GitHub uses: actions/checkout@v2.3.5 - name: Set up Python ${{ matrix.python-version }} id: python uses: actions/setup-python@main with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: pip install --upgrade pip setuptools wheel tox tox-docker - name: Run flake8 run: tox -v -e flake8 -- -v - name: Run pydocstyle run: tox -v -e pydocstyle -- -v - name: Run apicheck run: tox -v -e apicheck -- -v