Skip to content

Jenkinsfile

MarilizaC edited this page Jun 16, 2018 · 6 revisions

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
Clone this wiki locally