From 0aa4cc55fdd90b4f4e3480fb3ca089be572053c5 Mon Sep 17 00:00:00 2001 From: Nicholas Bollweg Date: Sun, 14 Mar 2021 08:16:47 -0400 Subject: [PATCH] Add github actions (#379) * add github actions * install pip, setuptools with --user --- .github/workflows/ci.yml | 52 +++++++++++++++++++++++++++++++++++ .github/workflows/website.yml | 25 +++++++++++++++++ dev_requirements.txt | 2 +- doc/stories.rst | 8 +++--- tests/test_action.py | 2 +- tests/test_dependency.py | 1 + 6 files changed, 84 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/website.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..4978b629 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,52 @@ +name: CI + +on: + push: + branches: [master, test] + pull_request: + branches: [master, test] + +jobs: + test: + runs-on: ${{ matrix.os }}-latest + strategy: + fail-fast: false + matrix: + os: [ubuntu, windows, macos] + python-version: ['3.5', '3.6', '3.7', '3.8', '3.9', 'pypy3'] + include: + # https://github.com/pydoit/doit/issues/372 + - os: macos + pytest-args: -k 'not(cmd_auto or TestFileWatcher)' + - os: macos + python-version: pypy3 + pytest-args: -k 'not(cmd_auto or TestFileWatcher or remove_all or ForgetAll)' + exclude: + - os: windows + python-version: pypy3 + steps: + - if: ${{ matrix.os == 'ubuntu' }} + run: sudo apt-get install strace + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - run: pip install --user -U pip wheel setuptools + - id: pip-cache + run: echo "::set-output name=dir::$(pip cache dir)" + - uses: actions/cache@v2 + with: + path: ${{ steps.pip-cache.outputs.dir }} + key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('setup.py', 'dev_requirements.txt') }} + restore-keys: | + ${{ runner.os }}-pip-${{ matrix.python-version }}- + ${{ runner.os }}-pip- + - run: pip install . -r dev_requirements.txt python-coveralls + - run: pip freeze + - run: pip check + - run: doit pyflakes + - run: py.test -vv ${{ matrix.pytest-args }} + - if: ${{ matrix.os == 'ubuntu' && matrix.python-version == '3.8' }} + run: | + doit coverage + coveralls || echo "TODO: remove when run on a repo that is set up" diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml new file mode 100644 index 00000000..0bd3a47b --- /dev/null +++ b/.github/workflows/website.yml @@ -0,0 +1,25 @@ +name: Website + +on: + push: + branches: [master, test] + pull_request: + branches: [master, test] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - run: sudo apt-get install hunspell hunspell-en-us + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: "3.8" + - run: pip install -U pip wheel setuptools + - run: pip install . -r doc_requirements.txt -r dev_requirements.txt + - run: pip freeze + - run: doit -v2 website + - uses: actions/upload-artifact@v2 + with: + name: Website + path: ./doc/_build diff --git a/dev_requirements.txt b/dev_requirements.txt index f16ba864..ba479a00 100644 --- a/dev_requirements.txt +++ b/dev_requirements.txt @@ -3,5 +3,5 @@ pyflakes pytest>=5.4.1 -coverage>=4.0 +coverage>=4.0,<5 doit-py>=0.4.0 diff --git a/doc/stories.rst b/doc/stories.rst index 95eb347d..a9857c47 100644 --- a/doc/stories.rst +++ b/doc/stories.rst @@ -89,7 +89,7 @@ our papers, mentioning it in our funding requests, etc). Thanks for developing `doit`, it's just wonderful for computational biology (and for many other tasks, of course, but this is our research field:)! -`Cheminformatics data processing @ Atomwise `_ +`Cheminformatics data processing @ Atomwise `_ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ by `Jon Sorenson `_ (2018-12-14) @@ -97,7 +97,7 @@ by `Jon Sorenson `_ (2018-12-14) I came to `doit` from the loose requirement that I wanted a task-dependency/DAG type of workflow solution for the various pipelines that our team is constructing. I come from computational biology originally, and the similarity of data processing pipelines -to build systems has long been appreciated. More than a decade ago +to build systems has long been appreciated. More than a decade ago many of us were writing bioinformatics pipelines in `make` because it gave us so many features "for free." @@ -112,7 +112,7 @@ from an intermediate stage. I knew that build-system based frameworks would do exactly what I wanted and not hand me too much cruft, and on that note I found `doit`. It's worked perfectly -for my needs: +for my needs: - The order of tasks is derived from dependencies @@ -184,7 +184,7 @@ Each sound should be loaded from PCM, converted into MP3 or OGG and linked with `MetalK8s @ Scality `_ -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ by `Sylvain Laperche `_ (2019-05-06) diff --git a/tests/test_action.py b/tests/test_action.py index 1b9f18b5..fdbfc191 100644 --- a/tests/test_action.py +++ b/tests/test_action.py @@ -25,7 +25,7 @@ @pytest.fixture def tmpfile(request): - temp = tempfile.TemporaryFile('w+') + temp = tempfile.TemporaryFile('w+', encoding="utf-8") request.addfinalizer(temp.close) return temp diff --git a/tests/test_dependency.py b/tests/test_dependency.py index f9fe22de..17927ce7 100644 --- a/tests/test_dependency.py +++ b/tests/test_dependency.py @@ -17,6 +17,7 @@ PROGRAM = "%s %s/sample_process.py" % (executable, TEST_PATH) + def test_unicode_md5(): data = "我" # no exception is raised