Skip to content

Commit 948a40f

Browse files
authored
Use Separate Version for Build vs. Source (#3751)
* Use Separate DevOps Flow * Add PreBuild Dep * Remove File Copy * Add Image Builds to Regular Pipeline Execution * Add NPM to Build
1 parent 3d0f319 commit 948a40f

File tree

2 files changed

+213
-54
lines changed

2 files changed

+213
-54
lines changed

.pipelines/build/ob-prepare.steps.yaml

Lines changed: 14 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,4 @@
11
steps:
2-
- template: utils/rename-dockerfile-references.steps.yaml
3-
parameters:
4-
topic: "Linux - ipv6-hp-bpf"
5-
replace_references: true
6-
source_path: bpf-prog/ipv6-hp-bpf
7-
target_path: bpf-prog/ipv6-hp-bpf
8-
source_dockerfile: linux.Dockerfile
9-
10-
# - template: utils/rename-dockerfile-references.steps.yaml
11-
# parameters:
12-
# topic: "Windows - npm"
13-
# replace_references: true
14-
# working_directory: $(ACN_DIR)
15-
# source_path: npm
16-
# target_path: npm-windows
17-
# source_dockerfile: windows.Dockerfile
18-
19-
# - template: utils/rename-dockerfile-references.steps.yaml
20-
# parameters:
21-
# topic: "Linux - npm"
22-
# replace_references: true
23-
# working_directory: $(ACN_DIR)
24-
# source_path: npm
25-
# target_path: npm
26-
# source_dockerfile: linux.Dockerfile
27-
28-
- bash: |
29-
rm -rf .hooks .github
30-
displayName: "Remove Unnecessary Dirs from Source"
31-
workingDirectory: $(Build.SourcesDirectory)/azure-container-networking
32-
33-
- task: CopyFiles@2
34-
displayName: "Add Repo to Container Artifacts"
35-
inputs:
36-
sourceFolder: $(Build.SourcesDirectory)/azure-container-networking
37-
targetFolder: $(Build.ArtifactStagingDirectory)
38-
392
- script: |
403
STORAGE_ID=$(echo "${BUILD_BUILDNUMBER//./-}")
414
echo "##vso[task.setvariable variable=StorageID;isOutput=true]$STORAGE_ID"
@@ -92,4 +55,18 @@ steps:
9255
name: "EnvironmentalVariables"
9356
displayName: "Set environmental variables"
9457
condition: always()
58+
# Use dev version of Makefile for development version
9559
workingDirectory: $(ACN_DIR)
60+
61+
- bash: |
62+
rm -rf .hooks .github .pipelines .git
63+
displayName: "Remove Unnecessary Dirs from Source"
64+
workingDirectory: $(ACN_DIR)
65+
66+
67+
- task: CopyFiles@2
68+
displayName: "Add Pipeline Orchestration to Container Artifacts"
69+
inputs:
70+
sourceFolder: $(ACN_DEVOPS_DIR)/.pipelines
71+
targetFolder: $(ACN_DIR)/.pipelines
72+
CleanTargetFolder: false

.pipelines/run-pipeline.yaml

Lines changed: 199 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,206 @@
11
stages:
22
- stage: setup
33
displayName: ACN
4+
dependsOn:
5+
- prebuild
46
variables:
5-
ACN_DIR: azure-container-networking
7+
ACN_DEVOPS_DIR: $(Build.SourcesDirectory)/azure-container-networking
68
jobs:
9+
- job: copy
10+
displayName: Copy Pipeline Files
11+
pool:
12+
type: linux
13+
variables:
14+
ob_outputDirectory: $(Build.ArtifactStagingDirectory)
15+
ob_git_checkout: true
16+
steps:
17+
- checkout: acn-devops
18+
19+
- task: CopyFiles@2
20+
displayName: "Add Pipeline Orchestration to Container Artifacts"
21+
inputs:
22+
sourceFolder: $(ACN_DEVOPS_DIR)/.pipelines
23+
targetFolder: $(Build.ArtifactStagingDirectory)/.pipelines
24+
725
- job: env
826
displayName: Setup
927
pool:
1028
type: linux
29+
dependsOn: copy
1130
variables:
12-
ob_outputDirectory: $(Build.ArtifactStagingDirectory)
31+
ob_outputDirectory: $(Build.SourcesDirectory)/azure-container-networking
1332
ob_artifactSuffix: _source
33+
ob_git_checkout: true
1434

15-
ACR_DIR: $(Build.SourcesDirectory)/azure-container-networking
35+
ACN_DIR: $(Build.SourcesDirectory)/azure-container-networking
36+
ACN_DEVOPS_DIR: $(Agent.BuildDirectory)/drop_setup_copy
1637
BUILD_TYPE: $(IMAGE_ACR_TYPE)
1738
steps:
1839
- checkout: azure-container-networking
19-
- template: build/ob-prepare.steps.yaml
40+
- download: current
41+
artifact: drop_setup_copy
42+
43+
- template: build/ob-prepare.steps.yaml@acn-devops
2044

21-
- template: templates/run-unit-tests.stages.yaml
45+
- template: templates/run-unit-tests.stages.yaml@acn-devops
46+
47+
- stage: build
48+
displayName: "Build Project"
49+
dependsOn:
50+
- setup
51+
- unittest
52+
variables:
53+
ACN_DIR: drop_setup_env_source
54+
ACN_PACKAGE_PATH: github.com/Azure/azure-container-networking
55+
CNI_AI_PATH: $(ACN_PACKAGE_PATH)/telemetry.aiMetadata
56+
CNS_AI_PATH: $(ACN_PACKAGE_PATH)/cns/logger.aiMetadata
57+
NPM_AI_PATH: $(ACN_PACKAGE_PATH)/npm.aiMetadata
58+
59+
STORAGE_ID: $[ stageDependencies.setup.env.outputs['EnvironmentalVariables.StorageID'] ]
60+
TAG: $[ stageDependencies.setup.env.outputs['EnvironmentalVariables.Tag'] ]
61+
62+
IMAGE_REPO_PATH: $[ stageDependencies.setup.env.outputs['EnvironmentalVariables.imageRepositoryPath'] ]
63+
AZURE_IPAM_VERSION: $[ stageDependencies.setup.env.outputs['EnvironmentalVariables.azureIpamVersion'] ]
64+
AZURE_IP_MASQ_MERGER_VERSION: $[ stageDependencies.setup.env.outputs['EnvironmentalVariables.azureIpMasqMergerVersion'] ]
65+
CNI_VERSION: $[ stageDependencies.setup.env.outputs['EnvironmentalVariables.cniVersion'] ]
66+
CNS_VERSION: $[ stageDependencies.setup.env.outputs['EnvironmentalVariables.cnsVersion'] ]
67+
IPV6_HP_BPF_VERSION: $[ stageDependencies.setup.env.outputs['EnvironmentalVariables.ipv6HpBpfVersion'] ]
68+
NPM_VERSION: $[ stageDependencies.setup.env.outputs['EnvironmentalVariables.npmVersion'] ]
69+
jobs:
70+
- template: /.pipelines/build/images.jobs.yaml@acn-devops
71+
parameters:
72+
images:
73+
- job: linux_amd64
74+
displayName: "Linux/AMD64"
75+
templateContext:
76+
repositoryArtifact: drop_setup_env_source
77+
buildScript: .pipelines/build/scripts/$(name).sh
78+
obDockerfile: .pipelines/build/dockerfiles/$(name).Dockerfile
79+
strategy:
80+
maxParallel: 5
81+
matrix:
82+
azure_ipam:
83+
name: azure-ipam
84+
extraArgs: ''
85+
archiveName: azure-ipam
86+
archiveVersion: $(AZURE_IPAM_VERSION)
87+
imageTag: $(Build.BuildNumber)
88+
packageWithDropGZ: True
89+
azure_ip_masq_merger:
90+
name: azure-ip-masq-merger
91+
extraArgs: ''
92+
archiveName: azure-ip-masq-merger
93+
archiveVersion: $(AZURE_IP_MASQ_MERGER_VERSION)
94+
imageTag: $(Build.BuildNumber)
95+
cni:
96+
name: cni
97+
extraArgs: '--build-arg CNI_AI_PATH=$(CNI_AI_PATH) --build-arg CNI_AI_ID=$(CNI_AI_ID)'
98+
archiveName: azure-cni
99+
archiveVersion: $(CNI_VERSION)
100+
imageTag: $(Build.BuildNumber)
101+
packageWithDropGZ: True
102+
cns:
103+
name: cns
104+
extraArgs: '--build-arg CNS_AI_PATH=$(CNS_AI_PATH) --build-arg CNS_AI_ID=$(CNS_AI_ID)'
105+
archiveName: azure-cns
106+
archiveVersion: $(CNS_VERSION)
107+
imageTag: $(Build.BuildNumber)
108+
ipv6_hp_bpf:
109+
name: ipv6-hp-bpf
110+
extraArgs: "--build-arg DEBUG=$(System.Debug)"
111+
archiveName: ipv6-hp-bpf
112+
archiveVersion: $(IPV6_HP_BPF_VERSION)
113+
imageTag: $(Build.BuildNumber)
114+
npm:
115+
name: npm
116+
extraArgs: '--build-arg NPM_AI_PATH=$(NPM_AI_PATH) --build-arg NPM_AI_ID=$(NPM_AI_ID)'
117+
archiveName: azure-npm
118+
archiveVersion: $(NPM_VERSION)
119+
imageTag: $(Build.BuildNumber)
120+
121+
- job: windows_amd64
122+
displayName: "Windows"
123+
templateContext:
124+
repositoryArtifact: drop_setup_env_source
125+
buildScript: .pipelines/build/scripts/$(name).sh
126+
obDockerfile: .pipelines/build/dockerfiles/$(name).Dockerfile
127+
strategy:
128+
maxParallel: 5
129+
matrix:
130+
azure_ipam:
131+
name: azure-ipam
132+
extraArgs: ''
133+
archiveName: azure-ipam
134+
archiveVersion: $(AZURE_IPAM_VERSION)
135+
imageTag: $(Build.BuildNumber)
136+
packageWithDropGZ: True
137+
cni:
138+
name: cni
139+
extraArgs: '--build-arg CNI_AI_PATH=$(CNI_AI_PATH) --build-arg CNI_AI_ID=$(CNI_AI_ID)'
140+
archiveName: azure-cni
141+
archiveVersion: $(CNI_VERSION)
142+
imageTag: $(Build.BuildNumber)
143+
packageWithDropGZ: True
144+
cns:
145+
name: cns
146+
extraArgs: '--build-arg CNS_AI_PATH=$(CNS_AI_PATH) --build-arg CNS_AI_ID=$(CNS_AI_ID)'
147+
archiveName: azure-cns
148+
archiveVersion: $(CNS_VERSION)
149+
imageTag: $(Build.BuildNumber)
150+
npm:
151+
name: npm
152+
extraArgs: '--build-arg NPM_AI_PATH=$(NPM_AI_PATH) --build-arg NPM_AI_ID=$(NPM_AI_ID)'
153+
archiveName: azure-npm
154+
archiveVersion: $(NPM_VERSION)
155+
imageTag: $(Build.BuildNumber)
156+
157+
- job: linux_arm64
158+
displayName: "Linux/ARM64"
159+
templateContext:
160+
repositoryArtifact: drop_setup_env_source
161+
buildScript: .pipelines/build/scripts/$(name).sh
162+
obDockerfile: .pipelines/build/dockerfiles/$(name).Dockerfile
163+
strategy:
164+
maxParallel: 3
165+
matrix:
166+
azure_ipam:
167+
name: azure-ipam
168+
archiveName: azure-ipam
169+
archiveVersion: $(AZURE_IPAM_VERSION)
170+
extraArgs: ''
171+
imageTag: $(Build.BuildNumber)
172+
packageWithDropGZ: True
173+
azure_ip_masq_merger:
174+
name: azure-ip-masq-merger
175+
extraArgs: ''
176+
archiveName: azure-ip-masq-merger
177+
archiveVersion: $(AZURE_IP_MASQ_MERGER_VERSION)
178+
imageTag: $(Build.BuildNumber)
179+
cni:
180+
name: cni
181+
extraArgs: '--build-arg CNI_AI_PATH=$(CNI_AI_PATH) --build-arg CNI_AI_ID=$(CNI_AI_ID)'
182+
archiveName: azure-cni
183+
archiveVersion: $(CNI_VERSION)
184+
imageTag: $(Build.BuildNumber)
185+
packageWithDropGZ: True
186+
cns:
187+
name: cns
188+
extraArgs: '--build-arg CNS_AI_PATH=$(CNS_AI_PATH) --build-arg CNS_AI_ID=$(CNS_AI_ID)'
189+
archiveName: azure-cns
190+
archiveVersion: $(CNS_VERSION)
191+
imageTag: $(Build.BuildNumber)
192+
ipv6_hp_bpf:
193+
name: ipv6-hp-bpf
194+
extraArgs: "--build-arg DEBUG=$(System.Debug)"
195+
archiveName: ipv6-hp-bpf
196+
archiveVersion: $(IPV6_HP_BPF_VERSION)
197+
imageTag: $(Build.BuildNumber)
198+
npm:
199+
name: npm
200+
extraArgs: '--build-arg NPM_AI_PATH=$(NPM_AI_PATH) --build-arg NPM_AI_ID=$(NPM_AI_ID)'
201+
archiveName: azure-npm
202+
archiveVersion: $(NPM_VERSION)
203+
imageTag: $(Build.BuildNumber)
22204

23205
- stage: build
24206
displayName: "Build Project"
@@ -218,7 +400,7 @@ stages:
218400
NPM_WINDOWS_AMD64_REF: $(IMAGE_REPO_PATH)/windows-amd64/npm:$(Build.BuildNumber)
219401
jobs:
220402

221-
- template: build/manifests.jobs.yaml
403+
- template: build/manifests.jobs.yaml@acn-devops
222404
parameters:
223405
generate:
224406
- job: azure_ipam
@@ -272,17 +454,17 @@ stages:
272454
imageReference: $(IPV6_LINUX_AMD64_REF)
273455
- platform: linux/arm64
274456
imageReference: $(IPV6_LINUX_ARM64_REF)
275-
# - job: npm
276-
# templateContext:
277-
# name: npm
278-
# image_tag: $(NPM_VERSION)
279-
# platforms:
280-
# - platform: linux/amd64
281-
# imageReference: $(NPM_LINUX_AMD64_REF)
282-
# - platform: linux/arm64
283-
# imageReference: $(NPM_LINUX_ARM64_REF)
284-
# - platform: windows/amd64
285-
# imageReference: $(NPM_WINDOWS_AMD64_REF)
457+
- job: npm
458+
templateContext:
459+
name: npm
460+
image_tag: $(NPM_VERSION)
461+
platforms:
462+
- platform: linux/amd64
463+
imageReference: $(NPM_LINUX_AMD64_REF)
464+
- platform: linux/arm64
465+
imageReference: $(NPM_LINUX_ARM64_REF)
466+
- platform: windows/amd64
467+
imageReference: $(NPM_WINDOWS_AMD64_REF)
286468

287469

288470
# Cilium Podsubnet E2E tests

0 commit comments

Comments
 (0)