diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000..7bffe105 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,49 @@ +name: Tests + +on: [push, pull_request] + +env: + PYTHON_LATEST: 3.9 + +jobs: + test: + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + python-version: [2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10-dev] + fail-fast: false + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Cache dependencies + id: cache-deps + uses: actions/cache@v2 + with: + path: | + ${{ env.pythonLocation }}/bin/* + ${{ env.pythonLocation }}/lib/* + ${{ env.pythonLocation }}/scripts/* + key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('setup.py', 'requirements.txt') }} + - name: Install The Fuck with all dependencies + if: steps.cache-deps.outputs.cache-hit != 'true' + run: | + pip install -Ur requirements.txt coveralls + python setup.py develop + - name: Lint + if: matrix.os == 'ubuntu-latest' && matrix.python-version == env.PYTHON_LATEST + run: flake8 + - name: Run tests + if: matrix.os != 'ubuntu-latest' || matrix.python-version != env.PYTHON_LATEST + run: coverage run --source=thefuck,tests -m pytest -v --capture=sys tests + - name: Run tests (including functional) + if: matrix.os == 'ubuntu-latest' && matrix.python-version == env.PYTHON_LATEST + run: coverage run --source=thefuck,tests -m pytest -v --capture=sys tests --enable-functional + - name: Post coverage results + if: matrix.os == 'ubuntu-latest' && matrix.python-version == env.PYTHON_LATEST + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: coveralls --service=github diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index c8876a0c..00000000 --- a/.travis.yml +++ /dev/null @@ -1,51 +0,0 @@ -language: python -sudo: false -os: linux -dist: xenial -matrix: - include: - - python: "nightly" - - python: "3.8-dev" - - python: "3.8" - - python: "3.7-dev" - - python: "3.7" - - python: "3.6-dev" - - python: "3.6" - - python: "3.5" - - python: "2.7" - - os: osx - language: generic - allow_failures: - - python: nightly - - python: 3.8-dev - - python: 3.7-dev - - python: 3.6-dev -services: - - docker -addons: - apt: - packages: - - python-commandnotfound - - python3-commandnotfound -before_install: - - if [[ $TRAVIS_OS_NAME == "osx" ]]; then rm -rf /usr/local/include/c++; fi - - if [[ $TRAVIS_OS_NAME == "osx" ]]; then brew update; fi - - if [[ $TRAVIS_OS_NAME == "osx" ]]; then brew unlink python@2; fi - - if [[ $TRAVIS_OS_NAME == "osx" ]]; then brew upgrade python; fi - - if [[ $TRAVIS_OS_NAME == "osx" ]]; then pip3 install virtualenv; fi - - if [[ $TRAVIS_OS_NAME == "osx" ]]; then virtualenv venv -p python3; fi - - if [[ $TRAVIS_OS_NAME == "osx" ]]; then source venv/bin/activate; fi - - pip install -U pip - - pip install -U coveralls -install: - - pip install -Ur requirements.txt - - python setup.py develop - - rm -rf build -script: - - flake8 - - export COVERAGE_PYTHON_VERSION=python-${TRAVIS_PYTHON_VERSION:0:1} - - export RUN_TESTS="coverage run --source=thefuck,tests -m py.test -v --capture=sys tests" - - if [[ $TRAVIS_PYTHON_VERSION == 3.8 && $TRAVIS_OS_NAME != "osx" ]]; then $RUN_TESTS --enable-functional; fi - - if [[ $TRAVIS_PYTHON_VERSION != 3.8 || $TRAVIS_OS_NAME == "osx" ]]; then $RUN_TESTS; fi -after_success: - - if [[ $TRAVIS_PYTHON_VERSION == 3.8 && $TRAVIS_OS_NAME != "osx" ]]; then coveralls; fi diff --git a/README.md b/README.md index 8aa2294d..7a6e71f2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# The Fuck [![Version][version-badge]][version-link] [![Build Status][travis-badge]][travis-link] [![Windows Build Status][appveyor-badge]][appveyor-link] [![Coverage][coverage-badge]][coverage-link] [![MIT License][license-badge]](LICENSE.md) +# The Fuck [![Version][version-badge]][version-link] [![Build Status][workflow-badge]][workflow-link] [![Coverage][coverage-badge]][coverage-link] [![MIT License][license-badge]](LICENSE.md) *The Fuck* is a magnificent app, inspired by a [@liamosaur](https://twitter.com/liamosaur/) [tweet](https://twitter.com/liamosaur/status/506975850596536320), @@ -503,10 +503,8 @@ Project License can be found [here](LICENSE.md). [version-badge]: https://img.shields.io/pypi/v/thefuck.svg?label=version [version-link]: https://pypi.python.org/pypi/thefuck/ -[travis-badge]: https://travis-ci.org/nvbn/thefuck.svg?branch=master -[travis-link]: https://travis-ci.org/nvbn/thefuck -[appveyor-badge]: https://ci.appveyor.com/api/projects/status/1sskj4imj02um0gu/branch/master?svg=true -[appveyor-link]: https://ci.appveyor.com/project/nvbn/thefuck +[workflow-badge]: https://github.com/divykj/thefuck/workflows/Tests/badge.svg +[workflow-link]: https://github.com/divykj/thefuck/actions?query=workflow%3ATests [coverage-badge]: https://img.shields.io/coveralls/nvbn/thefuck.svg [coverage-link]: https://coveralls.io/github/nvbn/thefuck [license-badge]: https://img.shields.io/badge/license-MIT-007EC7.svg diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 0de834f2..00000000 --- a/appveyor.yml +++ /dev/null @@ -1,23 +0,0 @@ -build: false - -environment: - matrix: - - PYTHON: "C:/Python27" - - PYTHON: "C:/Python35" - - PYTHON: "C:/Python36" - - PYTHON: "C:/Python37" - -init: - - "ECHO %PYTHON%" - - ps: "ls C:/Python*" - -install: - - "curl -fsS -o C:/get-pip.py https://bootstrap.pypa.io/get-pip.py" - - "%PYTHON%/python.exe C:/get-pip.py" - - "%PYTHON%/Scripts/pip.exe install -U setuptools" - - "%PYTHON%/python.exe setup.py develop" - - "%PYTHON%/Scripts/pip.exe install -U -r requirements.txt" - -test_script: - - "%PYTHON%/python.exe -m flake8" - - "%PYTHON%/Scripts/py.test.exe -sv"