updated Jenkinsfile

This commit is contained in:
lenape
2025-06-22 03:09:01 +00:00
parent 2e8b256572
commit cf4b854cf0

71
Jenkinsfile vendored
View File

@@ -1,57 +1,64 @@
pipeline { pipeline {
agent any agent any
environment { environment {
ACR_NAME = "demoacr" // Fetch the ACR login server from Terraform outputs
IMAGE_TAG = "${ACR_NAME}.azurecr.io/skennen:${env.BUILD_NUMBER}" ACR_LOGIN_SERVER = sh(script: 'terraform output -raw container_registry_url', returnStdout: true).trim()
RG_NAME = "Prod-Native-American-Empires" RESOURCE_GROUP = 'Prod-Native-American-Empires'
ACA_NAME = "skennen" CONTAINER_APP = '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 { stages {
stage('Checkout') { stage('Checkout') {
steps { steps {
checkout scm checkout scm
} }
} }
stage('Build Docker Image') {
stage('Build Image') {
steps { 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('Tag & Push to ACR') {
stage('Push Image') {
steps { steps {
sh ''' withCredentials([usernamePassword(
echo ${ACR_PASSWORD} | docker login ${ACR_NAME}.azurecr.io --username ${ACR_USERNAME} --password-stdin credentialsId: 'acr-creds',
docker push ${IMAGE_TAG} usernameVariable: 'ACR_USER',
''' passwordVariable: 'ACR_PASS')]) {
}
}
stage('Deploy to Azure Container App') {
steps {
withCredentials([usernamePassword(credentialsId: 'azure-sp', passwordVariable: 'AZ_PASS', usernameVariable: 'AZ_USER')]) {
sh ''' sh '''
az login --service-principal -u $CLIENT_ID -p $CLIENT_SECRET --tenant $TENANT_ID docker login $ACR_LOGIN_SERVER -u $ACR_USER -p $ACR_PASS
az account set --subscription $AZ_SUB_ID docker tag skennen:${BUILD_NUMBER} $ACR_LOGIN_SERVER/skennen:${BUILD_NUMBER}
az containerapp update --name $ACA_NAME --resource-group $RG_NAME --image $IMAGE_TAG --revision-suffix build-${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 { post {
always { always {
cleanWs() cleanWs()
} }
} }
} }