From 08e3508795ea44e6c7490bb3a9f29d32e01c95c6 Mon Sep 17 00:00:00 2001 From: Alex Gaynor Date: Tue, 17 Nov 2020 19:39:50 -0500 Subject: Migrate CI to GHA --- .github/workflows/ci.yml | 62 ++++++++++++++++++++++++ .travis.yml | 116 --------------------------------------------- .travis/upload_coverage.sh | 11 ----- 3 files changed, 62 insertions(+), 127 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .travis.yml delete mode 100755 .travis/upload_coverage.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..e7064f3 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,62 @@ +name: CI +on: + pull_request: {} + push: {} + +jobs: + linux: + runs-on: ubuntu-latest + strategy: + matrix: + PYTHON: + # Base builds + - {VERSION: "2.7", TOXENV: "py27"} + - {VERSION: "3.5", TOXENV: "py35"} + - {VERSION: "3.6", TOXENV: "py36"} + - {VERSION: "3.7", TOXENV: "py37"} + - {VERSION: "3.8", TOXENV: "py38"} + - {VERSION: "3.9", TOXENV: "py39"} + - {VERSION: "pypy2", TOXENV: "pypy"} + - {VERSION: "pypy3", TOXENV: "pypy3"} + # -cryptographyMaster + - {VERSION: "2.7", TOXENV: "py27-cryptographyMaster"} + - {VERSION: "3.6", TOXENV: "py36-cryptographyMaster"} + - {VERSION: "3.7", TOXENV: "py37-cryptographyMaster"} + - {VERSION: "3.8", TOXENV: "py38-cryptographyMaster"} + - {VERSION: "3.9", TOXENV: "py39-cryptographyMaster"} + - {VERSION: "pypy2", TOXENV: "pypy-cryptographyMaster"} + - {VERSION: "pypy3", TOXENV: "pypy3-cryptographyMaster"} + # -cryptographyMinimum + - {VERSION: "2.7", TOXENV: "py27-cryptographyMinimum"} + - {VERSION: "3.5", TOXENV: "py35-cryptographyMinimum"} + - {VERSION: "3.6", TOXENV: "py36-cryptographyMinimum"} + - {VERSION: "3.7", TOXENV: "py37-cryptographyMinimum"} + - {VERSION: "3.8", TOXENV: "py38-cryptographyMinimum"} + - {VERSION: "3.9", TOXENV: "py39-cryptographyMinimum"} + - {VERSION: "pypy2", TOXENV: "pypy-cryptographyMinimum"} + - {VERSION: "pypy3", TOXENV: "pypy3-cryptographyMinimum"} + # Random order + - {VERSION: "2.7", TOXENV: "py27-randomorder"} + - {VERSION: "3.9", TOXENV: "py39-randomorder"} + # Downstreams + - {VERSION: "3.7", TOXENV: "py37-twistedMaster"} + # Meta + - {VERSION: "2.7", TOXENV: "check-manifest"} + - {VERSION: "2.7", TOXENV: "pypi-readme"} + - {VERSION: "3.9", TOXENV: "flake8"} + - {VERSION: "2.7", TOXENV: "docs"} + name: "${{ matrix.PYTHON.TOXENV }}" + steps: + - uses: actions/checkout@v2 + - name: Setup python + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.PYTHON.VERSION }} + - run: python -m pip install tox coverage + - run: tox -v + env: + TOXENV: ${{ matrix.PYTHON.TOXENV }} + - name: Upload coverage + run: | + curl -o codecov.sh -f https://codecov.io/bash || curl -o codecov.sh -f https://codecov.io/bash || curl -o codecov.sh -f https://codecov.io/bash + bash codecov.sh -n "tox -e ${{ matrix.PYTHON.TOXENV }}" diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index a70fbdd..0000000 --- a/.travis.yml +++ /dev/null @@ -1,116 +0,0 @@ -os: linux -dist: focal -language: python - -cache: - directories: - - $HOME/.cache/pip - -env: - global: - - LC_ALL=en_US.UTF-8 - -jobs: - include: - - language: generic - os: osx - osx_image: xcode11.6 - env: TOXENV=py27 - - python: "3.5" - env: TOXENV=py35 - - python: "3.6" - env: TOXENV=py36 - - python: "3.7" - env: TOXENV=py37 - - python: "3.8" - env: TOXENV=py38 - - python: "pypy2.7-7.3.1" - env: TOXENV=pypy - - python: "pypy3.6-7.3.1" - env: TOXENV=pypy3 - - # Also run the tests against cryptography master. - - python: "2.7" - env: TOXENV=py27-cryptographyMaster - - python: "3.6" - env: TOXENV=py36-cryptographyMaster - - python: "3.7" - env: TOXENV=py37-cryptographyMaster - - python: "3.8" - env: TOXENV=py38-cryptographyMaster - - python: "pypy2.7-7.3.1" - env: TOXENV=pypy-cryptographyMaster - - python: "pypy3.6-7.3.1" - env: TOXENV=pypy3-cryptographyMaster - - # And current minimum cryptography version. - - python: "2.7" - env: TOXENV=py27-cryptographyMinimum - - python: "3.5" - env: TOXENV=py35-cryptographyMinimum - - python: "3.6" - env: TOXENV=py36-cryptographyMinimum - - python: "3.7" - env: TOXENV=py37-cryptographyMinimum - - python: "3.8" - env: TOXENV=py38-cryptographyMinimum - - python: "pypy2.7-7.3.1" - env: TOXENV=pypy-cryptographyMinimum - - python: "pypy3.6-7.3.1" - env: TOXENV=pypy3-cryptographyMinimum - - # Run tests in random order - - python: "2.7" - env: TOXENV=py27-randomorder - - python: "3.7" - env: TOXENV=py37-randomorder - - # Make sure we don't break Twisted - - python: "3.7" - env: TOXENV=py37-twistedMaster - - - # Meta - - python: "2.7" - env: TOXENV=check-manifest - - - python: "2.7" - env: TOXENV=pypi-readme - - - python: "3.8" - env: TOXENV=flake8 - - - python: "2.7" - env: TOXENV=docs - - # Let the cryptography master builds fail because they might be caused by - # cryptography changes that are beyond our control. - allow_failures: - - env: TOXENV=py27-cryptographyMaster - - env: TOXENV=py36-cryptographyMaster - - env: TOXENV=py37-cryptographyMaster - - env: TOXENV=py38-cryptographyMaster - - env: TOXENV=pypy-cryptographyMaster - - env: TOXENV=pypy3-cryptographyMaster - - -install: - - | - if [[ "$(uname -s)" == 'Darwin' ]]; then - curl -O https://bootstrap.pypa.io/get-pip.py - python get-pip.py --user - python -m pip install --user virtualenv - else - pip install virtualenv - fi - python -m virtualenv ~/.venv - ~/.venv/bin/pip install tox coverage - -script: - - ~/.venv/bin/tox -v - -after_script: - - ./.travis/upload_coverage.sh - -notifications: - email: false diff --git a/.travis/upload_coverage.sh b/.travis/upload_coverage.sh deleted file mode 100755 index 02ea5f4..0000000 --- a/.travis/upload_coverage.sh +++ /dev/null @@ -1,11 +0,0 @@ -#!/bin/bash - -set -e -set -x - -NO_COVERAGE_TOXENVS=(pypy docs check-manifest pypi-readme flake8) -if ! [[ "${NO_COVERAGE_TOXENVS[*]}" =~ "${TOXENV}" ]]; then - source ~/.venv/bin/activate - coverage combine - bash <(curl -s https://codecov.io/bash) -e TRAVIS_OS_NAME,TOXENV,OPENSSL -fi -- cgit v1.2.1