Skip to content

Commit

Permalink
Move to GitHub Actions (#251)
Browse files Browse the repository at this point in the history
  • Loading branch information
hynek committed Mar 8, 2020
1 parent a5768fa commit 8c0abe1
Show file tree
Hide file tree
Showing 8 changed files with 116 additions and 156 deletions.
2 changes: 1 addition & 1 deletion .github/CONTRIBUTING.rst
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@ Thank you for considering contributing to ``structlog``!
.. _pyenv: https://github.com/pyenv/pyenv
.. _reStructuredText: https://www.sphinx-doc.org/en/master/usage/restructuredtext/basics.html
.. _semantic newlines: https://rhodesmill.org/brandon/2012/one-sentence-per-line/
.. _CI: https://dev.azure.com/the-hynek/structlog/_build?definitionId=1
.. _CI: https://github.com/hynek/structlog/actions?query=workflow%3ACI
.. _black: https://github.com/psf/black
.. _pre-commit: https://pre-commit.com/
.. _isort: https://github.com/timothycrosley/isort
84 changes: 84 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
---
name: CI

on:
push:
branches: ["master"]
pull_request:
branches: ["master"]

jobs:
tests:
name: "Python ${{ matrix.python-version }}"
runs-on: "ubuntu-latest"
env:
VERSIONS_WITH_COVERAGE: '3.6,3.8'

strategy:
matrix:
python-version: ["3.6", "3.7", "3.8", "pypy3"]

steps:
- uses: "actions/checkout@v2"
- uses: "actions/setup-python@v1"
with:
python-version: "${{ matrix.python-version }}"
- name: "Install dependencies"
run: |
set -xe
python -VV
python -m site
python -m pip install --upgrade pip setuptools
python -m pip install --upgrade coverage[toml] virtualenv tox tox-gh-actions
- name: "Run tox targets for ${{ matrix.python-version }}"
run: "python -m tox"

- name: "Get coverage"
run: |
set -xe
python -m coverage combine
python -m coverage xml
if: "contains(env.VERSIONS_WITH_COVERAGE, matrix.python-version)"
- name: Upload coverage to Codecov
if: "contains(env.VERSIONS_WITH_COVERAGE, matrix.python-version)"
uses: "codecov/codecov-action@v1"
with:
fail_ci_if_error: true

package:
name: "Build & verify package"
runs-on: "ubuntu-latest"

steps:
- uses: "actions/checkout@v2"
- uses: "actions/setup-python@v1"
with:
python-version: "3.8"

- name: "Install pep517 and twine"
run: "python -m pip install pep517 twine"
- name: "Build package"
run: "python -m pep517.build --source --binary ."
- name: "List result"
run: "ls -l dist"
- name: "Check long_description"
run: "python -m twine check dist/*"

install-dev:
strategy:
matrix:
os: ["ubuntu-latest", "windows-latest", "macos-latest"]

name: "Verify dev env"
runs-on: "${{ matrix.os }}"

steps:
- uses: "actions/checkout@v2"
- uses: "actions/setup-python@v1"
with:
python-version: "3.8"
- name: "Install in dev mode"
run: "python -m pip install -e .[dev]"
- name: "Import package"
run: "python -c 'import structlog; print(structlog.__version__)'"
6 changes: 3 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ repos:
rev: 19.10b0
hooks:
- id: black
language_version: python3.7
language_version: python3.8
# override until resolved: https://github.com/psf/black/issues/402
files: \.pyi?$
types: []
Expand All @@ -14,7 +14,7 @@ repos:
rev: 3.7.9
hooks:
- id: flake8
language_version: python3.7
language_version: python3.8
exclude: docs/code_examples

- repo: https://github.com/asottile/seed-isort-config
Expand All @@ -27,7 +27,7 @@ repos:
hooks:
- id: isort
additional_dependencies: [toml]
language_version: python3.7
language_version: python3.8

- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.4.0
Expand Down
13 changes: 9 additions & 4 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
---
version: 2
python:
version: 3
pip_install: true
extra_requirements:
- docs
# Keep version in sync with tox.ini (docs and gh-actions).
version: 3.7

install:
- method: pip
path: .
extra_requirements:
- docs
4 changes: 2 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
:target: https://www.structlog.org/en/stable/?badge=stable
:alt: Documentation Status

.. image:: https://dev.azure.com/the-hynek/structlog/_apis/build/status/hynek.structlog?branchName=master
:target: https://dev.azure.com/the-hynek/structlog/_build?definitionId=1
.. image:: https://github.com/hynek/structlog/workflows/CI/badge.svg?branch=master
:target: https://github.com/hynek/structlog/actions?workflow=CI
:alt: CI Status

.. image:: https://codecov.io/github/hynek/structlog/branch/master/graph/badge.svg
Expand Down
129 changes: 0 additions & 129 deletions azure-pipelines.yml

This file was deleted.

3 changes: 0 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,6 @@
EXTRAS_REQUIRE["dev"] = (
EXTRAS_REQUIRE["tests"] + EXTRAS_REQUIRE["docs"] + ["pre-commit"]
)
EXTRAS_REQUIRE["azure-pipelines"] = EXTRAS_REQUIRE["tests"] + [
"pytest-azurepipelines"
]

###############################################################################

Expand Down
31 changes: 17 additions & 14 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -6,21 +6,30 @@ filterwarnings =
once::Warning


# Keep docs in sync with docs env and .readthedocs.yml.
[gh-actions]
python =
3.6: py36
3.7: py37, docs
3.8: py38, lint, manifest
pypy3: pypy3


[tox]
envlist = lint,{py36,py37,py38,pypy3}-threads,{py38,pypy3}-greenlets,py38-colorama,docs,pypi-description,manifest,coverage-report
isolated_build = True


[testenv:lint]
basepython = python3.7
basepython = python3.8
skip_install = true
deps = pre-commit
passenv = HOMEPATH # needed on Windows
commands = pre-commit run --all-files


[testenv]
extras = {env:TOX_AP_TEST_EXTRAS:tests}
extras = tests
deps =
greenlets: greenlet
threads,greenlets,colorama: twisted
Expand All @@ -29,23 +38,16 @@ setenv =
commands = python -m pytest {posargs}


# For missing contextvars.
[testenv:py36-threads]
deps = twisted
setenv =
PYTHONHASHSEED = 0
commands = coverage run -m pytest {posargs}


[testenv:py37-threads]
deps = twisted
setenv =
PYTHONHASHSEED = 0
commands = coverage run -m pytest {posargs}


[testenv:py38-colorama]
deps =
colorama
deps = colorama
setenv =
PYTHONHASHSEED = 0
commands = coverage run -m pytest {posargs}
Expand All @@ -61,6 +63,7 @@ commands = coverage run -m pytest {posargs}


[testenv:docs]
# Keep basepython in sync with gh-actions and .readthedocs.yml.
basepython = python3.7
extras =
docs
Expand All @@ -73,7 +76,7 @@ commands =


[testenv:pypi-description]
basepython = python3.7
basepython = python3.8
skip_install = true
deps =
twine
Expand All @@ -84,14 +87,14 @@ commands =


[testenv:manifest]
basepython = python3.7
basepython = python3.8
skip_install = true
deps = check-manifest
commands = check-manifest


[testenv:coverage-report]
basepython = python3.7
basepython = python3.8
deps = coverage[toml]
skip_install = true
commands =
Expand Down

0 comments on commit 8c0abe1

Please sign in to comment.