Skip to content

Repository files navigation

Workflows

Inspired by the more complete repo repomatic (formerly workflows) owned by Kevin Deldycke

Maintaining project takes time. This repository contains workflows to automate most of the boring tasks.

These workflows are mostly used for Poetry-based Python CLI and their documentation, but not only. They're all reuseable GitHub actions workflows.

Reasons for a centralized workflow repository:

  • reuseability of course: no need to update dozens of repository where 95% of workflows are the same
  • 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

Release management

TODO: To-Be-Review-And-Updated

It turns out Release Engineering is a full-time job, and full of edge-cases.

Rust has cargo-dist. Go has... ? But there is no equivalent for Python.

So I made up a release.yaml workflow, which:

  1. Extracts project metadata from pyproject.toml
  2. Generates a build matrix of all commits / os / arch / CLI entry points
  3. Build Python wheel with Twine
  4. Compile binaries of all CLI with Nuitka
  5. Tag the release commit in Git
  6. Publish new version to PyPi
  7. Publish a GitHub release
  8. Attach and rename build artifacts to it

Changelog

A detailed changelog is available.

Used in

Check these projects to get real-life examples of usage and inspiration:

  • GitHub stars django-errors - Django application for handling server errors.
  • GitHub stars django-sp - Django application for custom Social Profile Auth and User model.
  • GitHub stars django-iubenda - Django application for handling privacy and cookie policies configured with Iubenda.
  • GitHub stars django-requests-api - Django application providing a thin requests.Session wrapper with a base URL and small HTTP helpers.
  • GitHub stars django-custom-storage - Django application provide custom storage uses S3 and Compressor.
  • GitHub stars django-hashtag - Django application provide hashtag functionality.
  • GitHub stars django-model-mixin - Django application provide simple model's mixins to add common reusable attributes.
  • GitHub stars django-lang - Django application to provide useful utils and reusable parts of code for multi-languages sites.
  • GitHub stars django-static-base - Django's application to serve up-to-date common static files (JQuery, Bootstrap, Plugins, ...) as "base" static directory
  • GitHub stars django-sites-extra - Django application to extend the standard "sites" framework with extra utils.
  • GitHub stars django-filer-optimizer - Django application to extend the "django-filer" application with extra utils like.
  • GitHub stars requirements
  • GitHub stars django-service - Django application provide simple category/service details
  • GitHub stars ateco - Italian ATECO classification (ISTAT) as a pure-Python data library.
  • GitHub stars django-ateco - Django helpers for Italian ATECO classification (wraps ateco).
  • GitHub stars django-agentweb - Make Django sites first-class citizens of the agentic web: llms.txt, Schema.org/JSON-LD, agent discovery, WebMCP tools, agentic commerce/booking and SDF — per-site opt-in.
  • GitHub stars django-blog-core - Reusable multi-blog Django app: Blog, Section, Article with draft/schedule/publish, feeds, hookset, and optional Markdown/sanitize extras.

Feel free to send a PR to add your project in this list if you are relying on these scripts.

Release process

TODO: To-Be-Review-And-Updated

All steps of the release process and version management are automated in the changelog.yaml and release.yaml workflows.

All there's left to do is to:

  • check the open draft prepare-release PR and its changes,
  • click the Ready for review button,
  • click the Rebase and merge button,
  • let the workflows tag the release and set back the main branch into a development state.

About

⚙️ Central repository for all workflows used in my projects

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors