updated Jenkinsfile

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

59
Jenkinsfile vendored
View File

@@ -1,54 +1,61 @@
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 {
withCredentials([usernamePassword(
credentialsId: 'acr-creds',
usernameVariable: 'ACR_USER',
passwordVariable: 'ACR_PASS')]) {
sh '''
echo ${ACR_PASSWORD} | docker login ${ACR_NAME}.azurecr.io --username ${ACR_USERNAME} --password-stdin
docker push ${IMAGE_TAG}
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 Azure Container App') {
}
stage('Deploy to Container App') {
steps {
withCredentials([usernamePassword(credentialsId: 'azure-sp', passwordVariable: 'AZ_PASS', usernameVariable: 'AZ_USER')]) {
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 $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}
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()