This Github Action can come in handy when you have a lot of projects as I do. wherein some cases certain projects users action workflow which is common across projects. For example: Project 1
& Project 2
it can be a pain to keep all the workflow updated with Github Action's Module's version.
This also isn't limited to Github Action YAML files.
Another use case could be keeping the .editorconfig
, LICENSE
, tsconfig.json
, tslint.json
, .gitignore
, azure-pieplines.yml
, etc. in sync across all your repositories.
Here where this action comes in and reduces your stress 😉 it can update all your repository actions file based on the config provided
How Files Sync Work?
Before copying the WORKFLOW_FILES
from the source to the destination. this action will provide some flexibility. this searches for a file in various locations for example lets take settings.yml
as the file that you want to sync for multiple repositories
Below are the locations that this action search for the file/folder
./{OWNER}/{REPO_NAME}/workflows/{filename}
./{OWNER}/workflows/{filename}
./{WORKFLOW_FILES_DIR}/{filename}
./.github/workflows/{filename}
./{OWNER}/{REPO_NAME}/{filename}
./{OWNER}/{filename}
./{filename}
if the
settings.yml
is found inside theworkflows
folder then the destination is automatically forced to.github/workflows
in the destination repoif the
settings.yml
is outside of theworkflows
folder then the destination then its copied to the destination
How this can be useful?
Let's assume that you want to maintain all the common GitHub files in a single repository and suddenly a repository needs a single file to be changed in that case instead of editing the action YML
/ YAML
file. you can just create a folder like {REPO_OWNER}/{REPO_NAME}/{FILE}
to copy the overridden file to the destination
Questions or feedback? Please comment below.
See all my projects at Github.
Follow me on Twitter for updates