github.com/DapperCollectives/CAST/backend@v0.0.0-20230921221157-1350c8be7c96/Jenkinsfile (about) 1 pipeline { 2 agent { 3 kubernetes { 4 defaultContainer 'jnlp' 5 yaml """ 6 apiVersion: v1 7 kind: Pod 8 metadata: 9 labels: 10 name: agentes 11 spec: 12 # Use service account that can deploy to all namespaces 13 serviceAccountName: jenkins 14 containers: 15 - name: jenksgolang 16 image: mjslabs/jenkins-jnlp-golang 17 command: 18 - cat 19 tty: true 20 - name: brudbuntu 21 image: bam.brud.local:6000/brudtech/brudbuntu:v1.3 22 command: 23 - cat 24 tty: true 25 volumeMounts: 26 - mountPath: /var/run/docker.sock 27 name: docker-sock 28 - name: brudbuntu-builder 29 image: bam.brud.local:6000/brudtech/brudbuntu-builder:v1.0 30 command: 31 - cat 32 tty: true 33 volumeMounts: 34 - mountPath: /var/run/docker.sock 35 name: docker-sock 36 volumes: 37 - name: docker-sock 38 hostPath: 39 path: /var/run/docker.sock 40 """ 41 } 42 } 43 environment { 44 DB_USERNAME = credentials('db-un-voting-db') 45 DB_PASSWORD = credentials('db-userp-voting') 46 IPFS_KEY = credentials('db-ipfskey-voting') 47 IPFS_SECRET = credentials('ipfs-secrets-voting') 48 FLOW_URL = credentials('db-flowurl-voting') 49 tag = sh(returnStdout: true, script: "git rev-parse --short=10 HEAD").trim() 50 longtag = sh(returnStdout: true, script: "git rev-parse HEAD").trim() 51 } 52 53 //-------------------------------------------------------------------------------------------------------------------------------- 54 // TEST 55 //-------------------------------------------------------------------------------------------------------------------------------- 56 stages { 57 stage('SIMPLE TEST') { 58 steps { 59 container('jenksgolang') { 60 script { 61 sh 'echo "you will need to run go test -v ./..."' 62 } 63 } 64 } 65 } 66 67 //-------------------------------------------------------------------------------------------------------------------------------- 68 // BUILD IMAGE 69 //-------------------------------------------------------------------------------------------------------------------------------- 70 71 stage('BUILD IMAGE') { 72 steps { 73 container('brudbuntu-builder') { 74 script { 75 echo "building the docker image for Voting Tool..." 76 sh 'docker build . -t bam.brud.local:6000/brudtech/flow-voting-tool-backend:${tag}-vt' 77 sh 'docker push bam.brud.local:6000/brudtech/flow-voting-tool-backend:${tag}-vt' 78 } 79 } 80 } 81 } 82 //-------------------------------------------------------------------------------------------------------------------------------- 83 // CREATE DEVELOP ENVIRONMENT 84 //-------------------------------------------------------------------------------------------------------------------------------- 85 stage('BUILDING BACKEND IMAGES') { 86 steps { 87 container('brudbuntu') { 88 script { 89 sh 'mkdir ${tag}' 90 sh 'cp deploy/secrets.yml ${tag} -v' 91 sh 'cp deploy/backend.yml ${tag} -v' 92 sh 'sed -i "s/REPLACE_NAMESPACE/develop/g" ${tag}/backend.yml' 93 sh 'sed -i "s/REPLACE_TAG/${tag}-vt/g" ${tag}/backend.yml' 94 sh 'sed -i "s/REPLACE_HOST/${tag}/g" ${tag}/backend.yml' 95 sh 'sed -i "s/REPLACE_SECRET_NAME/develop-secrets/g" ${tag}/backend.yml' 96 sh 'sed -i "s/REPLACE_NAMESPACE/develop/g" ${tag}/secrets.yml' 97 sh 'sed -i "s/REPLACE_SECRET_NAME/develop-secrets/g" ${tag}/secrets.yml' 98 sh 'sed -i "s/REPLACE_DB_USERNAME/${DB_USERNAME}/g" ${tag}/secrets.yml' 99 sh 'sed -i "s/REPLACE_PASSWORD/${DB_PASSWORD}/g" ${tag}/secrets.yml' 100 sh 'sed -i "s/REPLACE_IPFS_KEY/${IPFS_KEY}/g" ${tag}/secrets.yml' 101 sh 'sed -i "s/REPLACE_IPFS_SECRET/${IPFS_SECRET}/g" ${tag}/secrets.yml' 102 sh 'sed -i "s/REPLACE_FLOW_URL/${FLOW_URL}/g" ${tag}/secrets.yml' 103 sh 'kubectl apply -n develop -f ./${tag}' 104 sh 'kubectl get all -n develop' 105 } 106 } 107 } 108 } 109 110 111 } 112 }