57 lines
1.5 KiB
Groovy
57 lines
1.5 KiB
Groovy
pipeline {
|
|
agent any
|
|
|
|
environment {
|
|
ACR_NAME = "demoacr"
|
|
IMAGE_TAG = "${ACR_NAME}.azurecr.io/skennen:${env.BUILD_NUMBER}"
|
|
RG_NAME = "Prod-Native-American-Empires"
|
|
ACA_NAME = "skennen"
|
|
AZ_SUB_ID = "1d363cb6-5669-42c2-98d3-5b9a1604b797"
|
|
TENANT_ID = "your-tenant-id"
|
|
CLIENT_ID = credentials('azure-sp-client-id')
|
|
CLIENT_SECRET = credentials('azure-sp-client-secret')
|
|
ACR_USERNAME = credentials('acr-username')
|
|
ACR_PASSWORD = credentials('acr-password')
|
|
}
|
|
|
|
stages {
|
|
stage('Checkout') {
|
|
steps {
|
|
checkout scm
|
|
}
|
|
}
|
|
|
|
stage('Build Image') {
|
|
steps {
|
|
sh "docker build -t ${IMAGE_TAG} ."
|
|
}
|
|
}
|
|
|
|
stage('Push Image') {
|
|
steps {
|
|
sh '''
|
|
echo ${ACR_PASSWORD} | docker login ${ACR_NAME}.azurecr.io --username ${ACR_USERNAME} --password-stdin
|
|
docker push ${IMAGE_TAG}
|
|
'''
|
|
}
|
|
}
|
|
|
|
stage('Deploy to Azure Container App') {
|
|
steps {
|
|
withCredentials([usernamePassword(credentialsId: 'azure-sp', passwordVariable: 'AZ_PASS', usernameVariable: 'AZ_USER')]) {
|
|
sh '''
|
|
az login --service-principal -u $CLIENT_ID -p $CLIENT_SECRET --tenant $TENANT_ID
|
|
az account set --subscription $AZ_SUB_ID
|
|
az containerapp update --name $ACA_NAME --resource-group $RG_NAME --image $IMAGE_TAG --revision-suffix build-${BUILD_NUMBER}
|
|
'''
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
post {
|
|
always {
|
|
cleanWs()
|
|
}
|
|
}
|
|
} |