diff --git a/.groovylintrc.json b/.groovylintrc.json new file mode 100644 index 0000000000000000000000000000000000000000..80e91ed612a9efd350b43ae1c1dc86f498f26f27 --- /dev/null +++ b/.groovylintrc.json @@ -0,0 +1,20 @@ +{ + "extends": "recommended", + "rules": { + "CompileStatic": { + "enabled": false + }, + "DuplicateStringLiteral": { + "enabled": false + }, + "LineLength": { + "enabled": false + }, + "MethodReturnTypeRequired": { + "enabled": false + }, + "NoDef": { + "enabled": false + } + } +} \ No newline at end of file diff --git a/dawn-cli/dev b/dawn-cli/dev index ef9ef92ce9be6f33f02c093649cd05e4be9fb79a..e9a4d1f782c4c751257c93e431b3070093b1eced 100644 --- a/dawn-cli/dev +++ b/dawn-cli/dev @@ -1,61 +1,58 @@ pipeline { - agent {label "node3"} - tools { + agent { label 'node3' } + tools { go 'go-1.16' - } - stages { - - stage('notify') { - steps { - script { - slack_send_start() - } - } } - - stage('build new dawn-cli') { - steps { - git branch: 'main', + stages { + stage('notify') { + steps { + script { + slack_send_start() + } + } + } + + stage('build new dawn-cli') { + steps { + git branch: 'main', credentialsId: 'tucker-gitlab-login', url: 'https://gitlab.cs.umd.edu/dawn/go-backend/dawn-cli' - sh """ - go build + sh ''' + go build sudo cp dawn-cli /usr/local/bin/dawn-cli - """ + ''' + } } - } - - stage('cleanup old images') { - steps { - sh ''' + stage('cleanup old images') { + steps { + sh ''' docker rmi $(docker images | grep "dawn/.*-test" | awk '{print $3}') --force || true docker rmi $(docker images | grep "<none>" | awk '{print $3}') --force || true ''' + } } - } - - stage('build new dawn-cli image') { - steps { - sh ''' + + stage('build new dawn-cli image') { + steps { + sh ''' docker build -t dawn/dawn-cli . ''' + } } } - - } - post { - success { - script { - slack_send_success() - } - } - failure { - script { - slack_send_failure() - } - } - } -} \ No newline at end of file + post { + success { + script { + slack_send_success() + } + } + failure { + script { + slack_send_failure() + } + } + } +} diff --git a/dawn-cli/staging b/dawn-cli/staging index aa3c5a5cfa32bdadf5a2d43f46e8a3048b3f5381..62636088e6a309c4278cc1ba9041b97b70171d66 100644 --- a/dawn-cli/staging +++ b/dawn-cli/staging @@ -1,61 +1,58 @@ pipeline { - agent {label "node2"} - tools { + agent { label 'node2' } + tools { go 'go-1.16' - } - stages { - - stage('build new dawn-cli') { - steps { - git branch: 'main', + } + stages { + stage('notify') { + steps { + script { + slack_send_start() + } + } + } + + stage('build new dawn-cli') { + steps { + git branch: 'main', credentialsId: 'tucker-gitlab-login', url: 'https://gitlab.cs.umd.edu/dawn/go-backend/dawn-cli' - sh """ - go build + sh ''' + go build sudo cp dawn-cli /usr/local/bin/dawn-cli - """ + ''' + } } - } - - stage('cleanup old images') { - steps { - sh ''' + stage('cleanup old images') { + steps { + sh ''' docker rmi $(docker images | grep "dawn/.*-test" | awk '{print $3}') --force || true docker rmi $(docker images | grep "<none>" | awk '{print $3}') --force || true ''' + } } - } - - // stage('cleanup old images') { - // steps { - // sh ''' - // docker image prune --filter "until=168h" --filter "label!=latest" || true - // ''' - // sh ''' - // docker rmi $(docker images | grep 'dev-test') || true - // ''' - // } - // } - - stage('build new dawn-cli image') { - steps { - sh ''' + stage('build new dawn-cli image') { + steps { + sh ''' docker build -t dawn/dawn-cli . ''' + } } } - - // stage('redeploy') { - // steps { - // sh """ - // dawn-cli deploy - // """ - // } - // } - - } -} \ No newline at end of file + post { + success { + script { + slack_send_success() + } + } + failure { + script { + slack_send_failure() + } + } + } +} diff --git a/dawn-client/dev b/dawn-client/dev index 076bb426c0426ccd0e226f0d963fb31552ddf0a2..539a8804646d77bff527cfeffe3fccf2c76924f2 100644 --- a/dawn-client/dev +++ b/dawn-client/dev @@ -1,36 +1,51 @@ pipeline { - agent {label "node3"} - tools {nodejs "node"} - stages { - - stage('build') { - steps { - sh """ + agent { label 'node3' } + tools { nodejs 'node' } + stages { + stage('notify') { + steps { + script { + slack_send_start() + } + } + } + stage('build') { + steps { + sh ''' npm i npm run build:dev - """ + ''' + } } - } - - stage('copy build') { - steps { - sh ''' + stage('copy build') { + steps { + sh ''' sudo rm -rf /var/www/dawn_dev/build sudo cp -r build /var/www/dawn_dev ''' + } } - } - - - stage('restart nginx') { - steps { - sh ''' + stage('restart nginx') { + steps { + sh ''' sudo service nginx restart ''' + } + } + } + + post { + success { + script { + slack_send_success() + } + } + failure { + script { + slack_send_failure() + } } } - - } -} \ No newline at end of file +} diff --git a/dawn-client/staging b/dawn-client/staging index ff9fc93a765888ea44ab0d5cab47947b7433c63e..215f9f946934afc273bb4be0cccfecf57366aac2 100644 --- a/dawn-client/staging +++ b/dawn-client/staging @@ -1,40 +1,56 @@ pipeline { - agent {label "node2"} - tools {nodejs "node"} - stages { - - stage('build') { - steps { - git branch: 'staging', + agent { label 'node2' } + tools { nodejs 'node' } + stages { + stage('notify') { + steps { + script { + slack_send_start() + } + } + } + + stage('build') { + steps { + git branch: 'staging', credentialsId: 'tucker-gitlab-login', url: 'https://gitlab.cs.umd.edu/dawn/dawn-client' - sh """ + sh ''' npm i npm run build:staging - """ + ''' + } } - } - - stage('copy build') { - steps { - sh ''' + stage('copy build') { + steps { + sh ''' sudo rm -rf /var/www/dawn_staging/build sudo cp -r build /var/www/dawn_staging/build ''' + } } - } - - - stage('restart nginx') { - steps { - sh ''' + stage('restart nginx') { + steps { + sh ''' sudo service nginx restart ''' + } + } + } + + post { + success { + script { + slack_send_success() + } + } + failure { + script { + slack_send_failure() + } } } - - } -} \ No newline at end of file +} diff --git a/dawn-manager/dev b/dawn-manager/dev index e5993cf58f8cf30aef740ac15a553d58116d81dc..23a213a9a2b829651a5e595d8d4fcc452615c88c 100644 --- a/dawn-manager/dev +++ b/dawn-manager/dev @@ -1,41 +1,57 @@ pipeline { - agent {label "master"} - tools {nodejs "node"} - stages { - - stage('build') { - steps { - git branch: 'main', + agent { label 'master' } + tools { nodejs 'node' } + stages { + stage('notify') { + steps { + script { + slack_send_start() + } + } + } + + stage('build') { + steps { + git branch: 'main', credentialsId: 'tucker-gitlab-login', - url: "https://gitlab.cs.umd.edu/dawn/go-backend/dawn-manager.git" + url: 'https://gitlab.cs.umd.edu/dawn/go-backend/dawn-manager.git' - sh """ + sh ''' npm i npm run build - """ + ''' + } } - } - - stage('copy build') { - steps { - sh ''' + stage('copy build') { + steps { + sh ''' sudo rm -rf /var/www/dawn_dev/_admin sudo mkdir /var/www/dawn_dev/_admin sudo cp -r build/* /var/www/dawn_dev/_admin ''' + } } - } - - - stage('restart nginx') { - steps { - sh ''' + stage('restart nginx') { + steps { + sh ''' sudo service nginx restart ''' + } + } + } + + post { + success { + script { + slack_send_success() + } + } + failure { + script { + slack_send_failure() + } } } - - } } diff --git a/dawn-manager/staging b/dawn-manager/staging index 6c538462a923f6ec753c28351aee2c22c909b455..9b0fab47144d93b8137832df8468d136bf80c904 100644 --- a/dawn-manager/staging +++ b/dawn-manager/staging @@ -1,41 +1,57 @@ pipeline { - agent {label "node2"} - tools {nodejs "node"} - stages { - - stage('build') { - steps { - git branch: 'main', + agent { label 'node2' } + tools { nodejs 'node' } + stages { + stage('notify') { + steps { + script { + slack_send_start() + } + } + } + + stage('build') { + steps { + git branch: 'main', credentialsId: 'tucker-gitlab-login', - url: "https://gitlab.cs.umd.edu/dawn/go-backend/dawn-manager.git" + url: 'https://gitlab.cs.umd.edu/dawn/go-backend/dawn-manager.git' - sh """ + sh ''' npm i npm run build-staging - """ + ''' + } } - } - - stage('copy build') { - steps { - sh ''' + stage('copy build') { + steps { + sh ''' sudo rm -rf /var/www/dawn_staging/_admin sudo mkdir /var/www/dawn_staging/_admin sudo cp -r build/* /var/www/dawn_staging/_admin ''' + } } - } - - - stage('restart nginx') { - steps { - sh ''' + stage('restart nginx') { + steps { + sh ''' sudo service nginx restart ''' + } + } + } + + post { + success { + script { + slack_send_success() + } + } + failure { + script { + slack_send_failure() + } } } - - } } diff --git a/vars/backendDevServicePipeline.groovy b/vars/backendDevServicePipeline.groovy index 9ee438d4b224442ee6cd3c1ea806e8d30a745847..0b18fa0790c2f7d1100949eb948ed1afcd3e2d04 100644 --- a/vars/backendDevServicePipeline.groovy +++ b/vars/backendDevServicePipeline.groovy @@ -1,61 +1,81 @@ def call(String serviceName) { - pipeline { - agent { - node { - label "node3" - customWorkspace "${serviceName}" - } - } - tools { - go 'go-1.16' - } - stages { - stage('test') { - steps { - sh """ + pipeline { + agent { + node { + label 'node3' + customWorkspace "${serviceName}" + } + } + tools { + go 'go-1.16' + } + stages { + stage('notify') { + steps { + script { + slack_send_start() + } + } + } + stage('test') { + steps { + sh ''' dawn-cli test - """ - } - } + ''' + } + } - stage('build') { - steps { - sh """ + stage('build') { + steps { + sh ''' dawn-cli build-image -p . -e dev - """ - } - } + ''' + } + } - stage('update backend services') { - steps { - sh ''' + 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-staging.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} -e dev" - } - } + sh "dawn-cli update -s ${serviceName} -e dev" + } + } - stage('cleanup') { - steps { - sh ''' + 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 + // } + // } + } + + post { + success { + script { + slack_send_success() + } + } + failure { + script { + slack_send_failure() + } } } - } -// 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 diff --git a/vars/backendStagingServicePipeline.groovy b/vars/backendStagingServicePipeline.groovy index 62517b919b47e90e508cc695e726651b7845ff29..ce1302e4fea8ad21d32c60c03ddc2925e18457b3 100644 --- a/vars/backendStagingServicePipeline.groovy +++ b/vars/backendStagingServicePipeline.groovy @@ -1,69 +1,88 @@ def call(String repo, String branch, String serviceName) { pipeline { - agent { label 'node2' } - tools { - go 'go-1.16' - } - options { - buildDiscarder logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '5', daysToKeepStr: '', numToKeepStr: '5') - } - stages { - - stage('checkout') { - steps { - git branch: branch, + agent { label 'node2' } + tools { + go 'go-1.16' + } + options { + buildDiscarder logRotator(artifactDaysToKeepStr: '', artifactNumToKeepStr: '5', daysToKeepStr: '', numToKeepStr: '5') + } + stages { + stage('checkout') { + steps { + git branch: branch, credentialsId: 'tucker-gitlab-login', url: repo - } - } - - stage('test') { - steps { - sh """ + } + } + + stage('notify') { + steps { + script { + slack_send_start() + } + } + } + + stage('test') { + steps { + sh ''' dawn-cli test - """ - } - } + ''' + } + } - stage('build') { - steps { - sh """ + stage('build') { + steps { + sh ''' dawn-cli build-image -p . -e staging - """ - } - } + ''' + } + } - stage('update backend services') { - steps { - sh ''' + 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-staging.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} -e staging -d dawn-server" - } - } + sh "dawn-cli update -s ${serviceName} -e staging -d dawn-server" + } + } - stage('cleanup') { - steps { - sh ''' + 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 + // } + // } } - } - // 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 - // } - // } + post { + success { + script { + slack_send_success() + } + } + failure { + script { + slack_send_failure() + } + } + } } -} \ No newline at end of file diff --git a/vars/slack_send_failure.groovy b/vars/slack_send_failure.groovy index d6720b8675d06f969bc427d20b53242a21da1112..a63b09ddf06f596eff4748399cd9fdf74f3e69e8 100644 --- a/vars/slack_send_failure.groovy +++ b/vars/slack_send_failure.groovy @@ -1,4 +1,3 @@ def call() { - BUILD_TRIGGERED_BY = "${currentBuild.getBuildCauses()[0].shortDescription} / ${currentBuild.getBuildCauses()[0].userId}" slackSend(channel: "ci", color: "danger", message: "${JOB_NAME}-#${BUILD_NUMBER}-${GIT_BRANCH} failed after ${currentBuild.durationString} (<${BUILD_URL}|Open>)") } diff --git a/vars/slack_send_start.groovy b/vars/slack_send_start.groovy index 2343a184c8bab4bb5333bb9f3bc1bd67a38d28b9..baf9322a3cee236c22e1be27c8520aefb20e1840 100644 --- a/vars/slack_send_start.groovy +++ b/vars/slack_send_start.groovy @@ -1,4 +1,4 @@ def call() { - BUILD_TRIGGERED_BY = "${currentBuild.getBuildCauses()[0].shortDescription} / ${currentBuild.getBuildCauses()[0].userId}" + BUILD_TRIGGERED_BY = "${currentBuild.getBuildCauses()[0].userId}" slackSend(channel: "ci", message: "${JOB_NAME}-#${BUILD_NUMBER}-${GIT_BRANCH} triggered by ${BUILD_TRIGGERED_BY} (<${BUILD_URL}|Open>)") } diff --git a/vars/slack_send_success.groovy b/vars/slack_send_success.groovy index 26927b013a6c405634d7323c756240e346495790..9240fd1a6d8af42048b460e01807f2e28b0dcb5b 100644 --- a/vars/slack_send_success.groovy +++ b/vars/slack_send_success.groovy @@ -1,4 +1,3 @@ def call() { - BUILD_TRIGGERED_BY = "${currentBuild.getBuildCauses()[0].shortDescription} / ${currentBuild.getBuildCauses()[0].userId}" slackSend(channel: "ci", color: "good", message: "${JOB_NAME}-#${BUILD_NUMBER}-${GIT_BRANCH} success after ${currentBuild.durationString} (<${BUILD_URL}|Open>)") }