# 2026-09-13: New Crow CI workflow examples & Container Package Cleanup tutorial

**URL:** <https://forum.codefloe.com/t/2026-09-13-new-crow-ci-workflow-examples-container-package-cleanup-tutorial/174>\
**Category:** Announcements\
**Tags:** changelog\
**Created:** [September 13, 2026, 4:32pm UTC](https://forum.codefloe.com/t/2026-09-13-new-crow-ci-workflow-examples-container-package-cleanup-tutorial/174 "2026-09-13T16:32:22Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![codefloe](https://forum.codefloe.com/user_avatar/forum.codefloe.com/codefloe/32/42_2.png) [@codefloe](https://forum.codefloe.com/u/codefloe)\
**Post date:** [September 13, 2026, 4:32pm UTC](https://forum.codefloe.com/t/2026-09-13-new-crow-ci-workflow-examples-container-package-cleanup-tutorial/174/1 "2026-09-13T16:32:22Z")

</div>

We have added a variety of new workflow examples for Crow CI. These originated out of our own daily use and aim to inspire you to potentially enhance your CI/CD game.

The new ones are:

| Name | What it does | Runs on |
| --- | --- | --- |
| [[Docker] `buildx` publish via QEMU and caching](https://codefloe.com/codefloe/crowci-examples/src/branch/main/.crow/buildx-publish.yaml) | Multi-platform publishing with a registry layer cache | Default-branch push, `v*` tag |
| [[Docker] Multiple registries](https://codefloe.com/codefloe/crowci-examples/src/branch/main/.crow/buildx-multi-registry.yaml) | Publish one build to two registries with separate credentials | Default-branch push, manual |
| [[Docker] Native multi-platform builds](https://codefloe.com/codefloe/crowci-examples/src/branch/main/.crow/buildx-merge.yaml) | Separate AMD64 and ARM64 agents followed by a manifest merge | Default-branch push, `v*` tag |
| [PR changelog](https://codefloe.com/codefloe/crowci-examples/src/branch/main/.crow/pr-changelog.yaml) | Generate notes for commits introduced by a PR | PR |
| [Repository release](https://codefloe.com/codefloe/crowci-examples/src/branch/main/.crow/release.yaml) | Create a Forgejo release with notes, a source archive, and checksums | Default-branch push, manual |
| [S3 assets](https://codefloe.com/codefloe/crowci-examples/src/branch/main/.crow/s3-assets.yaml) | Upload an archive and checksums under a repository/version prefix | Default-branch push, manual |
| [Rust with sccache](https://codefloe.com/codefloe/crowci-examples/src/branch/main/.crow/rust-sccache.yaml) | Cache compiler output in S3 and run Cargo builds and tests | PR, default-branch push |
| [prek](https://codefloe.com/codefloe/crowci-examples/src/branch/main/.crow/prek.yaml) | Run repository hooks and show formatter diffs | PR, default-branch push, manual |
| [golangci-lint](https://codefloe.com/codefloe/crowci-examples/src/branch/main/.crow/golangci-lint.yaml) | Lint all Go packages | PR, default-branch push, manual |

If you have a cool workflow that is somewhat generic and could be useful for others - PRs welcome!

### (Container) package cleanup

Did you know that you can save a lot of space by creating a cleanup rule for you (container) packages?

Cleanup rules can be added for all package types offered by the internal Forgejo registry. We’ve added a docs page to the “Usage” section to showcase their use, including a practical complex regex that allows you to cleanup all “non-important” tags when you’re using a semver-based publishing scheme.

While the tutorial tackles container packages specifically as these are the most used ones and take the most space, the general approach applies to any other package type.

Check out the tutorial here: [Container Package Cleanup | CodeFloe](https://docs.codefloe.com/usage/container-cleanup/)

---

<div class="post-metadata">

**Author:** ![mtlynch](https://forum.codefloe.com/user_avatar/forum.codefloe.com/mtlynch/32/246_2.png) [@mtlynch](https://forum.codefloe.com/u/mtlynch)\
**Post date:** [September 14, 2026, 2:01pm UTC](https://forum.codefloe.com/t/2026-09-13-new-crow-ci-workflow-examples-container-package-cleanup-tutorial/174/2 "2026-09-14T14:01:52Z")

</div>

If you’re open to requests, one I’d love to see documented or supported better is Nix builds. I’m waiting for [NixCI](https://nix-ci.com/) to add native support for arbitrary Forgejo instances, but in the meantime, I’m using CrowCI as kind of an orchestrator for nix builds and using either NixCI or [nixbuild.net](http://nixbuild.net) for the actual build jobs.

One thing that would make this flow smoother is the ability to persist the Nix store locally in the cache so it doesn’t have unconditionally build or pull from the external builders.

---

<div class="post-metadata">

**Author:** ![codefloe](https://forum.codefloe.com/user_avatar/forum.codefloe.com/codefloe/32/42_2.png) [@codefloe](https://forum.codefloe.com/u/codefloe)\
**Post date:** [September 14, 2026, 4:15pm UTC](https://forum.codefloe.com/t/2026-09-13-new-crow-ci-workflow-examples-container-package-cleanup-tutorial/174/3 "2026-09-14T16:15:23Z")

</div>

Please open a thread for this in the CICD category so it can be discussed as a standalone feature request.
