name: CI on: pull_request: {} push: branches: - main tags: - '*' jobs: macos: runs-on: macos-latest strategy: matrix: PYTHON: - {VERSION: "3.6", TOXENV: "py36"} - {VERSION: "3.10", TOXENV: "py310"} name: "Python ${{ matrix.PYTHON.VERSION }} on macOS" steps: - uses: actions/checkout@v2.4.0 - name: Setup python uses: actions/setup-python@v3 with: python-version: ${{ matrix.PYTHON.VERSION }} - run: pip install tox - run: tox env: TOXENV: ${{ matrix.PYTHON.TOXENV }} windows: runs-on: windows-latest strategy: matrix: WINDOWS: - {ARCH: 'x86', WINDOWS: 'win32', RUST_TRIPLE: 'i686-pc-windows-msvc'} - {ARCH: 'x64', WINDOWS: 'win64', RUST_TRIPLE: 'x86_64-pc-windows-msvc'} PYTHON: - {VERSION: "3.6", TOXENV: "py36"} - {VERSION: "3.10", TOXENV: "py310"} name: "Python ${{ matrix.PYTHON.VERSION }} on ${{ matrix.WINDOWS.WINDOWS }}" steps: - uses: actions/checkout@v2.4.0 - name: Setup python uses: actions/setup-python@v3 with: python-version: ${{ matrix.PYTHON.VERSION }} architecture: ${{ matrix.WINDOWS.ARCH }} - uses: actions-rs/toolchain@v1.0.7 with: profile: minimal toolchain: stable override: true default: true target: ${{ matrix.WINDOWS.RUST_TRIPLE }} - run: pip install tox - run: tox env: TOXENV: ${{ matrix.PYTHON.TOXENV }} linux: runs-on: ubuntu-latest strategy: matrix: PYTHON: - {VERSION: "3.9", TOXENV: "pep8,packaging"} - {VERSION: "3.9", TOXENV: "mypy"} - {VERSION: "3.6", TOXENV: "py36"} - {VERSION: "3.7", TOXENV: "py37"} - {VERSION: "3.8", TOXENV: "py38"} - {VERSION: "3.9", TOXENV: "py39"} - {VERSION: "3.10", TOXENV: "py310"} - {VERSION: "pypy-3.7", TOXENV: "pypy3"} - {VERSION: "pypy-3.8", TOXENV: "pypy3"} - {VERSION: "pypy-3.9", TOXENV: "pypy3"} # MSRV - {VERSION: "3.10", TOXENV: "py310", RUST_VERSION: "1.56.0"} - {VERSION: "3.10", TOXENV: "py310", RUST_VERSION: "beta"} - {VERSION: "3.10", TOXENV: "py310", RUST_VERSION: "nightly"} name: "${{ matrix.PYTHON.TOXENV }} on linux, Rust ${{ matrix.PYTHON.RUST_VERSION || 'stable' }}" steps: - uses: actions/checkout@v2.4.0 - name: Setup python uses: actions/setup-python@v3 with: python-version: ${{ matrix.PYTHON.VERSION }} - uses: actions-rs/toolchain@v1.0.7 with: profile: minimal toolchain: ${{ matrix.PYTHON.RUST_VERSION || 'stable' }} override: true default: true - run: pip install tox - run: tox env: TOXENV: ${{ matrix.PYTHON.TOXENV }} linux-distros: runs-on: ubuntu-latest container: ghcr.io/pyca/cryptography-runner-${{ matrix.IMAGE.IMAGE }} strategy: matrix: IMAGE: - {IMAGE: "alpine", TOXENV: "py39"} name: "${{ matrix.IMAGE.TOXENV }} on ${{ matrix.IMAGE.IMAGE }}" steps: - uses: actions/checkout@v3.0.1 with: persist-credentials: false - run: '/venv/bin/tox' env: TOXENV: ${{ matrix.IMAGE.TOXENV }} RUSTUP_HOME: /root/.rustup