Skip to content

Commit

Permalink
azure pipeline 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
kimscott committed Feb 3, 2020
1 parent 041a86e commit 4471264
Show file tree
Hide file tree
Showing 4 changed files with 227 additions and 0 deletions.
55 changes: 55 additions & 0 deletions azure-pipeline-mvn-cache.yaml
Original file line number Diff line number Diff line change
@@ -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 changes: 144 additions & 0 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
@@ -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 changes: 16 additions & 0 deletions kubernetes/deploy.yaml
Original file line number Diff line number Diff line change
@@ -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 changes: 12 additions & 0 deletions kubernetes/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: order
labels:
app: order
spec:
ports:
- port: 8080
targetPort: 8080
selector:
app: order

0 comments on commit 4471264

Please sign in to comment.