diff --git a/pipelines/Cloud/Apps-Backend/cloud-messenger-core-api.groovy b/pipelines/Cloud/Apps-Backend/cloud-messenger-core-api.groovy index 0baf870..9ffb6dc 100644 --- a/pipelines/Cloud/Apps-Backend/cloud-messenger-core-api.groovy +++ b/pipelines/Cloud/Apps-Backend/cloud-messenger-core-api.groovy @@ -3,15 +3,26 @@ import tech.avroid.kube.PodTemplates import tech.avroid.scm.Git +properties([ + buildDiscarder(logRotator(artifactDaysToKeepStr: '', + artifactNumToKeepStr: '30', + daysToKeepStr: '', + numToKeepStr: '30')), + disableConcurrentBuilds() +]) + Git git = new Git(this, env.JENKINS_GIT_CREDENTIALS_SSH) String repoPath = 'Apps-Backend/cloud-messenger-core-api.git' -String ciUser = 'robot\$\$ci' String publishBranch = 'develop' +String dockerGroup = 'cloud' +String dockerProject = 'cloud-messenger-core-api' +String projectSettingFile = 'pyproject.toml' +Map gitVars = [:] Map configuration = [ - vaultUrl: 'https://vault.avroid.tech', - vaultCredentialId: 'vault-role', + vaultUrl: env.JENKINS_VAULT_URL, + vaultCredentialId: env.JENKINS_VAULT_TOKEN, engineVersion: 2 ] @@ -19,7 +30,7 @@ List dockerCreds = [ [path: 'team-devops/services/registry/Harbor/harbor.avroid.tech', engineVersion: 2, secretValues: [ - [vaultKey: 'service.user.ci.login'], + [vaultKey: 'service.user.jenkins.ci.login'], [vaultKey: 'service.user.ci.token'], ] ] @@ -33,8 +44,8 @@ slaveTemplates.jnlp { node(POD_LABEL){ stage('Download sources') { - git.clone([urlRepo: "${env.JENKINS_GIT_REPOSITORY_SSH_URL}/${repoPath}", - branch: git.getBranch()]) + gitVars = git.clone([urlRepo: "${env.JENKINS_GIT_REPOSITORY_SSH_URL}/${repoPath}", + branch: git.getBranch()]) } stage('prepare app'){ @@ -44,28 +55,28 @@ slaveTemplates.jnlp { } withVault([configuration: configuration, vaultSecrets: dockerCreds]) { + String ciUser = getProperty('service.user.jenkins.ci.login') String dockerToken = getProperty('service.user.ci.token') - String makeArgs = " DOCKER_REGISTRY='${env.JENKINS_DOCKER_REGISTRY}'" + - " DOCKER_REGISTRY_USER='${ciUser}'" + - " DOCKER_REGISTRY_PASSWORD='${dockerToken}'" container('docker'){ + Map props = readTOML file: projectSettingFile + + String version = props.tool.poetry.version + String imageName = "${env.JENKINS_DOCKER_REGISTRY}/" + + "${dockerGroup}/${dockerProject}:${version}-${gitVars.GIT_COMMIT.take(5)}" + stage('build image'){ - sh """#!/bin/sh - apk add make - make build-image ${makeArgs} - """ + sh """#!/bin/sh + docker build --build-arg PIP_INDEX_URL=${env.JENKINS_PIP_INDEX_URL} \ + -f Dockerfile -t ${imageName} . + """ } stage('push image'){ - sh """#!/bin/sh - apk add make - make build-image ${makeArgs} - """ - if (git.getBranch() == publishBranch){ sh """#!/bin/sh - make push-image ${makeArgs} + docker login -u ${ciUser} -p '${dockerToken}' ${env.JENKINS_DOCKER_REGISTRY} + docker push ${imageName} """ } }