Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ci: add PyPI publish workflow #8

Merged
merged 1 commit into from
Nov 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
```