mirror of
https://github.com/spring-projects/spring-petclinic.git
synced 2025-07-21 06:45:49 +00:00
Set up CI with Azure Pipelines
[skip ci]
This commit is contained in:
parent
02b28675cc
commit
8772e5707c
1 changed files with 78 additions and 14 deletions
|
@ -1,20 +1,84 @@
|
||||||
# Starter pipeline
|
# Deploy to Azure Kubernetes Service
|
||||||
# Start with a minimal pipeline that you can customize to build and deploy your code.
|
# Build and push image to Azure Container Registry; Deploy to Azure Kubernetes Service
|
||||||
# Add steps that build, run tests, deploy, and more:
|
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker
|
||||||
# https://aka.ms/yaml
|
|
||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
- master
|
- master
|
||||||
|
|
||||||
pool:
|
resources:
|
||||||
vmImage: 'ubuntu-latest'
|
- repo: self
|
||||||
|
|
||||||
steps:
|
variables:
|
||||||
- script: echo Hello, world!
|
|
||||||
displayName: 'Run a one-line script'
|
# Container registry service connection established during pipeline creation
|
||||||
|
dockerRegistryServiceConnection: '{{ containerRegistryConnection.Id }}'
|
||||||
|
imageRepository: '{{#toAlphaNumericString imageRepository 50}}{{/toAlphaNumericString}}'
|
||||||
|
containerRegistry: '{{ containerRegistryConnection.Authorization.Parameters.loginServer }}'
|
||||||
|
dockerfilePath: '**/Dockerfile'
|
||||||
|
tag: '$(Build.BuildId)'
|
||||||
|
|
||||||
|
# Kubernetes Namespace
|
||||||
|
k8sNamespace: '{{ k8sResource.Namespace }}'
|
||||||
|
imagePullSecret: '{{#toAlphaNumericString containerRegistryConnection.Name 50}}{{/toAlphaNumericString}}{{#shortGuid}}{{/shortGuid}}-auth'
|
||||||
|
|
||||||
|
# Agent VM image name
|
||||||
|
vmImageName: 'ubuntu-latest'
|
||||||
|
|
||||||
|
stages:
|
||||||
|
- stage: Build
|
||||||
|
displayName: Build stage
|
||||||
|
jobs:
|
||||||
|
- job: Build
|
||||||
|
displayName: Build
|
||||||
|
pool:
|
||||||
|
vmImage: $(vmImageName)
|
||||||
|
steps:
|
||||||
|
- task: Docker@2
|
||||||
|
displayName: Build and push an image to container registry
|
||||||
|
inputs:
|
||||||
|
command: buildAndPush
|
||||||
|
repository: $(imageRepository)
|
||||||
|
dockerfile: $(dockerfilePath)
|
||||||
|
containerRegistry: $(dockerRegistryServiceConnection)
|
||||||
|
tags: |
|
||||||
|
$(tag)
|
||||||
|
|
||||||
|
- task: PublishPipelineArtifact@0
|
||||||
|
inputs:
|
||||||
|
artifactName: 'manifests'
|
||||||
|
targetPath: 'manifests'
|
||||||
|
|
||||||
|
- stage: Deploy
|
||||||
|
displayName: Deploy stage
|
||||||
|
dependsOn: Build
|
||||||
|
jobs:
|
||||||
|
- deployment: Deploy
|
||||||
|
displayName: Deploy
|
||||||
|
pool:
|
||||||
|
vmImage: $(vmImageName)
|
||||||
|
environment: '{{ k8sResource.EnvironmentReference.Name }}.{{ k8sResource.Name }}'
|
||||||
|
strategy:
|
||||||
|
runOnce:
|
||||||
|
deploy:
|
||||||
|
steps:
|
||||||
|
- task: KubernetesManifest@0
|
||||||
|
displayName: Create imagePullSecret
|
||||||
|
inputs:
|
||||||
|
action: createSecret
|
||||||
|
secretName: $(imagePullSecret)
|
||||||
|
namespace: $(k8sNamespace)
|
||||||
|
dockerRegistryEndpoint: $(dockerRegistryServiceConnection)
|
||||||
|
|
||||||
|
- task: KubernetesManifest@0
|
||||||
|
displayName: Deploy to Kubernetes cluster
|
||||||
|
inputs:
|
||||||
|
action: deploy
|
||||||
|
namespace: $(k8sNamespace)
|
||||||
|
manifests: |
|
||||||
|
$(System.ArtifactsDirectory)/manifests/deployment.yml
|
||||||
|
$(System.ArtifactsDirectory)/manifests/service.yml
|
||||||
|
imagePullSecrets: |
|
||||||
|
$(imagePullSecret)
|
||||||
|
containers: |
|
||||||
|
$(containerRegistry)/$(imageRepository):$(tag)
|
||||||
|
|
||||||
- script: |
|
|
||||||
echo Add other tasks to build, test, and deploy your project.
|
|
||||||
echo See https://aka.ms/yaml
|
|
||||||
displayName: 'Run a multi-line script'
|
|
||||||
- task: PublishBuildArtifacts@1
|
|
||||||
|
|
Loading…
Reference in a new issue