forked from robotology/gh-action-nightly-merge
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
9 additions
and
102 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,106 +1,13 @@ | ||
# Nightly Merge Action | ||
(This is a fork of robotology/gh-action-nightly-merge) | ||
# Scheduled Branch Merge | ||
|
||
Automatically merge the stable branch into the development one. | ||
This automatically merges one branch into another based on a cron schedule using (Github Actions)[https://github.com/features/actions]. | ||
|
||
If the merge is not necessary, the action will do nothing. | ||
If the merge fails due to conflicts, the action will fail, and the repository | ||
maintainer should perform the merge manually. | ||
The two files of note: | ||
**action.yml** - Defines the variables that are used in the script. | ||
**entrypoint.sh** - This is the script that is executed by the Github Action. | ||
|
||
## Installation | ||
## Entrypoint.sh | ||
This fork has greatly simplified the original script from robotology for the use case of the (Cumulus Documentation)[github.com/cumulusnetworks/docs] team. | ||
|
||
To enable the action simply create the `.github/workflows/nightly-merge.yml` | ||
file with the following content: | ||
|
||
```yml | ||
name: 'Nightly Merge' | ||
|
||
on: | ||
schedule: | ||
- cron: '0 0 * * *' | ||
|
||
jobs: | ||
nightly-merge: | ||
|
||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v1 | ||
|
||
- name: Nightly Merge | ||
uses: robotology/[email protected] | ||
with: | ||
stable_branch: 'master' | ||
development_branch: 'devel' | ||
allow_ff: false | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
``` | ||
Even though this action was created to run as a scheduled workflow, | ||
[`on`](https://help.github.com/en/articles/workflow-syntax-for-github-actions#on) | ||
can be replaced by any other trigger. | ||
For example, this will run the action whenever something is pushed on the | ||
`master` branch: | ||
|
||
```yml | ||
on: | ||
push: | ||
branches: | ||
- master | ||
``` | ||
|
||
## Parameters | ||
|
||
### `stable_branch` | ||
|
||
The name of the stable branch (default `master`). | ||
|
||
### `development_branch` | ||
|
||
The name of the development branch (default `devel`). | ||
|
||
### `allow_ff` | ||
|
||
Allow fast forward merge (default `false`). If not enabled, merges will use | ||
`--no-ff`. | ||
|
||
### `allow_git_lfs` | ||
|
||
Allow support for repositories that use `git lfs` (default `false`). | ||
|
||
### `ff_only` | ||
|
||
Refuse to merge and exit unless the current HEAD is already up to date or the | ||
merge can be resolved as a fast-forward (default `false`). | ||
Requires `allow_ff=true`. | ||
|
||
### `allow_forks` | ||
|
||
Allow action to run on forks (default `false`). | ||
|
||
### `user_name` | ||
|
||
User name for git commits (default `GitHub Nightly Merge Action`). | ||
|
||
### `user_email` | ||
|
||
User email for git commits (default `[email protected]`). | ||
|
||
### `push_token` | ||
|
||
Environment variable containing the token to use for push (default | ||
`GITHUB_TOKEN`). | ||
Useful for pushing on protected branches. | ||
Using a secret to store this variable value is strongly recommended, since this | ||
value will be printed in the logs. | ||
The `GITHUB_TOKEN` is still used for API calls, therefore both token should be | ||
available. | ||
|
||
```yml | ||
with: | ||
push_token: 'FOO_TOKEN' | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
FOO_TOKEN: ${{ secrets.FOO_TOKEN }} | ||
``` | ||
This script uses `source_branch` and `target_branch` variables and will merge the `source_branch` into the `target_branch` every day at 12PT. |