forked from eclipse-che/che-plugin-registry
-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathazure-pipelines.yml
132 lines (117 loc) · 5.61 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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# Docker image
# Build a Docker image to deploy, run, or push to a container registry.
# Add steps that use Docker Compose, tag images, push to a registry, run an image, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/docker
trigger:
- azure-pipelines
schedules:
- cron: "20 12 * * *"
displayName: Daily build
branches:
include:
- azure-pipelines
always: true
variables:
containerRegistry: camino.azurecr.io
organization: camino
imageTag: nightly
pool:
vmImage: 'Ubuntu-latest'
jobs:
- job: build
continueOnError: true
steps:
- task: Docker@1
inputs:
command: login
containerregistrytype: Container Registry
dockerRegistryEndpoint: camino.azurecr.io
- script: |
BUILDER=docker ./build.sh -r $(containerRegistry) -o $(organization) -t $(imageTag) --offline
displayName: 'docker build'
- script: |
docker push $(containerRegistry)/$(organization)/che-plugin-registry:$(imageTag)
displayName: 'docker push'
condition: and(succeeded(), ne(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.SourceBranch'], 'refs/heads/azure-pipelines'))
- job: sync_in_v3
dependsOn: build
steps:
- task: Docker@1
inputs:
command: login
containerregistrytype: Container Registry
dockerRegistryEndpoint: camino.azurecr.io
- task: AzureCLI@2
displayName: 'Image imports'
inputs:
azureSubscription: 'camino: BizSpark (1fbdb4bb-441e-4922-ba1f-ffd04f533ea1)'
scriptType: bash
scriptLocation: inlineScript
inlineScript: 'grep -r image: v3 | grep -v registry.access.redhat.com | awk ''!/camino/ { print $NF }'' | sort | uniq | awk ''{ print "az acr import --force --name camino --source " $NF}'' | sh -x'
condition: and(succeeded('build'), ne(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.SourceBranch'], 'refs/heads/azure-pipelines'))
- job: sync_in_yaml
dependsOn: build
steps:
- task: Docker@1
inputs:
command: login
containerregistrytype: Container Registry
dockerRegistryEndpoint: camino.azurecr.io
- task: AzureCLI@2
displayName: 'Image imports'
inputs:
azureSubscription: 'camino: BizSpark (1fbdb4bb-441e-4922-ba1f-ffd04f533ea1)'
scriptType: bash
scriptLocation: inlineScript
inlineScript: 'grep image: che-theia-plugins.yaml | grep -v registry.access.redhat.com | awk ''!/camino/ { print $NF }'' | sort | uniq | awk ''{ print "az acr import --force --name camino --source " $NF}'' | sh -x'
condition: and(succeeded('build'), ne(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.SourceBranch'], 'refs/heads/azure-pipelines'))
- job: build_publish_sidecars_to_camino
displayName: build-publish sidecars to camino.
steps:
- task: Docker@1
inputs:
command: login
containerregistrytype: Container Registry
dockerRegistryEndpoint: camino.azurecr.io
- script: sed -i -e 's/quay.io\/eclipse/camino.azurecr.io\/camino/g' .ci/sidecar-build-publish.sh
- script: docker run --privileged --rm tonistiigi/binfmt --install arm64
- script: docker run --privileged --rm tonistiigi/binfmt
- script: docker buildx create --use
- script: .ci/sidecar-build-publish.sh build-publish origin/azure-pipelines `git rev-parse HEAD`
#condition: and(ne(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.SourceBranch'], 'refs/heads/azure-pipelines'))
- job: build_sidecars
displayName: build sidecars only in CI.
steps:
- task: Docker@1
inputs:
command: login
containerregistrytype: Container Registry
dockerRegistryEndpoint: camino.azurecr.io
- script: sed -i -e 's/quay.io\/eclipse/camino.azurecr.io\/camino/g' .ci/sidecar-build-publish.sh
- script: docker run --privileged --rm tonistiigi/binfmt --install arm64
- script: docker run --privileged --rm tonistiigi/binfmt
- script: docker buildx create --use
- script: .ci/sidecar-build-publish.sh build origin/azure-pipelines `git rev-parse HEAD`
- script: |
sed -i -e 's/quay.io\/eclipse/camino.azurecr.io\/camino/g' .ci/sidecar-build-publish.sh
docker run --privileged --rm tonistiigi/binfmt --install arm64
docker run --privileged --rm tonistiigi/binfmt
docker buildx create --use
.ci/sidecar-build-publish.sh build origin/azure-pipelines `git rev-parse HEAD`
condition: eq(variables['Build.Reason'], 'PullRequest')
- job: sync_in_quay
dependsOn: build
steps:
- task: Docker@1
inputs:
command: login
containerregistrytype: Container Registry
dockerRegistryEndpoint: camino.azurecr.io
- task: AzureCLI@2
displayName: 'Image imports'
inputs:
azureSubscription: 'camino: BizSpark (1fbdb4bb-441e-4922-ba1f-ffd04f533ea1)'
scriptType: bash
scriptLocation: inlineScript
inlineScript: 'for i in 1 2 3; do curl "https://quay.io/api/v1/repository/eclipse/che-plugin-sidecar/tag/?limit=100&page=$i" | jq -r ''.tags[].name'' | sort | uniq | awk ''{ print "az acr repository show --name camino --image eclipse/che-plugin-sidecar:" $NF; print "if [ $? -ne 0 ]; then az acr import --name camino --source quay.io/eclipse/che-plugin-sidecar:" $NF "; fi"}''; done | sh -x'
condition: and(succeeded('build'), ne(variables['Build.Reason'], 'PullRequest'), eq(variables['Build.SourceBranch'], 'refs/heads/azure-pipelines'))