Skip to content

Commit

Permalink
ci: add PyPI publish workflow (#8)
Browse files Browse the repository at this point in the history
Include MANIFEST.in to exclude files.
Adapt README for PyPI.
  • Loading branch information
zehnm authored Nov 4, 2023
1 parent 23fba33 commit af75beb
Show file tree
Hide file tree
Showing 5 changed files with 91 additions and 24 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/python-code-format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:

name: Check Python code formatting
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v4
Expand All @@ -43,7 +43,7 @@ jobs:
python -m flake8 ucapi --count --show-source --statistics
- name: Check code formatting with isort
run: |
python -m isort ucapi/. --check --verbose
python -m isort ucapi/. examples/. --check --verbose
- name: Check code formatting with black
run: |
python -m black ucapi --check --verbose
python -m black ucapi examples --check --verbose
59 changes: 59 additions & 0 deletions .github/workflows/python-publish-pypi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
name: Publish ucapi on PyPI

on:
release:
types: [released]

permissions:
contents: read

jobs:
verify:
runs-on: ubuntu-22.04

name: Verify Python build context
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f test-requirements.txt ]; then pip install -r test-requirements.txt; fi
- name: Analyzing the code with pylint
run: |
python -m pylint ucapi
- name: Lint with flake8
run: |
python -m flake8 ucapi --count --show-source --statistics
- name: Check code formatting with isort
run: |
python -m isort ucapi/. examples/. --check --verbose
- name: Check code formatting with black
run: |
python -m black ucapi examples --check --verbose
build:
name: Build and publish PyPi package
needs: verify
runs-on: ubuntu-22.04
if: github.repository_owner == 'unfoldedcircle'
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
python -m pip install --upgrade build setuptools setuptools_scm
- name: Build package
run: python -m build
- name: Publish package
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}
4 changes: 4 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
exclude .*
exclude MANIFEST.in
recursive-exclude .idea *
recursive-exclude .github *
28 changes: 7 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,24 +28,9 @@ Use pip:
```shell
pip3 install ucapi
```
## Usage

Install build tools:
```shell
pip3 install build setuptools setuptools_scm
```

Build:
```shell
python -m build
```

Local installation:
```shell
pip3 install --force-reinstall dist/ucapi-$VERSION-py3-none-any.whl
```

See [examples directory](examples) for a minimal integration driver example. More examples will be published.
See [examples directory](https://github.com/aitatoi/integration-python-library/blob/main/examples) for a minimal
integration driver example. More examples will be published.

### Environment Variables

Expand All @@ -66,14 +51,15 @@ We use [SemVer](http://semver.org/) for versioning. For the versions available,

## Changelog

The major changes found in each new release are listed in the [changelog](CHANGELOG.md) and
under the GitHub [releases](https://github.com/unfoldedcircle/integration-python-library/releases).
The major changes found in each new release are listed in the [changelog](https://github.com/aitatoi/integration-python-library/blob/main/CHANGELOG.md)
and under the GitHub [releases](https://github.com/unfoldedcircle/integration-python-library/releases).

## Contributions

Please read our [contribution guidelines](./CONTRIBUTING.md) before opening a pull request.
Please read our [contribution guidelines](https://github.com/aitatoi/integration-python-library/blob/main/CONTRIBUTING.md)
before opening a pull request.

## License

This project is licensed under the [**Mozilla Public License 2.0**](https://choosealicense.com/licenses/mpl-2.0/).
See the [LICENSE](LICENSE) file for details.
See the [LICENSE](https://github.com/aitatoi/integration-python-library/blob/main/LICENSE) file for details.
18 changes: 18 additions & 0 deletions docs/setup.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Development Setup

This library requires Python 3.10 or newer.

Install build tools:
```shell
pip3 install build setuptools setuptools_scm
```

Build:
```shell
python -m build
```

Local installation:
```shell
pip3 install --force-reinstall dist/ucapi-$VERSION-py3-none-any.whl
```

0 comments on commit af75beb

Please sign in to comment.