Skip to content

Commit

Permalink
Merge pull request #77 from hnez/auto-pypi
Browse files Browse the repository at this point in the history
CI: add automatic publication to pypi.org and test.pypi.org
  • Loading branch information
SmithChart authored May 8, 2024
2 parents 2da3f46 + 51d9421 commit 8a1782b
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 44 deletions.
36 changes: 0 additions & 36 deletions .github/workflows/check-and-build.yaml

This file was deleted.

64 changes: 64 additions & 0 deletions .github/workflows/check-and-publish.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Check and Publish

on: [push, pull_request]

jobs:
codespell:
name: Codespell
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: make qa-codespell

pytest:
name: Python Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: make qa-pytest

ruff:
name: Python Format and Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: make qa-ruff

build:
name: Python Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
# include tags and full history for setuptools_scm
fetch-depth: 0
- run: make build
- uses: actions/upload-artifact@v4
with:
name: dist
path: dist

publish:
name: Publish
if: ${{ github.event_name == 'push' && vars.PUBLISH_PYPI == 'true' && (startsWith(github.ref, 'refs/tags') || github.ref == 'refs/heads/master') }}
runs-on: ubuntu-latest
needs:
- codespell
- pytest
- ruff
- build
permissions:
id-token: write
steps:
- name: Download artifacts from build stage
uses: actions/download-artifact@v4
with:
name: dist
path: dist/
- name: Publish distribution package to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
- name: Publish distribution package to PyPI
if: ${{ startsWith(github.ref, 'refs/tags') }}
uses: pypa/gh-action-pypi-publish@release/v1
8 changes: 2 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ $(PYTHON_PACKAGING_VENV)/.created:
$(PYTHON) -m venv $(PYTHON_PACKAGING_VENV) && \
. $(PYTHON_PACKAGING_VENV)/bin/activate && \
$(PYTHON) -m pip install --upgrade pip && \
$(PYTHON) -m pip install build twine
$(PYTHON) -m pip install build
date > $(PYTHON_PACKAGING_VENV)/.created

.PHONY: packaging-env build _release
.PHONY: packaging-env build

packaging-env: $(PYTHON_PACKAGING_VENV)/.created

Expand All @@ -24,10 +24,6 @@ build: packaging-env
rm -rf dist *.egg-info && \
$(PYTHON) -m build

_release: build
. $(PYTHON_PACKAGING_VENV)/bin/activate && \
$(PYTHON) -m twine upload dist/*

# helper ######################################################################
.PHONY: clean envs

Expand Down
7 changes: 5 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
[build-system]
requires = ["setuptools"]
requires = ["setuptools", "setuptools_scm[toml]"]
build-backend = "setuptools.build_meta"

[project]
name = "usbsdmux"
description = "Tool to control an USB-SD-Mux from the command line"
version = "24.01.1"
authors = [
{ name = "Chris Fiege", email = "[email protected]" },
]
Expand All @@ -18,6 +17,7 @@ classifiers = [
"Operating System :: Unix",
"Programming Language :: Python :: 3 :: Only",
]
dynamic = ["version"] # via setuptools_scm

[project.optional-dependencies]
mqtt = ["paho-mqtt"]
Expand All @@ -37,6 +37,9 @@ packages = [
]
include-package-data = true

[tool.setuptools_scm]
local_scheme = "no-local-version"

[tool.ruff]
line-length = 119
exclude = [
Expand Down

0 comments on commit 8a1782b

Please sign in to comment.