Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 45 additions & 21 deletions cicd/Jenkinsfile
Original file line number Diff line number Diff line change
@@ -1,26 +1,50 @@
node {
def built_img = ''
stage('Checkout git repo') {
git branch: 'master', url: params.git_repo
git branch: 'test', url: params.git_repo
}
stage('Build and push Docker image') {
sh(script: "docker login ${registry_url} -u ${acr_username} -p ${acr_password}", returnStdout: true)
sh(script: "docker build -t ${registry_url}/customersapi:${BUILD_NUMBER} -f src/CustomersAPI/Dockerfile .", returnStdout: true)
sh(script: "docker push ${registry_url}/customersapi:${BUILD_NUMBER}", returnStdout: true)
sh(script: "docker build -t ${registry_url}/customersmvc:${BUILD_NUMBER} -f src/CustomersMVC/Dockerfile .", returnStdout: true)
sh(script: "docker push ${registry_url}/customersmvc:${BUILD_NUMBER}", returnStdout: true)

stage('Build Docker Image') {
when {
branch 'test'
}
steps {
script {
app = docker.build(DOCKER_IMAGE_NAME)
app.inside {
sh 'echo Hello, World!'
}
}
}
}
stage('Push Docker Image') {
when {
branch 'test'
}
steps {
script {
docker.withRegistry('https://registry.hub.docker.com', 'dockerhub') {
app.push("${env.BUILD_NUMBER}")
app.push("latest")
}
}
}
}


stage('DeployToProduction') {
when {
branch 'test'
}
steps {
input 'Deploy to Production?'
milestone(1)
//implement Kubernetes deployment here
kubernetesDeploy(
kubeconfigId: 'kubeconfig',
configs: 'k8s.yml',
enableConfigSubstitution: true
)
}
}
}
stage('Unit Tests') {
sh 'echo test'
}
stage('Browser Tests'){
parallel(
"Edge":{sh 'echo test'},
"Firefox":{sh 'echo test'},
"Chrome":{sh 'echo test'}
)
}
stage('Deploy into k8s') {
sh(script: "cat cicd/k8s.yaml | sed -e 's/build_number/${BUILD_NUMBER}/g' -e 's/YourACRName/${acr_username}/g' | kubectl apply -f - --kubeconfig /var/lib/jenkins/.kube/config", returnStdout: true)
}
}
4 changes: 2 additions & 2 deletions cicd/k8s.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ spec:
# Kubernetes doesn't allow parameterized manifests, so this is a placeholder
# that our deploy.ps1 script will replace at runtime
# (since the image will depend on which container registry is being used)
image: YourACRName.azurecr.io/customersapi:build_number
image: $DOCKER_IMAGE_NAME:$BUILD_NUMBER
imagePullPolicy: Always
ports:
- containerPort: 80
Expand Down Expand Up @@ -58,7 +58,7 @@ spec:
- name: regsecret
containers:
- name: customersmvc
image: YourACRName.azurecr.io/customersmvc:build_number
image: $DOCKER_IMAGE_NAME:$BUILD_NUMBER
imagePullPolicy: Always
ports:
- containerPort: 80
Expand Down