diff --git a/vars/backendServicePipeline.groovy b/vars/backendServicePipeline.groovy index e0dba6e3c7ff85d03d6e482a3d81fded25f88e08..581554d5a5a9aaba028281168c9898401dbb4630 100644 --- a/vars/backendServicePipeline.groovy +++ b/vars/backendServicePipeline.groovy @@ -1,6 +1,6 @@ def call(String repo, String branch, String serviceName) { pipeline { - agent any + agent { label 'master' } tools { go 'go-1.16' } diff --git a/vars/backendTestServicePipeline.groovy b/vars/backendTestServicePipeline.groovy new file mode 100644 index 0000000000000000000000000000000000000000..eef28313c0f7b70d3becbbfd603a284a69b35a33 --- /dev/null +++ b/vars/backendTestServicePipeline.groovy @@ -0,0 +1,76 @@ +def call(String repo, String branch, String serviceName) { + pipeline { + agent { label 'node2' } + parameters { + string{ + name: "BRANCH_NAME", + defaultValue: "", + description: "Branch to use" + } + } + tools { + go 'go-1.16' + } + options { + buildDiscarder logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '5', daysToKeepStr: '', numToKeepStr: '5') + } + stages { + + stage('checkout') { + steps { + git branch: "${BRANCH_NAME}", + credentialsId: 'tucker-gitlab-login', + url: repo + } + } + + stage('test') { + steps { + sh """ + dawn-cli test + """ + } + } + + stage('build') { + steps { + sh """ + dawn-cli build-image -p . + """ + } + } + + stage('update backend services') { + steps { + sh ''' + curl -o docker-compose-dev.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/docker-compose-dev.yml/raw?ref=main" + curl -o shared-compose.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/shread-compose.yml/raw?ref=main" + curl -o prometheus.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/prometheus.yml/raw?ref=main" + curl -o prometheus.rules.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/prometheus.rules.yml/raw?ref=main" + curl -o rabbitmq.conf --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/rabbitmq.conf/raw?ref=main" + + mkdir elk_config || true + curl -o logstash-compose.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/logstash-compose.conf/raw?ref=main" + curl -o elk_config/elasticsearch.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/elk_config%2Felasticsearch.yml/raw?ref=main" + curl -o elk_config/filebeat.yml --header "PRIVATE-TOKEN: y2FHtFXMC8X13onnEfiE" "https://gitlab.cs.umd.edu/api/v4/projects/16574/repository/files/elk_config%2Ffilebeat.yml/raw?ref=main" + ''' + sh "dawn-cli update -s ${serviceName}" + } + } + + stage('cleanup') { + steps { + sh ''' + docker rmi $(docker images | grep "dawn/.*-test" | awk '{print $3}') --force || true + ''' + } + } + + } + post { + always { + cobertura autoUpdateHealth: false, autoUpdateStability: false, coberturaReportFile: '**/coverage.xml', enableNewApi: true, failUnhealthy: false, failUnstable: false, lineCoverageTargets: '80, 40, 60', maxNumberOfBuilds: 0, onlyStable: false, sourceEncoding: 'ASCII', zoomCoverageChart: false + } + } +} +} \ No newline at end of file