diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..3ae0177 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +Jenkinsfile +README.md +build diff --git a/Dockerfile b/Dockerfile index 1408cc1..421379d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,8 +14,9 @@ FROM debian:12.5-slim LABEL maintainer="richard@status.im" LABEL source="https://github.com/waku-org/storenode-messages" LABEL description="Storenode message count verifier" +LABEL commit="unknown" COPY --from=builder /go/src/github.com/waku-org/storenode-messages/build/storemsgcounter /usr/local/bin/storemsgcounter ENTRYPOINT ["/usr/local/bin/storemsgcounter"] -CMD ["-help"] \ No newline at end of file +CMD ["-help"] diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..8b73850 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,54 @@ +#!/usr/bin/env groovy +pipeline { + agent { label 'linux' } + + parameters { + string( + name: 'IMAGE_TAG', + defaultValue: params.IMAGE_TAG ?: 'latest', + description: 'Optional Docker image tag to push.' + ) + } + + options { + disableConcurrentBuilds() + /* manage how many builds we keep */ + buildDiscarder(logRotator( + numToKeepStr: '20', + daysToKeepStr: '30', + )) + } + + environment { + DOCKER_REGISTRY = 'harbor.status.im' + IMAGE_NAME = 'wakuorg/storenode-messages-counter' + IMAGE_DEFAULT_TAG = "${env.GIT_COMMIT.take(8)}" + } + + stages { + stage('Build') { + steps { script { + image = docker.build( + "${DOCKER_REGISTRY}/${IMAGE_NAME}:${IMAGE_DEFAULT_TAG}", + "--build-arg='commit=${GIT_COMMIT}' .", + ) + } } + } + + stage('Deploy') { + when { expression { params.IMAGE_TAG != '' } } + steps { script { + withDockerRegistry([ + credentialsId: 'harbor-telemetry-robot', + url: 'https://${DOCKER_REGISTRY}', + ]) { + image.push(params.IMAGE_TAG) + } + } } + } + } + + post { + cleanup { cleanWs() } + } +}