https://github.com/earthmanmuons/reusable-workflows
Collection of reusable workflows for GitHub Actions
https://github.com/earthmanmuons/reusable-workflows
Last synced: 3 months ago
JSON representation
Collection of reusable workflows for GitHub Actions
- Host: GitHub
- URL: https://github.com/earthmanmuons/reusable-workflows
- Owner: EarthmanMuons
- License: 0bsd
- Created: 2023-07-06T21:36:30.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-11-18T19:16:15.000Z (over 1 year ago)
- Last Synced: 2025-01-20T00:52:24.586Z (over 1 year ago)
- Homepage:
- Size: 86.9 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Reusable Workflows
This repository houses a collection of [reusable workflows][] for GitHub
Actions. Its goal is to centralize CI building blocks used across multiple
projects so they can be updated and improved consistently.
Reusable Workflows is designed to pair with the [Toolbox Envy][] repository.
Where this repository defines high-level CI workflows and execution structure,
Toolbox Envy provides the reusable scripts those workflows invoke, keeping
procedural logic centralized and out of workflow definitions.
[reusable workflows]:
https://docs.github.com/en/actions/using-workflows/reusing-workflows
[Toolbox Envy]: https://github.com/EarthmanMuons/toolbox-envy
## Usage
You call a reusable workflow by using `uses` at the job level:
- `{owner}/{repo}/.github/workflows/.yml@{ref}`
For example, to call the "check-spelling.yml" reusable workflow:
```yml
jobs:
spelling:
uses: EarthmanMuons/reusable-workflows/.github/workflows/check-spelling.yml@main
```
> _For a more comprehensive example of these workflows being used in a
> real-world scenario, see the [WhatChord][] or [spellout][] projects._
[WhatChord]:
https://github.com/EarthmanMuons/whatchord/tree/main/.github/workflows
[spellout]:
https://github.com/EarthmanMuons/spellout/tree/main/.github/workflows
## Workflow Index
Reusable workflows are defined as top-level files under
[`.github/workflows/`](.github/workflows/).
### Common
General-purpose workflows intended for use by any repository:
- `detect-changed-files.yml` – Expose paths-filter outputs for conditional jobs
- `check-github-actions.yml` – Lint workflows via actionlint
- `check-markdown.yml` – Format and lint Markdown via Prettier
- `check-shell.yml` – Format and lint shell scripts
- `check-spelling.yml` – Spellcheck via typos
- `label-pull-request.yml` – Apply labels via actions/labeler
- `ready-to-merge.yml` – Ensure all required jobs truly passed
- `preload-caches-actionlint.yml` – Cache the actionlint binary
- `flush-caches.yml` – Delete GitHub Actions caches for the current branch
- `tag-if-missing.yml` – Create and push a missing SemVer tag (via Toolbox Envy
scripts)
Details: [docs/common.md](docs/common.md)
### Flutter
Workflows specific to Flutter projects:
- `check-flutter.yml` – Format, analyze, and test using pinned Flutter
- `preload-caches-flutter.yml` – Cache pinned Flutter dependencies
- `bump-version-flutter-app.yml` – Bump CalVer version and changelog, open PR
- `bump-version-flutter-lib.yml` – Bump SemVer version and changelog, open PR
- `draft-release-flutter.yml` – Draft release, build, sign, and upload assets
Details: [docs/flutter.md](docs/flutter.md)
### Rust
Workflows specific to Rust projects:
- `check-rust.yml` – fmt, clippy, stable matrix, MSRV
- `check-rust-beta.yml` – Beta toolchain coverage
- `check-rust-miri.yml` – Miri coverage (nightly)
- `preload-caches-rust.yml` – Cache stable and MSRV dependencies
- `bump-version-rust.yml` – cargo-release version and replace, open PR
- `tag-untagged-releases-rust.yml` – Tag and push missing crate tags
- `publish-crate.yml` – Publish crates to crates.io
- `draft-release-rust.yml` – Draft release and upload compiled artifacts
- `deploy-github-pages-rust.yml` – Build rustdoc and deploy to GitHub Pages
Details: [docs/rust.md](docs/rust.md)
### Zig
Workflows specific to Zig projects:
- `deploy-github-pages-zig.yml` – Build Zig docs and deploy GitHub Pages
Details: [docs/zig.md](docs/zig.md)
## License
These reusable workflows are released under the [Zero Clause BSD
License][LICENSE] (SPDX: 0BSD).
Copyright © 2023 [Aaron Bull Schaefer][EMAIL] and contributors
[LICENSE]: https://github.com/EarthmanMuons/reusable-workflows/blob/main/LICENSE
[EMAIL]: mailto:aaron@elasticdog.com