Skip to content

Commit aca8629

Browse files
committed
feat: add GitHub Actions CI and PyPI auto-publish workflows (v0.7.20)
1 parent 8305a66 commit aca8629

6 files changed

Lines changed: 69 additions & 4 deletions

File tree

.github/workflows/ci.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [master]
6+
pull_request:
7+
branches: [master]
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
strategy:
13+
matrix:
14+
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"]
15+
16+
steps:
17+
- uses: actions/checkout@v4
18+
19+
- uses: actions/setup-python@v5
20+
with:
21+
python-version: ${{ matrix.python-version }}
22+
23+
- name: Install uv
24+
run: pip install uv
25+
26+
- name: Install dependencies
27+
run: uv sync
28+
29+
- name: Run tests
30+
run: uv run pytest tests/ -v --ignore=tests/test_integration.py

.github/workflows/publish.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
name: Publish to PyPI
2+
3+
on:
4+
push:
5+
tags:
6+
- "v*"
7+
8+
jobs:
9+
publish:
10+
runs-on: ubuntu-latest
11+
environment: pypi
12+
permissions:
13+
id-token: write
14+
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- uses: actions/setup-python@v5
19+
with:
20+
python-version: "3.12"
21+
22+
- name: Install uv
23+
run: pip install uv
24+
25+
- name: Build
26+
run: uv build
27+
28+
- name: Publish to PyPI
29+
uses: pypa/gh-action-pypi-publish@release/v1

.gitignore

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,5 +32,3 @@ CLAUDE.md
3232
# Claude Code local config
3333
.claude/
3434

35-
# GitHub Actions / workflows (stay local)
36-
.github/

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@ Versioning: [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
1111

1212
---
1313

14+
## [0.7.20] - 2026-03-05
15+
16+
### Added
17+
- GitHub Actions CI workflow: runs pytest on Python 3.8 through 3.13 on every push and pull request
18+
- GitHub Actions publish workflow: builds and publishes to PyPI automatically on tag push using trusted publisher (no stored secrets)
19+
20+
---
21+
1422
## [0.7.19] - 2026-03-05
1523

1624
### Added

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "kwtsms"
3-
version = "0.7.19"
3+
version = "0.7.20"
44
description = "Python client for kwtSMS, the Kuwait SMS gateway trusted by top businesses to deliver messages worldwide, with private Sender ID, free API testing, and non-expiring credits."
55
readme = "README.md"
66
requires-python = ">=3.8"

src/kwtsms/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,4 @@
1818
from kwtsms._core import KwtSMS, clean_message, normalize_phone, validate_phone_input
1919

2020
__all__ = ["KwtSMS", "normalize_phone", "clean_message", "validate_phone_input"]
21-
__version__ = "0.7.19"
21+
__version__ = "0.7.20"

0 commit comments

Comments
 (0)