resources: containers: - container: golang image: devcrewsacr.azurecr.io/operator-sdk-builder:latest endpoint: AzureCR - container: docker image: devcrewsacr.azurecr.io/operator-sdk-builder:latest endpoint: AzureCR options: '-v /usr/bin/docker:/usr/bin/docker -v /var/run/docker.sock:/var/run/docker.sock' # trigger: # paths: # exclude: # - assets/* # - deploy/* name: $(Date:yyyyMMdd)$(Rev:r) variables: OperatorImage: devcrewsacr.azurecr.io/public/k8s/bedrock/ring-operator MyBuildId: $(Date:yyyyMMdd)$(Rev:r) jobs: ###################################################################### # Build ###################################################################### - job: Build container: golang displayName: Build Operator steps: - script: go build cmd/manager/main.go ###################################################################### # Tests ###################################################################### - job: UnitTests container: golang displayName: Run unit tests dependsOn: Build steps: - script: go test -cover $(go list ./...) ###################################################################### # Container Creation ###################################################################### - job: Containerize container: docker displayName: Build and push container dependsOn: UnitTests steps: - script: | set -ex groupadd -o -g $(stat --format='%g' /var/run/docker.sock) docker usermod -a -G docker $(whoami) displayName: Allow current user to access the docker socket - task: Docker@2 displayName: Login to Azure Container Registry inputs: command: login azureSubscriptionEndpoint: AzureRM containerRegistry: AzureCR - script: operator-sdk build $(OperatorPath):$(MyBuildId) - script: operator-sdk build $(OperatorPath):$(latest) - script: | docker push $(OperatorPath):$(MyBuildId) docker push $(OperatorPath):latest