Skip to content

Commit

Permalink
👷 Add Github Actions workflows
Browse files Browse the repository at this point in the history
  • Loading branch information
sergei-maertens committed Oct 6, 2023
1 parent f0e774d commit 04b27bb
Show file tree
Hide file tree
Showing 4 changed files with 135 additions and 8 deletions.
12 changes: 12 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
root = true

[*]
charset = utf-8
indent_style = space
indent_size = 4
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true

[*.{yml,yaml}]
indent_size = 2
82 changes: 82 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: Tests and PyPI publishing

on:
push:
branches:
- main
tags:
- '*'
pull_request:
workflow_dispatch:

jobs:
tests:
name: Run tests on Python ${{ matrix.python }}
runs-on: ubuntu-latest
strategy:
matrix:
python: ['3.10', '3.11']

steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}

- name: Install dependencies
run: pip install tox tox-gh-actions

- name: Run tests
run: tox
env:
PYTHON_VERSION: ${{ matrix.python }}

- name: Publish coverage report
uses: codecov/codecov-action@v3

type-checks:
name: Run type checks on Python ${{ matrix.python }}
runs-on: ubuntu-latest
strategy:
matrix:
python: ['3.10', '3.11']

steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python }}

- name: Install dependencies
run: pip install tox tox-gh-actions

- name: Run checks
run: tox
env:
TYPE_CHECKING: 'true'

publish:
name: Publish package to PyPI
runs-on: ubuntu-latest
needs:
- tests
- type-checks

if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')

steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Build sdist and wheel
run: |
pip install build pip setuptools wheel --upgrade
python -m build
- name: Publish a Python distribution to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__
password: ${{ secrets.PYPI_TOKEN }}
35 changes: 35 additions & 0 deletions .github/workflows/code-quality.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Linting and code quality

on:
push:
branches:
- main
tags:
- '*'
pull_request:
workflow_dispatch:

jobs:
linting:
name: Code-quality checks
runs-on: ubuntu-latest
strategy:
matrix:
toxenv:
- isort
- black
- flake8
- docs

steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v4
with:
python-version: '3.10'

- name: Install dependencies
run: pip install tox

- run: tox
env:
TOXENV: ${{ matrix.toxenv }}
14 changes: 6 additions & 8 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Ape-pie client

|build-status| |code-quality| |black| |coverage| |docs|

|python-versions| |django-versions| |pypi-version|
|python-versions| |pypi-version|

Ape-pie is a small API client abstraction layer on top of requests_.

Expand All @@ -26,18 +26,18 @@ Installation and usage
Quickstart and API reference documentation are hosted on ReadTheDocs_.


.. |build-status| image:: https://github.com/maykinmedia/ape-pie/workflows/Run%20CI/badge.svg
.. |build-status| image:: https://github.com/maykinmedia/ape-pie/workflows/Tests%20and%20PyPI%20publishing/badge.svg
:alt: Build status
:target: https://github.com/maykinmedia/ape-pie/actions?query=workflow%3A%22Run+CI%22
:target: https://github.com/maykinmedia/ape-pie/actions?query=workflow%3A%22Tests+and+PyPI+publishing%22

.. |code-quality| image:: https://github.com/maykinmedia/ape-pie/workflows/Code%20quality%20checks/badge.svg
.. |code-quality| image:: https://github.com/maykinmedia/ape-pie/workflows/Linting%20and%20code%20quality/badge.svg
:alt: Code quality checks
:target: https://github.com/maykinmedia/ape-pie/actions?query=workflow%3A%22Code+quality+checks%22
:target: https://github.com/maykinmedia/ape-pie/actions?query=workflow%3A%22Linting+and+code+quality%22

.. |black| image:: https://img.shields.io/badge/code%20style-black-000000.svg
:target: https://github.com/psf/black

.. |coverage| image:: https://codecov.io/gh/maykinmedia/ape-pie/branch/master/graph/badge.svg
.. |coverage| image:: https://codecov.io/gh/maykinmedia/ape-pie/branch/main/graph/badge.svg
:target: https://codecov.io/gh/maykinmedia/ape-pie
:alt: Coverage status

Expand All @@ -47,8 +47,6 @@ Quickstart and API reference documentation are hosted on ReadTheDocs_.

.. |python-versions| image:: https://img.shields.io/pypi/pyversions/ape-pie.svg

.. |django-versions| image:: https://img.shields.io/pypi/djversions/ape-pie.svg

.. |pypi-version| image:: https://img.shields.io/pypi/v/ape-pie.svg
:target: https://pypi.org/project/ape-pie/

Expand Down

0 comments on commit 04b27bb

Please sign in to comment.