- #!/usr/bin/env groovy
- pipeline {
- agent any
- options {
- disableConcurrentBuilds()
- withAWS(credentials:'jenkins-aws')
- }
- stages {
- stage ('Build & push') {
- steps {
- configFileProvider([
- configFile(fileId: "$BRANCH_NAME-config", targetLocation: '.env')
- ]) {
- sh '''
- set +x
- . ./.env
- $(aws ecr get-login --no-include-email --region us-west-2)
- set -x
- docker build -t $DOCKER_REGISTRY/app:$BRANCH_NAME .
- docker push $DOCKER_REGISTRY/app:$BRANCH_NAME
- '''
- }
- }
- }
- stage('Deploy') {
- steps {
- sshagent(credentials: ["deploy-dayjob"]) {
- sh '''
- echo "BRANCH_NAME=$BRANCH_NAME" >> .env
- set +x
- . ./.env
- set -x
- scp .env $DEPLOY_USER@$DEPLOY_URL:$BRANCH_NAME
- scp docker-compose.production.yml $DEPLOY_USER@$DEPLOY_URL:$BRANCH_NAME/docker-compose.yml
- scp run.sh $DEPLOY_USER@$DEPLOY_URL:$BRANCH_NAME/run.sh
- export LC_DEPLOY_PATH=$BRANCH_NAME
- ssh -o SendEnv=LC_DEPLOY_PATH -x $DEPLOY_USER@$DEPLOY_URL '
- cd $LC_DEPLOY_PATH
- set +x
- . ./.env
- $(aws ecr get-login --no-include-email --region us-west-2)
- set -x
- docker-compose pull
- docker-compose up -d --build --force-recreate --remove-orphans
- sh run.sh update
- '
- '''
- }
- }
- }
- }
- }
Raw Paste