ring-operator/azure-pipelines.yml

118 строки
3.3 KiB
YAML
Исходник Обычный вид История

2019-07-26 21:26:54 +03:00
resources:
containers:
2019-07-26 23:50:33 +03:00
- container: golang
2019-07-26 21:26:54 +03:00
image: devcrewsacr.azurecr.io/operator-sdk-builder:latest
2019-07-26 21:41:41 +03:00
endpoint: AzureCR
2019-07-26 23:58:55 +03:00
- container: docker
image: devcrewsacr.azurecr.io/docker-builder:latest
2019-07-26 23:58:55 +03:00
endpoint: AzureCR
2019-07-26 21:26:54 +03:00
options: '-v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock'
# trigger:
# paths:
# exclude:
# - assets/*
# - deploy/*
2019-07-26 21:26:54 +03:00
name: $(Date:yyyyMMdd)$(Rev:r)
2019-07-26 23:58:55 +03:00
2019-07-26 21:26:54 +03:00
jobs:
######################################################################
# Build
######################################################################
- job: Build
2019-07-26 23:50:33 +03:00
container: golang
2019-07-26 21:26:54 +03:00
displayName: Build Operator
steps:
- task: CacheBeta@0
inputs:
key: |
vendor
$(Agent.OS)
$(Build.SourcesDirectory)/go.sum
path: $(Build.SourcesDirectory)/vendor
displayName: Cache Vendor Directory
- bash: |
if [ -f vendor ]; then
echo "##vso[task.setVariable variable=VENDOREXISTS]true"
else
echo "##vso[task.setVariable variable=VENDOREXISTS]false"
fi
- script: go mod vendor
condition: eq(variables.VENDOREXISTS, 'false')
- script: go build cmd/manager/main.go
- publish: $(Build.SourcesDirectory)/build
artifact: build
2019-07-26 21:26:54 +03:00
######################################################################
# Tests
######################################################################
- job: UnitTests
2019-07-26 23:50:33 +03:00
container: golang
2019-07-26 21:26:54 +03:00
displayName: Run unit tests
dependsOn: Build
steps:
- task: CacheBeta@0
inputs:
key: |
vendor
$(Agent.OS)
$(Build.SourcesDirectory)/go.sum
path: $(Build.SourcesDirectory)/vendor
displayName: Cache Vendor Directory
- bash: |
if [ -f vendor ]; then
echo "##vso[task.setVariable variable=VENDOREXISTS]true"
else
echo "##vso[task.setVariable variable=VENDOREXISTS]false"
fi
- script: go mod vendor
condition: eq(variables.VENDOREXISTS, 'false')
- script: go test -cover $(go list ./...)
2019-07-26 21:26:54 +03:00
######################################################################
# Container Creation
######################################################################
- job: Containerize
displayName: Build and push container
dependsOn: UnitTests
variables:
OperatorImage: devcrewsacr.azurecr.io/public/k8s/bedrock/ring-operator
MyBuildId: $(Date:yyyyMMdd)$(Rev:r)
2019-07-26 21:26:54 +03:00
steps:
# - script: |
# set -ex
# sudo groupadd -o -g $(stat --format='%g' /var/run/docker.sock) docker
# sudo usermod -a -G docker $(whoami)
# displayName: Allow current user to access the docker socket
# - checkout: none
# - download:
# artifact:
- download: current
artifact: build
2019-07-26 21:26:54 +03:00
- task: Docker@2
displayName: Login to Azure Container Registry
inputs:
command: login
2019-07-26 21:41:41 +03:00
azureSubscriptionEndpoint: AzureRM
containerRegistry: AzureCR
2019-07-26 21:26:54 +03:00
- task: Docker@2
displayName: Build and Push
inputs:
command: buildAndPush
containerRegistry: AzureCR
repository: $(OperatorImage)
tags: |
# tag1
latest