Gitea/homepage/pipeline/head There was a failure building this commit
42 lines
1.5 KiB
Groovy
42 lines
1.5 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
environment {
|
|
REGISTRY = "docker-registry.service.consul"
|
|
IMAGE_NAME = "efstajas/homepage"
|
|
}
|
|
|
|
stages {
|
|
stage('Docker Build') {
|
|
steps {
|
|
script {
|
|
dockerImage = docker.build("$IMAGE_NAME")
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Docker Publish') {
|
|
steps {
|
|
script {
|
|
docker.withRegistry("http://$REGISTRY:4124") {
|
|
dockerImage.push("latest")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('Deploy to Nomad) {
|
|
// First, it should convert the local jobspec.hcl file to JSON. To do so, it must make a POST request to http://nomad.service.consul/v1/jobs/parse with content-type: application/json,
|
|
// content should be { "JobHCL": <job definition> }, where <job definition> is the content of the ./jobspec.hcl file
|
|
// The response will be a JSON object with a key "Job" containing the parsed job specification. The value of this key is the JSON representation of the job specification.
|
|
// The next step is to make a POST request to http://nomad.service.consul/v1/jobs with content-type: application/json and content should { "Job": <parsed job specification> }
|
|
steps {
|
|
script {
|
|
sh 'curl -X POST -H "Content-Type: application/json" -d "{ \"JobHCL\": \"$(cat jobspec.hcl)\" }" http://nomad.service.consul/v1/jobs/parse > parsed_job.json'
|
|
sh 'curl -X POST -H "Content-Type: application/json" -d "{ \"Job\": $(cat parsed_job.json) }" http://nomad.service.consul/v1/jobs'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|