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  }