updated Jenkinsfile
This commit is contained in:
71
Jenkinsfile
vendored
71
Jenkinsfile
vendored
@@ -1,57 +1,64 @@
|
||||
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')
|
||||
// Fetch the ACR login server from Terraform outputs
|
||||
ACR_LOGIN_SERVER = sh(script: 'terraform output -raw container_registry_url', returnStdout: true).trim()
|
||||
RESOURCE_GROUP = 'Prod-Native-American-Empires'
|
||||
CONTAINER_APP = 'skennen'
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Checkout') {
|
||||
steps {
|
||||
checkout scm
|
||||
}
|
||||
}
|
||||
|
||||
stage('Build Image') {
|
||||
stage('Build Docker Image') {
|
||||
steps {
|
||||
sh "docker build -t ${IMAGE_TAG} ."
|
||||
script {
|
||||
// Build the .NET 8 Minimal API image with a build number tag and latest
|
||||
docker.build("skennen:${env.BUILD_NUMBER}", '-f dotnet8-minimal-api/Dockerfile dotnet8-minimal-api')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Push Image') {
|
||||
stage('Tag & Push to ACR') {
|
||||
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')]) {
|
||||
withCredentials([usernamePassword(
|
||||
credentialsId: 'acr-creds',
|
||||
usernameVariable: 'ACR_USER',
|
||||
passwordVariable: 'ACR_PASS')]) {
|
||||
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}
|
||||
docker login $ACR_LOGIN_SERVER -u $ACR_USER -p $ACR_PASS
|
||||
docker tag skennen:${BUILD_NUMBER} $ACR_LOGIN_SERVER/skennen:${BUILD_NUMBER}
|
||||
docker tag skennen:${BUILD_NUMBER} $ACR_LOGIN_SERVER/skennen:latest
|
||||
docker push $ACR_LOGIN_SERVER/skennen:${BUILD_NUMBER}
|
||||
docker push $ACR_LOGIN_SERVER/skennen:latest
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
stage('Deploy to Container App') {
|
||||
steps {
|
||||
withCredentials([azureServicePrincipal(
|
||||
credentialsId: 'azure-sp',
|
||||
subscriptionIdVariable: 'AZ_SUB',
|
||||
clientIdVariable: 'AZ_CLIENT_ID',
|
||||
clientSecretVariable: 'AZ_CLIENT_SECRET',
|
||||
tenantIdVariable: 'AZ_TENANT_ID')]) {
|
||||
sh '''
|
||||
az login --service-principal -u $AZ_CLIENT_ID -p $AZ_CLIENT_SECRET --tenant $AZ_TENANT_ID
|
||||
az account set --subscription $AZ_SUB
|
||||
az containerapp update \
|
||||
--name $CONTAINER_APP \
|
||||
--resource-group $RESOURCE_GROUP \
|
||||
--image $ACR_LOGIN_SERVER/skennen:latest
|
||||
'''
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
post {
|
||||
always {
|
||||
cleanWs()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user