Skip to content
This repository was archived by the owner on Apr 2, 2025. It is now read-only.

Commit f59e634

Browse files
committed
add gh workflow to build/release package
1 parent 3d8e618 commit f59e634

File tree

3 files changed

+80
-0
lines changed

3 files changed

+80
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Build Python Package
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
release:
11+
types:
12+
- published
13+
14+
jobs:
15+
build-package:
16+
runs-on: ubuntu-latest
17+
environment:
18+
name: pypi
19+
url: https://pypi.org/p/stapi-fastapi
20+
permissions:
21+
id-token: write
22+
steps:
23+
- uses: actions/checkout@v4
24+
- name: Set up Python
25+
uses: actions/setup-python@v5
26+
with:
27+
python-version: "3.x"
28+
- name: Install dependencies
29+
run: |
30+
python -m pip install --upgrade pip
31+
pip install build
32+
pip install .
33+
- name: Build package
34+
run: python -m build
35+
- name: Publish package distributions to PyPI
36+
uses: pypa/gh-action-pypi-publish@release/v1
37+
if: startsWith(github.ref, 'refs/tags')

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# Changelog
2+
3+
All notable changes to this project will be documented in this file.
4+
5+
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
6+
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7+
8+
## [Unreleased]
9+
10+
## [v0.1.0] - 2024-10-23
11+
12+
Initial release
13+
14+
[unreleased]: https://github.com/stapi-spec/stapi-fastapi/compare/v0.1.0...main
15+
[v0.1.0]: https://github.com/stapi-spec/stapi-fastapi/tree/v0.1.0

RELEASE.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Releasing stapi-fastapi
2+
3+
Publishing a stapi-fastapi package build to PyPI is triggered by publishing a
4+
GitHub release. Tags are the [semantic version number](https://semver.org/)
5+
proceeded by a `v`, such as `v0.0.1`.
6+
7+
Release notes for the changes for each release should be tracked in
8+
[CHANGELOG.md](./CHANGELOG.md). The notes for each release in GitHub should
9+
generally match those in the CHANGELOG.
10+
11+
## Release process
12+
13+
1. Prepare the release.
14+
1. Figure out the next release version (following semantic versioning
15+
conventions).
16+
1. Ensure [CHANGELOG.md](./CHANGELOG.md) has all necessary changes and
17+
release notes under this next release version. Typically this step is
18+
simply a matter of adding the header for the next version below
19+
`Unreleased` then reviewing the list of changes therein.
20+
1. Ensure links are tracked as best as possible to relevant commits and/or
21+
PRs.
22+
1. Make a PR with the release prep changes, get it reviewed, and merge.
23+
1. Draft a new GitHub release.
24+
1. Create a new tag with the release version prefixed with the character `v`.
25+
1. Title the release the same name as the tag.
26+
1. Copy the release notes from [CHANGELOG.md](./CHANGELOG.md) for this
27+
release version into the release description.
28+
1. Publish the release and ensure it builds and pushes to PyPI successfully.

0 commit comments

Comments
 (0)