You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

37 lines
1.2 KiB

/**
* 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}"'
}
}