github.com/ouraigua/jenkins-library@v0.0.0-20231028010029-fbeaf2f3aa9b/src/com/sap/piper/versioning/ArtifactVersioning.groovy (about)

     1  package com.sap.piper.versioning
     2  
     3  abstract class ArtifactVersioning implements Serializable {
     4  
     5      final protected script
     6      final protected Map configuration
     7  
     8      protected ArtifactVersioning(script, configuration) {
     9          this.script = script
    10          this.configuration = configuration
    11      }
    12  
    13      public static getArtifactVersioning(buildTool, script, configuration) {
    14          switch (buildTool) {
    15              case 'dub':
    16                  return new DubArtifactVersioning(script, configuration)
    17              case 'docker':
    18                  return new DockerArtifactVersioning(script, configuration)
    19              case 'golang':
    20                  return new GolangArtifactVersioning(script, configuration)
    21              case 'maven':
    22                  return new MavenArtifactVersioning(script, configuration)
    23              case 'mta':
    24                  return new MtaArtifactVersioning(script, configuration)
    25              case 'npm':
    26                  return new NpmArtifactVersioning(script, configuration)
    27              case 'pip':
    28                  return new PipArtifactVersioning(script, configuration)
    29              case 'sbt':
    30                  return new SbtArtifactVersioning(script, configuration)
    31              default:
    32                  throw new IllegalArgumentException("No versioning implementation for buildTool: ${buildTool} available.")
    33          }
    34      }
    35  
    36      abstract setVersion(version)
    37      abstract getVersion()
    38  
    39      protected echo(msg){
    40          script.echo("[${this.getClass().getSimpleName()}] ${msg}")
    41      }
    42  }