|
/**
|
|
* Functionally tests pipelinelib by retrieving the patchset referenced by
|
|
* `scm` and importing the library into the current context before making some
|
|
* basic assertions about its methods behaviors. Note that the Jenkins job
|
|
* that runs this Jenkinsfile must already define `scm` with the correct Zuul
|
|
* parameters.
|
|
*/
|
|
def plib = library(identifier: 'pipelinelib@FETCH_HEAD', retriever: legacySCM(scm)).org.wikimedia.integration
|
|
def prunner = plib.PipelineRunner.new(this)
|
|
def imageID
|
|
|
|
node('blubber') {
|
|
def blubberoidURL = "https://blubberoid.wikimedia.org/v1/"
|
|
|
|
stage('Checkout SCM') {
|
|
def patchset = plib.PatchSet.fromZuul(params)
|
|
checkout(patchset.getSCM())
|
|
}
|
|
|
|
stage('Generate Dockerfile') {
|
|
def blubber = plib.Blubber.new(this, '.pipeline/blubber.yaml', blubberoidURL)
|
|
def dockerfile = blubber.generateDockerfile("test")
|
|
|
|
echo 'Checking that Dockerfile was correctly generated'
|
|
assert dockerfile.contains('LABEL blubber.variant="test"')
|
|
}
|
|
|
|
stage('Build test image') {
|
|
imageID = prunner.build('test')
|
|
echo 'Successfully built image "${imageID}" from "test" variant'
|
|
}
|
|
|
|
stage('Remove test image') {
|
|
prunner.removeImage(imageID)
|
|
echo 'Removed test image "${imageID}"'
|
|
}
|
|
}
|