Skip to content

Commit 14b1aa8

Browse files
aRustyDevclaude
andcommitted
feat: Implement comprehensive release automation
- Add release workflow with semantic versioning - Configure multi-channel distribution (npm, PyPI, GitHub) - Set up automated changelog generation - Create version management system - Add installation documentation and badges Release Features: - One-click releases via workflow dispatch - Automatic version bumping based on input - Changelog generation from commit messages - GitHub Release creation with assets - npm and PyPI publishing support - Installation script generation Package Configuration: - package.json for npm distribution - setup.py and pyproject.toml for PyPI - VERSION file as single source of truth - .versionrc.json for changelog config This completes the release automation implementation, enabling consistent and reliable package distribution. Closes #30 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 77c1b85 commit 14b1aa8

68 files changed

Lines changed: 1056 additions & 1 deletion

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.dockerignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
*
2+
!.dockerignore
3+
!Dockerfile
4+
!tools/entrypoint.sh
5+
!tools/install/*.sh

.github/workflows/publish-pypi.yml

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
name: Publish to PyPI
2+
3+
on:
4+
release:
5+
types: [published]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
build:
13+
name: Build distribution
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- name: Set up Python
19+
uses: actions/setup-python@v5
20+
with:
21+
python-version: '3.11'
22+
23+
- name: Install build dependencies
24+
run: |
25+
python -m pip install --upgrade pip
26+
pip install build wheel
27+
28+
- name: Build distribution
29+
run: python -m build
30+
31+
- name: Check distribution
32+
run: |
33+
pip install twine
34+
twine check dist/*
35+
36+
- name: Upload artifacts
37+
uses: actions/upload-artifact@v4
38+
with:
39+
name: python-package-distributions
40+
path: dist/
41+
42+
publish-pypi:
43+
name: Publish to PyPI
44+
needs: build
45+
runs-on: ubuntu-latest
46+
environment:
47+
name: pypi
48+
url: https://pypi.org/p/arustydev-pre-commit-hooks
49+
permissions:
50+
id-token: write # For trusted publishing
51+
steps:
52+
- name: Download artifacts
53+
uses: actions/download-artifact@v4
54+
with:
55+
name: python-package-distributions
56+
path: dist/
57+
58+
- name: Publish to PyPI
59+
uses: pypa/gh-action-pypi-publish@release/v1
60+
with:
61+
skip-existing: true
62+
verbose: true
63+
64+
publish-testpypi:
65+
name: Publish to TestPyPI
66+
needs: build
67+
runs-on: ubuntu-latest
68+
environment:
69+
name: testpypi
70+
url: https://test.pypi.org/p/arustydev-pre-commit-hooks
71+
permissions:
72+
id-token: write
73+
steps:
74+
- name: Download artifacts
75+
uses: actions/download-artifact@v4
76+
with:
77+
name: python-package-distributions
78+
path: dist/
79+
80+
- name: Publish to TestPyPI
81+
uses: pypa/gh-action-pypi-publish@release/v1
82+
with:
83+
repository-url: https://test.pypi.org/legacy/
84+
skip-existing: true
85+
verbose: true

0 commit comments

Comments
 (0)