You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: readme.md
+18-2
Original file line number
Diff line number
Diff line change
@@ -1,14 +1,30 @@
1
1
# Workflows
2
2
3
-
A central place where all my GitHub action worklows are defined.
3
+
Maintaining project takes time. This repository contains workflows to automate most of the boring tasks.
4
4
5
-
These are [reuseable workflows feature](https://docs.github.com/en/actions/learn-github-actions/reusing-workflows).
5
+
These workflows are mostly used for Poetry-based Python CLI and their documentation, but not only. They're all [reuseable GitHub actions workflows](https://docs.github.com/en/actions/learn-github-actions/reusing-workflows).
6
6
7
7
Reasons for a centralized workflow repository:
8
8
9
9
- reuseability of course: no need to update dozens of repository where 95% of workflows are the same
10
10
- centralize all dependencies pertaining to automation: think of the point-release of an action that triggers dependabot upgrade to all your repositories dependeing on it
11
11
12
+
## Release management
13
+
14
+
It turns out [Release Engineering is a full-time job, and full of edge-cases](https://blog.axo.dev/2023/02/cargo-dist).
15
+
16
+
Rust has [`cargo-dist`](https://github.com/axodotdev/cargo-dist). Go has... ? But there is no equivalent for Python.
17
+
18
+
So I made up a [`release.yaml` workflow](https://github.com/kdeldycke/workflows/blob/main/.github/workflows/release.yaml), which:
19
+
1. Extracts project metadata from `pyproject.toml`
20
+
1. Generates a build matrix of all commits / os / arch / CLI entry points
21
+
1. Build Python wheel with Twine
22
+
1. Compile binaries of all CLI with Nuitka
23
+
1. Tag the release commit in Git
24
+
1. Publish new version to PyPi
25
+
1. Publish a GitHub release
26
+
1. Attach and rename build artifacts to it
27
+
12
28
## Changelog
13
29
14
30
A [detailed changelog](changelog.md) is available.
0 commit comments