GitHub Actions Manager
-- Who will test our unit tests?
-- I have no idea 🤨
-- Okay, who will automate our automation?
-- GitHub Actions Manager 😎
Kickstart automation in one command. Clone, update and share GitHub Actions workflows and best practices.
Comes with awesome packs for Node.js, Python, Go, Terraform, Julia, and Rust projects.
Basic usage
# install globally or locally
npm i -g github-actions
# npm i --save-dev github-actions
# run interactive manager
# in a GitHub repository root
ghactions
# or check how to run non-interactively
ghactions --helpAutomated automation?
Yes, why not! Even small projects nowadays have at least simple CI/CD to enforce best practices or just to avoid boring release management. Thanks to GitHub Actions, it is super easy to kickstart an automation for a new project in minutes.
However, every project CI/CD has to be set up and updated separately, even though they have a lot in common. So, instead of making our life easier, CI/CD adds a new folder in a project to keep an eye on.
But imagine, what if we could...
- manage our GitHub Actions the same way we manage npm dependencies
- adapt CI/CD for different projects to our needs and still keep them in sync
- share the best CI/CD practices and collaborate to raise the bar even higher
And finally, what if we could add these best practices for a new project with a single command.
Let's start today
- CI/CD for
Node.jsprojects installation guide - CI/CD for
Pythonprojects installation guide - CI/CD for
Rustprojects by @actions-rs - CI/CD for
Goprojects by @mvdan - CI/CD for
Juliaprojects by @julia-actions - CI/CD for
Terraformprojects by @dflook - Or provide path to any GitHub repository to clone their workflows (run
ghactions, then selectFrom GitHub URL) - Or even clone workflows from your local path (run
ghactions, then selectFrom directory)
Advanced usage
Simple, no-force update
jobs.*are added fom remotejobs.*.stepsthat aregithub-actions-managedare updated from remote or removed if they do not exist remotelyjobs.*.stepsthat are notgithub-actions-managedare kept untouched and preserve their position in workflowjobs.*.stepsthat exist only remotely are added to workflow to correct position, so to remove step, make in not managed and run emptyruncommand to it, keepidthe same.
Force update
- Top comment in YAML file is replaced with remote
jobs.*are deleted if they do not exist remotelynameworkflow name is replaced with remoteontriggers are replaced with remotejobs.*.envis replaced with remotejobs.*.strategyis replaced with remotejobs.*.runs-onis replaced with remotejobs.*.ifis replaced with remote
CLI arguments
| Short | Long | Default | Description |
|---|---|---|---|
-n <name>[ <name>]* |
--names <name>[ <name>]* |
interactive mode | Workflow name <name>.yml, all, or installed |
-i <url> |
--index <url> |
<GitHub URL> / file:///url / node / python |
Link to workflows directory .../.github/workflows |
-r <version> |
--ref <version> |
| Update workflows to a specific tag/branch | |
-p <path> |
--path <path> |
current workdir | Path to GitHub project root |
-u |
--update |
| Apply suggested changes | |
-f |
--force |
| Update user-managed workflow parts | |
-l |
--list |
| List available workflows | |
-d |
--diff |
| Show diff for update and check runs | |
-c |
--clean |
| Do not add github-actions-managed marker to workflow steps |
|
-h |
--help |
| Print this usage guide | |
-v |
--version |
| Show package version |
Version 1.0.0 checklist
- <input checked="" disabled="" type="checkbox"> Unify
checkandupdatereports - <input checked="" disabled="" type="checkbox"> Support user top comment in workflows
- <input checked="" disabled="" type="checkbox"> Add custom indexes support
- <input checked="" disabled="" type="checkbox"> Add
--listargument to list workflows in index - <input checked="" disabled="" type="checkbox"> Add
--pathargument to allow running not for a repository root - <input checked="" disabled="" type="checkbox"> Smart diff
- <input checked="" disabled="" type="checkbox"> Interactive CLI
- <input checked="" disabled="" type="checkbox"> Generator for index READMEs
- <input checked="" disabled="" type="checkbox"> Add
--cleanCLI flag to removegithub-actions-managedflags - <input disabled="" type="checkbox"> Interactive updates selection
Versioning
github-actions adheres to Semantic Versioning.
Latest changes
Full changelog can be found in Changelog. Release notes can be found in Releases.