azure pipeline 추가

This commit is contained in:
kimscott
2020-02-03 15:12:49 +09:00
parent 041a86ef78
commit 44712645ce
4 changed files with 227 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
# Maven
# Build your Java project and run tests with Apache Maven.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/java
trigger:
- master
variables:
MAVEN_CACHE_FOLDER: $(Pipeline.Workspace)/.m2/repository
MAVEN_OPTS: '-Dmaven.repo.local=$(MAVEN_CACHE_FOLDER)'
pool:
vmImage: 'ubuntu-latest'
steps:
- task: Cache@2
inputs:
key: 'maven | "$(Agent.OS)" | **/pom.xml'
restoreKeys: |
maven | "$(Agent.OS)"
maven
path: $(MAVEN_CACHE_FOLDER)
displayName: Cache Maven local repo
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
options: '-Dmaven.test.skip=true -Dmaven.repo.local=$(MAVEN_CACHE_FOLDER)'
publishJUnitResults: false
javaHomeOption: 'JDKVersion'
mavenVersionOption: 'Default'
mavenAuthenticateFeed: false
effectivePomSkip: false
sonarQubeRunAnalysis: false
- task: CopyFiles@2
inputs:
SourceFolder: '$(system.defaultworkingdirectory)'
Contents: |
**/*.jar
Dockerfile
kubernetes/*
TargetFolder: '$(build.artifactstagingdirectory)'
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(build.artifactstagingdirectory)'
artifact: 'target'
publishLocation: 'pipeline'
- task: Docker@2
inputs:
containerRegistry: 'myEventstormingRegistry'
repository: 'order'
command: 'buildAndPush'
Dockerfile: '**/Dockerfile'

144
azure-pipelines.yml Normal file
View File

@@ -0,0 +1,144 @@
# Deploy to Azure Kubernetes Service
# Build and push image to Azure Container Registry; Deploy to Azure Kubernetes Service
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker
trigger:
- master
resources:
- repo: self
variables:
- group: common-value
# containerRegistry: 'event.azurecr.io'
# containerRegistryDockerConnection: 'acr'
# environment: 'aks.default'
- name: imageRepository
value: 'order'
- name: dockerfilePath
value: '**/Dockerfile'
- name: tag
value: '$(Build.BuildId)'
# Agent VM image name
- name: vmImageName
value: 'ubuntu-latest'
- name: MAVEN_CACHE_FOLDER
value: $(Pipeline.Workspace)/.m2/repository
- name: MAVEN_OPTS
value: '-Dmaven.repo.local=$(MAVEN_CACHE_FOLDER)'
stages:
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: Build
pool:
vmImage: $(vmImageName)
steps:
- task: Cache@2
inputs:
key: 'maven | "$(Agent.OS)" | **/pom.xml'
restoreKeys: |
maven | "$(Agent.OS)"
maven
path: $(MAVEN_CACHE_FOLDER)
displayName: Cache Maven local repo
- task: Maven@3
inputs:
mavenPomFile: 'pom.xml'
options: '-Dmaven.test.skip=true -Dmaven.repo.local=$(MAVEN_CACHE_FOLDER)'
javaHomeOption: 'JDKVersion'
jdkVersionOption: '1.8'
jdkArchitectureOption: 'x64'
goals: 'package'
- task: CopyFiles@2
inputs:
SourceFolder: '$(system.defaultworkingdirectory)'
Contents: |
**/*.jar
Dockerfile
kubernetes/*
TargetFolder: '$(build.artifactstagingdirectory)'
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'artifact'
publishLocation: 'Container'
- task: Docker@2
inputs:
containerRegistry: $(containerRegistryDockerConnection)
repository: $(imageRepository)
command: 'buildAndPush'
Dockerfile: '**/Dockerfile'
tags: |
$(tag)
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
jobs:
- deployment: Deploy
displayName: Deploy
pool:
vmImage: $(vmImageName)
environment: $(environment)
strategy:
runOnce:
deploy:
steps:
- task: Kubernetes@1
inputs:
connectionType: 'Kubernetes Service Connection'
namespace: 'default'
command: 'apply'
useConfigurationFile: true
configurationType: 'inline'
inline: |
apiVersion: apps/v1
kind: Deployment
metadata:
name: $(imageRepository)
labels:
app: $(imageRepository)
spec:
replicas: 1
selector:
matchLabels:
app: $(imageRepository)
template:
metadata:
labels:
app: $(imageRepository)
spec:
containers:
- name: $(imageRepository)
image: $(containerRegistry)/$(imageRepository):$(tag)
ports:
- containerPort: 8080
secretType: 'dockerRegistry'
containerRegistryType: 'Azure Container Registry'
- task: Kubernetes@1
inputs:
connectionType: 'Kubernetes Service Connection'
namespace: 'default'
command: 'apply'
useConfigurationFile: true
configurationType: 'inline'
inline: |
apiVersion: v1
kind: Service
metadata:
name: $(imageRepository)
labels:
app: $(imageRepository)
spec:
ports:
- port: 8080
targetPort: 8080
selector:
app: $(imageRepository)
secretType: 'dockerRegistry'
containerRegistryType: 'Azure Container Registry'

16
kubernetes/deploy.yaml Normal file
View File

@@ -0,0 +1,16 @@
apiVersion : apps/v1beta1
kind: Deployment
metadata:
name: order
spec:
replicas: 1
template:
metadata:
labels:
app: order
spec:
containers:
- name: order
image: myeventstormingregistry.azurecr.io/order
ports:
- containerPort: 8080

12
kubernetes/service.yaml Normal file
View File

@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: order
labels:
app: order
spec:
ports:
- port: 8080
targetPort: 8080
selector:
app: order