runas-plugin-scm-git
v0.1.1
Published
Runas plugin for SCM operations (Git implementation)
Readme
SCM operations for runas (Git implementation)
Hook (stages: config)
Any step can configure this plugin to perform a number of SCM operations.
1. Install plugin
Add package dependency:
npm install --save runas-plugin-scm-gitAdd plugin on steps/$stepName/config.json plugins:
{
"plugins: [
[...]
"scm"
]
}2. Add git requirement to the step
{
"requirements": {
[...]
"git": {}
}
}3. Configure plugin in config.json
Example:
{
"scm": {
"operation": "checkout",
"repos": [{
"repo": "ssh://[email protected]/ctool/runas-plugin-scm-git.git",
"folder": "projects/tools"
}],
"jobs": 10
}
}- operation Any of the operations supported by the plugin (see below)
- repos A list of repos in which the operation will be performed. Each repo must be an object containing the fields required by the operation (see below)
- jobs Number of jobs executed in parallel
Addons
this.scmClone
Executes git clone ${options.repo}. If present, sets current working directory to ${options.folder}. If not, works in the cwd.
| Param | Description | | --- | --- | | options | object containing the fields repo and folder | | returns | a Promise with the complete child_process object result of the execution |
this.scmPull
Executes git pull --rebase. If present, sets current working directory to ${options.folder}. If not, works in the cwd.
| Param | Description | | --- | --- | | options | object containing the field folder | | returns | a Promise with the complete child_process object result of the execution |
this.scmCheckout
Checks whether the ${options.repo} exists in ${options.folder} or not, and executes either a scmPull (if exists) or a scmClone (if not).
| Param | Description | | --- | --- | | options | object containing the fields repo and folder | | returns | a Promise with the complete child_process object result of the execution |
this.scmUpdate
Alias for scmPull.
this.scmAdd
Executes git add --all in the folder ${options.folder} (if not present, in the cwd).
| Param | Description | | --- | --- | | options | object containing the field folder | | returns | a Promise with the complete child_process object result of the execution |
this.scmCommit
Executes git commit -m ${options.message} in the folder ${options.folder} (if not present, in the cwd).
| Param | Description | | --- | --- | | options | object containing the fields message and folder | | returns | a Promise with the complete child_process object result of the execution |
this.scmPush
Executes git push -u origin ${options.branch} in the folder ${options.folder} (if not present, in the cwd). If ${options.branch} is not present, it will use the value master.
| Param | Description | | --- | --- | | options | object containing the fields branch and folder | | returns | a Promise with the complete child_process object result of the execution |
this.scmFetch
Executes git fetch -p in the folder ${options.folder} (if not present, in the cwd).
| Param | Description | | --- | --- | | options | object containing the fields branch and folder | | returns | a Promise with the complete child_process object result of the execution |
