This repository was archived by the owner on Jul 9, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathazure-pipelines.yml
69 lines (60 loc) · 1.99 KB
/
azure-pipelines.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
trigger:
branches:
include:
- '*'
resources:
- repo: self
variables:
docker_connection: 'Docker Hub (via xelementbot)' # see https://xelement.visualstudio.com/money-server/_settings/adminservices
local_docker_image: money-server
remote_docker_image_name: xelement/money-server
remote_docker_image_latest: '$(remote_docker_image_name):latest'
remote_docker_image_temp: '$(remote_docker_image_name):$(Build.BuildId)'
stages:
- stage: build
displayName: Build
jobs:
- job: build_docker
displayName: Build Docker image
steps:
- bash: docker build -t $(local_docker_image) .
displayName: Docker build
- bash: docker tag $(local_docker_image) $(remote_docker_image_temp)
displayName: Docker tag
- task: Docker@2
displayName: Docker login
inputs:
command: 'login'
containerRegistry: $(docker_connection)
- bash: docker push $(remote_docker_image_temp)
displayName: Docker push
- stage: test
displayName: Test
dependsOn: build
jobs:
- job: test_docker
displayName: Gulp test (inside Docker)
steps:
- bash: docker pull $(remote_docker_image_temp)
displayName: Docker pull
- bash: docker run -t $(remote_docker_image_temp) /bin/sh -c "gulp test"
displayName: Docker run
- stage: deploy
displayName: Deploy
dependsOn: test
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
jobs:
- job: deploy_dockerhub
displayName: 'Deploy to Docker Hub as ":latest"'
steps:
- bash: docker pull $(remote_docker_image_temp)
displayName: Docker pull
- bash: docker tag $(remote_docker_image_temp) $(remote_docker_image_latest)
displayName: Docker tag
- task: Docker@2
displayName: Docker login
inputs:
command: 'login'
containerRegistry: $(docker_connection)
- bash: docker push $(remote_docker_image_latest)
displayName: Docker push