PCM Development/Build Infrastructure/Build Pipeline

Aus SDQ-Wiki
Zur Navigation springen Zur Suche springen

Build pipeline

  • we are using Jenkins build pipeline support to automatically configure the build server
  • Jenkins management: use Multibranch Pipeline
  • Jenkins file (= script) must be added to each project root to automatically create build job on build server (presence of new files will be checked periodically)
  • Modulare Pipeline library (MPL)
    • shared library, to describe pipeline as skeleton for each stage and provide hooks to plugin your own modules (documentation ref. MPL
    • we use this library to write our own pipeline skeleton
  • Global dependencies of a build job are defined by a Jenkins template

Jenkins pipeline

  • Our Jenkins pipeline includes the following stages
    • Prepare
    • Checkout: src checkout
    • Build: usually runs mvn clean verify
    • Archive: copies Java doc
    • Quality Metrics: evaluates code coverage + checkstyle results
    • Deploy: opens ssh connection and deploys artefacts to webserver
    • Declarative: Post Actions

Jenkins file

  • documentation: [1]

MDSDTools-MPL

Palladio-Build-JenkinsPipeline

  • specialization of MDSDTools pipeline
  • folder \vars contains all Groovy scripts that will be directly called by stages of pipeline
  • script PalladioPipeline: entry point

Build-JenkinsLibrary

  • contains all Groovy scripts that are called from Palladio-Build-JenkinsPipeline.PalladioPipeline script
  • AbstractMDSDToolsPipeline:
    • defines the available stages of our pipeline
    • called from MDSD tools pipeline
  • AbstractMDSDToolsDSLPipeline
  • MDSDToolsDSL
    • methodMissing contains all logic
    • automatically called by Groovy if you call a non-existing method on an object
    • splits the incoming method names into tokens (argument: name, args: params of method)
    • builds a string:value map (e.g. cfg.mavenSettingsId: 'xyc')