-
Notifications
You must be signed in to change notification settings - Fork 34
Jenkinsfile
Jenkins Pipeline is a suite of plugins which supports implementing and integrating continuous delivery pipelines into Jenkins. Pipeline provides an extensible set of tools for modeling simple-to-complex delivery pipelines "as code" via the Pipeline DSL.[1]
###Jenkinsfile structure and description
Build process, stored in Jenkinsfile comprises steps (stages):
Build management deb/template comprises the steps:
- checkout code from scm repository
- declaration and set values to variables
- use maven to build deb file
- use local (on host system) RH to create template
Update management on test node:
To improve stability we are running Integration Tests on built artifacts. Tests will run only for dev and hotfix-* (* any branch with this prefix) branches.
Comprises the steps:
- Check name of current branch
- Cleanup Test Node - destroy all existing containers, install latest version of PeerOS
- Copy the previously built template to test-node
- Install copied template
- Wait for Subutai Social Web Console ready and run Integration Tests
- Copy tests results to shared (via web) directory to provide access to them.
Deploy artifacts on kurjun:
Deploy deb and template to cdn is performed only for dev and master branches.
- Get id of current file in cdn
- Upload new file
- Delete old from cdn.
###Other components:
notifyBuild - Providing functionality to send message in Slack.
On each step (stage) variable notifyBuildDetails contain text to be added to the slack message.
getSlackToken - Function to get slack auth token from Jenkins Credentials Store.
###Additional Jenkins settings:
- Slack token should be stored in Jenkins Credentials Store:
Kind: Secret text
ID: ss-bots-slack-token
Secter: your_slack_token - Configure Maven:
Open Manage Jenkins -> Global Tool Configuration -> Maven installations -> Add Maven:
Name: M3
MAVEN_HOME: path to Maven3 home dir - Configure IP of Test Node:
Open Manage Jenkins -> Configure System -> Environment variables: Name: SS_TEST_NODE
Value: IP of test node - If you're launch is built on new node, you will see errors like "Scripts not permitted to use new ":
Open http://jenkins.domain/scriptApproval/ page and approve denied methods
User Guides
Glossary
Components
How it works
Configure domain for environment
Create Templates from CLI
Create Templates from Console
Environment management via Bazaar and Console
EZ Desktop solution for Subutai containers
[Linux] Adding domain name to etc hosts
[Windows] Adding domain name to etc hosts