GROOVY   95
Jenkinsfile
Guest on 21st September 2022 02:11:17 PM


  1. #!/usr/bin/env groovy
  2.  
  3. pipeline {
  4.   agent any
  5.  
  6.   options {
  7.     disableConcurrentBuilds()
  8.     withAWS(credentials:'jenkins-aws')
  9.   }
  10.  
  11.   stages {
  12.     stage ('Build & push') {
  13.       steps {
  14.         configFileProvider([
  15.           configFile(fileId: "$BRANCH_NAME-config", targetLocation: '.env')
  16.         ]) {
  17.           sh '''
  18.            set +x
  19.            . ./.env
  20.            $(aws ecr get-login --no-include-email --region us-west-2)
  21.            set -x
  22.            docker build -t $DOCKER_REGISTRY/app:$BRANCH_NAME .
  23.            docker push $DOCKER_REGISTRY/app:$BRANCH_NAME
  24.          '''
  25.         }
  26.       }
  27.     }
  28.     stage('Deploy') {
  29.       steps {
  30.         sshagent(credentials: ["deploy-dayjob"]) {
  31.           sh '''
  32.              echo "BRANCH_NAME=$BRANCH_NAME" >> .env
  33.              set +x
  34.              . ./.env
  35.              set -x
  36.              scp .env $DEPLOY_USER@$DEPLOY_URL:$BRANCH_NAME
  37.              scp docker-compose.production.yml $DEPLOY_USER@$DEPLOY_URL:$BRANCH_NAME/docker-compose.yml
  38.              scp run.sh $DEPLOY_USER@$DEPLOY_URL:$BRANCH_NAME/run.sh
  39.              export LC_DEPLOY_PATH=$BRANCH_NAME
  40.              ssh -o SendEnv=LC_DEPLOY_PATH -x $DEPLOY_USER@$DEPLOY_URL '
  41.                cd $LC_DEPLOY_PATH
  42.                set +x
  43.                . ./.env
  44.                $(aws ecr get-login --no-include-email --region us-west-2)
  45.                set -x
  46.                docker-compose pull
  47.                docker-compose up -d --build --force-recreate --remove-orphans
  48.                sh run.sh update
  49.              '
  50.          '''
  51.         }
  52.       }
  53.     }
  54.   }
  55. }

Raw Paste

Login or Register to edit or fork this paste. It's free.