Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save BrutalSimplicity/eff9fcc5e2de652683aa3cb3e87e8bf4 to your computer and use it in GitHub Desktop.
Save BrutalSimplicity/eff9fcc5e2de652683aa3cb3e87e8bf4 to your computer and use it in GitHub Desktop.
Multi-Stage Deployment via Jenkins
stage('QA Deployment') {
environment {
AWS_ACCESS_KEY_ID = credentials('Dev_Access')
AWS_SECRET_ACCESS_KEY = credentials('Dev_Secret')
}
when {
beforeAgent true
branch 'develop'
}
options {
lock resource: "Offers-service_qa"
}
stages {
stage('Approval') {
steps {
script {
timeout(time: 7, unit: 'DAYS') {
input message: 'Approve Deploy', ok: 'Yes', submitter: 'otqa,ktaborn'
env.APPROVE = 'Y'
}
}
}
}
stage('Deploy') {
stages {
stage('QA1 Namespace') {
agent {
node {
label 'linux'
}
}
steps {
script {
def serviceName = 'OffersService-QA1'
def region = 'us-east-1'
sh "sed -i 's:AWS_ACCESS_KEY.*\$:AWS_ACCESS_KEY=${AWS_ACCESS_KEY_ID}:' scripts/FargateDeploy/.env"
sh "sed -i 's:AWS_SECRET_KEY.*\$:AWS_SECRET_KEY=${AWS_SECRET_ACCESS_KEY}:' scripts/FargateDeploy/.env"
sh "sed -i 's:AWS_REGION.*\$:AWS_REGION=${region}:' scripts/FargateDeploy/.env"
sh "sed -i 's:SERVICE_NAME.*\$:SERVICE_NAME=${serviceName}:' scripts/FargateDeploy/.env"
sh "dotnet run --project scripts/FargateDeploy/FargateDeploy.csproj"
}
}
}
stage('QA2 Namespace') {
agent {
node {
label 'linux'
}
}
steps {
script {
def serviceName = 'OffersService-QA2'
def region = 'us-east-1'
sh "sed -i 's:AWS_ACCESS_KEY.*\$:AWS_ACCESS_KEY=${AWS_ACCESS_KEY_ID}:' scripts/FargateDeploy/.env"
sh "sed -i 's:AWS_SECRET_KEY.*\$:AWS_SECRET_KEY=${AWS_SECRET_ACCESS_KEY}:' scripts/FargateDeploy/.env"
sh "sed -i 's:AWS_REGION.*\$:AWS_REGION=${region}:' scripts/FargateDeploy/.env"
sh "sed -i 's:SERVICE_NAME.*\$:SERVICE_NAME=${serviceName}:' scripts/FargateDeploy/.env"
sh "dotnet run --project scripts/FargateDeploy/FargateDeploy.csproj"
}
}
}
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment