From 42cf1377001512863b5e629a1ba246882d19e003 Mon Sep 17 00:00:00 2001 From: Florian Maurer Date: Sat, 9 Nov 2024 02:41:24 +0100 Subject: [PATCH] add release workflow --- .github/workflows/release.yaml | 65 ++++++++++++++++++++++++++++++++++ pyproject.toml | 4 +-- 2 files changed, 67 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/release.yaml diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..fac99ba --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,65 @@ +# SPDX-FileCopyrightText: Florian Maurer +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +name: Release to PyPI + +on: + release: + types: [created] + +jobs: + build-and-test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Python 3.12 + uses: actions/setup-python@v5 + with: + python-version: '3.12' + cache: 'pip' + cache-dependency-path: '**/pyproject.toml' + + - name: Install dependencies + run: | + python -m pip install .[test] + + - name: Lint with ruff + run: | + ruff check emarketlib tests + ruff format emarketlib tests + + - name: Test with pytest + run: | + pytest --cov --cov-report=xml --junitxml="result.xml" + + - name: Build package + run: | + python -m pip install build + python -m build + + - name: Store the distribution packages + uses: actions/upload-artifact@v4 + with: + name: python-package-distributions + path: dist/ + + pypi-publish: + name: Upload release to PyPI + needs: build-and-test + runs-on: ubuntu-latest + environment: + name: release + url: https://pypi.org/p/emarketlib + permissions: + id-token: write # IMPORTANT: mandatory for trusted publishing + steps: + - name: Download all the dists + uses: actions/download-artifact@v4 + with: + name: python-package-distributions + path: dist/ + + - name: Publish package distributions to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/pyproject.toml b/pyproject.toml index a8a5743..61a4651 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -49,8 +49,8 @@ test = [ ] [project.urls] -homepage = "https://github.com/maurerle/emarketlib" -repository = "https://github.com/maurerle/emarketlib" +homepage = "https://github.com/assume-framework/emarketlib" +repository = "https://github.com/assume-framework/emarketlib" [tool.setuptools]