Difference between revisions of "Continuous Integration: Actions Jenkins Pipeline"
Manuele.simi (Talk | contribs) (→gCubeActions Pipeline Project) |
Manuele.simi (Talk | contribs) (→How does it work) |
||
Line 17: | Line 17: | ||
== How does it work == | == How does it work == | ||
Given the parameters, the pipeline performs the following steps: | Given the parameters, the pipeline performs the following steps: | ||
+ | |||
1. clones one repository at the time from <code>Git Root/Repo Name</code> | 1. clones one repository at the time from <code>Git Root/Repo Name</code> | ||
Line 27: | Line 28: | ||
Every change to the Git repository **MUST** be done by the action file. The pipeline is in charge only | Every change to the Git repository **MUST** be done by the action file. The pipeline is in charge only | ||
to push the repository to the remote origin. | to push the repository to the remote origin. | ||
− | |||
== Triggers == | == Triggers == |
Revision as of 03:54, 26 January 2021
Contents
gCubeActions Pipeline Project
A pipeline to execute configurable actions over a list of Git repositories.
The pipeline project is available at: https://jenkins.d4science.org/job/Pipeline-gCubeActions/
Parameters
- Git Root: The URL of the parent organization that includes all the listed repositories.
- List of Repositories: A plain text file, one line for each Git repository name to update.
- Action Root: The root URL of the Bash fragment to execute.
- Action File: The relative path under the Action Root of a script to execute.
Example:
How does it work
Given the parameters, the pipeline performs the following steps:
1. clones one repository at the time from Git Root/Repo Name
2. downloads the action file from Action Root/Action File
in the root folder of the repository
3. runs the action file using the root folder of the repository as working dir
4. pushes the repository back to Gitea
Every change to the Git repository **MUST** be done by the action file. The pipeline is in charge only to push the repository to the remote origin.
Triggers
No triggers are defined because the pipeline is expected to be manually launched by the Release Manager.
Jenkins Pipeline Definition
Git Repository
The definition of the gCube release pipeline is maintained in this Git Repository: ...
Requirements on Jenkins
- Jenkins ver. 2.164.2 or newer
- Pipeline Plugin
- Pipeline: Basic Steps
- Pipeline: Maven
- Pipeline: SCM Step plugin ver. 2.7 or newer
- Pipeline: Shared Groovy Libraries ver. 2.15 or newer
- User credentials configured on Jenkins. These are needed to set the author of the changes in the repositories. git.gcube is currently used
Jenkins Pipeline Execution
Action Report
If the pipeline execution succeeds, it sends a report to the release manager.
The report includes the following information for each Git repository where the action was executed:
- repo name
- SCM url
- result (completed or failed)
Here's an example of a tag report:
Back to the CI guide.