CLI tool to install and update GitHub Actions
npm install github-actions
!Codecov
!npm type definitions
> -- 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.
- GitHub Actions Manager
- Basic usage
- Automated automation?
- Let's start today
- Advanced usage
- Simple, no-force update
- Force update
- CLI arguments
- Version 1.0.0 checklist
- Versioning
- Latest changes

``bashinstall globally or locally
npm i -g github-actionsnpm i --save-dev github-actions
Automated 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.js projects installation guide
- CI/CD for Python projects installation guide
- CI/CD for Rust projects by @actions-rs
- CI/CD for Go projects by @mvdan
- CI/CD for Julia projects by @julia-actions
- CI/CD for Terraform projects by @dflook
- Or provide path to any GitHub repository to clone their workflows (run ghactions, then select From GitHub URL)
- Or even clone workflows from your local path (run ghactions, then select From directory)Advanced usage
$3
-
jobs.* are added fom remote
- jobs.*.steps that are github-actions-managed are updated from remote or removed if they do not exist remotely
- jobs.*.steps that are not github-actions-managed are kept untouched and preserve their position in workflow
- jobs.*.steps that exist only remotely are added to workflow to correct position, so to remove step, make in not managed and run empty run command to it, keep id the same.$3
- Top comment in YAML file is replaced with remote
-
jobs.* are deleted if they do not exist remotely
- name workflow name is replaced with remote
- on triggers are replaced with remote
- jobs.*.env is replaced with remote
- jobs.*.strategy is replaced with remote
- jobs.*.runs-on is replaced with remote
- jobs.*.if is replaced with remote$3
| Short | Long | Default | Description |
| - | - | - | - |
|
-n | --names | interactive mode | Workflow name , all, or installed |
| -i | --index | / file:///url / node / python | Link to workflows directory .../.github/workflows |
| -r | --ref | | Update workflows to a specific tag/branch |
| -p | --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
- [x] Unify check and update reports
- [x] Support user top comment in workflows
- [x] Add custom indexes support
- [x] Add --list argument to list workflows in index
- [x] Add --path argument to allow running not for a repository root
- [x] Smart diff
- [x] Interactive CLI
- [x] Generator for index READMEs
- [x] Add --clean CLI flag to remove github-actions-managed flags
- [ ] Interactive updates selectionVersioning
github-actions` adheres to Semantic Versioning.Full changelog can be found in Changelog.
Release notes can be found in Releases.