Skip to content

Commit 1c28add

Browse files
ci: Add Binary Signing Task (#3649)
* Add Explicit Binary Signing Task * fixup! Add Explicit Binary Signing Task * fixup! Add Explicit Binary Signing Task * fixup! Add Explicit Binary Signing Task * fixup! Add Explicit Binary Signing Task * fixup! Add Explicit Binary Signing Task * fixup! Add Explicit Binary Signing Task * fixup! Add Explicit Binary Signing Task * fixup! Add Explicit Binary Signing Task * fixup! Add Explicit Binary Signing Task * fixup! Add Explicit Binary Signing Task * Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * fixup! fixup! Use Signed Binaries for Docker Build * chore: comment out NPM jobs/steps --------- Co-authored-by: jpayne3506 <payne.3506@gmail.com>
1 parent 24ea94f commit 1c28add

17 files changed

+766
-263
lines changed

.pipelines/build/binaries.jobs.yaml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,37 @@ jobs:
4343
target: $(name)
4444
os: $(OS)
4545
arch: $(ARCH)
46+
47+
48+
- ${{ elseif and(eq(job_data.templateContext.action, 'sign'), job_data.templateContext.isOfficial) }}:
49+
- job: sign_${{ job_data.job }}
50+
displayName: "Sign Binary - ${{ job_data.displayName }} -"
51+
strategy: ${{ job_data.strategy }}
52+
pool:
53+
${{ if eq(job_data.job, 'windows_amd64') }}:
54+
type: windows
55+
${{ else }}:
56+
type: linux
57+
variables:
58+
ob_outputDirectory: $(Build.SourcesDirectory)
59+
ob_artifactSuffix: _$(artifact)
60+
ob_git_checkout: false
61+
steps:
62+
- task: DownloadPipelineArtifact@2
63+
inputs:
64+
targetPath: $(Build.SourcesDirectory)
65+
artifact: '${{ job_data.templateContext.repositoryArtifact }}'
66+
67+
- task: ExtractFiles@1
68+
inputs:
69+
archiveFilePatterns: '**/*.?(tgz|tgz.gz|zip)'
70+
destinationFolder: $(Build.SourcesDirectory)
71+
cleanDestinationFolder: false
72+
overwriteExistingFiles: true
73+
74+
- task: onebranch.pipeline.signing@1
75+
inputs:
76+
command: 'sign'
77+
signing_profile: 'external_distribution'
78+
files_to_sign: '**/*'
79+
search_root: $(Build.SourcesDirectory)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
ARG ARCH
2+
3+
4+
# skopeo inspect docker://mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image:v1.0.0 --format "{{.Name}}@{{.Digest}}"
5+
FROM --platform=windows/${ARCH} mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image@sha256:b4c9637e032f667c52d1eccfa31ad8c63f1b035e8639f3f48a510536bf34032b as windows
6+
ARG ARTIFACT_DIR .
7+
8+
COPY ${ARTIFACT_DIR}/bin/dropgz.exe /dropgz.exe
9+
ENTRYPOINT [ "/dropgz.exe" ]
10+
11+
12+
FROM scratch AS linux
13+
ARG ARTIFACT_DIR .
14+
15+
COPY ${ARTIFACT_DIR}/bin/dropgz /dropgz
16+
ENTRYPOINT [ "/dropgz" ]
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
ARG ARCH
2+
3+
4+
# skopeo inspect docker://mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image:v1.0.0 --format "{{.Name}}@{{.Digest}}"
5+
FROM --platform=windows/${ARCH} mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image@sha256:b4c9637e032f667c52d1eccfa31ad8c63f1b035e8639f3f48a510536bf34032b as windows
6+
ARG ARTIFACT_DIR .
7+
8+
COPY ${ARTIFACT_DIR}/bin/dropgz.exe /dropgz.exe
9+
ENTRYPOINT [ "/dropgz.exe" ]
10+
11+
12+
FROM scratch AS linux
13+
ARG ARTIFACT_DIR .
14+
15+
COPY ${ARTIFACT_DIR}/bin/dropgz /dropgz
16+
ENTRYPOINT [ "/dropgz" ]
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
ARG ARCH
2+
3+
4+
# mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image:v1.0.0
5+
FROM --platform=windows/${ARCH} mcr.microsoft.com/oss/kubernetes/windows-host-process-containers-base-image@sha256:b4c9637e032f667c52d1eccfa31ad8c63f1b035e8639f3f48a510536bf34032b AS windows
6+
ARG ARTIFACT_DIR .
7+
8+
COPY ${ARTIFACT_DIR}/files/kubeconfigtemplate.yaml kubeconfigtemplate.yaml
9+
COPY ${ARTIFACT_DIR}/scripts/setkubeconfigpath.ps1 setkubeconfigpath.ps1
10+
COPY ${ARTIFACT_DIR}/bin/azure-cns.exe /azure-cns.exe
11+
ENTRYPOINT ["azure-cns.exe"]
12+
EXPOSE 10090
13+
14+
15+
# mcr.microsoft.com/cbl-mariner/base/core:2.0
16+
# skopeo inspect docker://mcr.microsoft.com/cbl-mariner/base/core:2.0 --format "{{.Name}}@{{.Digest}}"
17+
FROM --platform=linux/${ARCH} mcr.microsoft.com/cbl-mariner/base/core@sha256:961bfedbbbdc0da51bc664f51d959da292eced1ad46c3bf674aba43b9be8c703 AS build-helper
18+
RUN tdnf install -y iptables
19+
20+
# mcr.microsoft.com/cbl-mariner/distroless/minimal:2.0
21+
FROM --platform=linux/${ARCH} mcr.microsoft.com/cbl-mariner/distroless/minimal@sha256:7778a86d86947d5f64c1280a7ee0cf36c6c6d76b5749dd782fbcc14f113961bf AS linux
22+
ARG ARTIFACT_DIR .
23+
24+
COPY --from=build-helper /usr/sbin/*tables* /usr/sbin/
25+
COPY --from=build-helper /usr/lib /usr/lib
26+
COPY ${ARTIFACT_DIR}/bin/azure-cns /usr/local/bin/azure-cns
27+
ENTRYPOINT [ "/usr/local/bin/azure-cns" ]
28+
EXPOSE 10090
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
ARG ARCH
2+
3+
4+
FROM --platform=linux/${ARCH} mcr.microsoft.com/azurelinux/distroless/minimal:3.0 AS linux
5+
ARG ARTIFACT_DIR
6+
COPY ${ARTIFACT_DIR}/lib/* /lib
7+
COPY ${ARTIFACT_DIR}/bin/ipv6-hp-bpf /ipv6-hp-bpf
8+
COPY ${ARTIFACT_DIR}/bin/nft /usr/sbin/nft
9+
COPY ${ARTIFACT_DIR}/bin/ip /sbin/ip
10+
CMD ["/ipv6-hp-bpf"]
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
ARG ARCH
2+
3+
4+
# intermediate for win-ltsc2022
5+
FROM --platform=windows/${ARCH} mcr.microsoft.com/windows/servercore@sha256:45952938708fbde6ec0b5b94de68bcdec3f8c838be018536b1e9e5bd95e6b943 as windows
6+
ARG ARTIFACT_DIR
7+
8+
COPY ${ARTIFACT_DIR}/files/kubeconfigtemplate.yaml kubeconfigtemplate.yaml
9+
COPY ${ARTIFACT_DIR}/scripts/setkubeconfigpath.ps1 setkubeconfigpath.ps1
10+
COPY ${ARTIFACT_DIR}/scripts/setkubeconfigpath-capz.ps1 setkubeconfigpath-capz.ps1
11+
COPY ${ARTIFACT_DIR}/bin/azure-npm.exe npm.exe
12+
13+
CMD ["npm.exe", "start" "--kubeconfig=.\\kubeconfig"]
14+
15+
16+
FROM --platform=linux/${ARCH} mcr.microsoft.com/mirror/docker/library/ubuntu:24.04 as linux
17+
ARG ARTIFACT_DIR
18+
19+
RUN apt-get update && apt-get install -y iptables ipset ca-certificates && apt-get autoremove -y && apt-get clean
20+
#RUN apt-get update && \
21+
# apt-get install -y \
22+
# linux-libc-dev \
23+
# libc6-dev \
24+
# libtasn1-6 \
25+
# gnutls30 iptables ipset ca-certificates
26+
#RUN apt-get autoremove -y && apt-get clean
27+
28+
COPY ${ARTIFACT_DIR}/bin/azure-npm /usr/bin/azure-npm
29+
ENTRYPOINT ["/usr/bin/azure-npm", "start"]

.pipelines/build/generate-manifest.steps.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ steps:
1010
MANIFEST_DATA=$(echo "$IMAGE_PLATFORM_DATA" | \
1111
jq -r '.[] |
1212
.args = [ (.platform | split("/")[0]), (.platform | split("/")[1]) ] |
13-
.args = [ ("--os " + .args[0] ), ("--arch " + .args[1] ) ] |
13+
.args = [ ("--os " + .args[0] ), ("--arch " + .args[1] ) ] |
1414
if .osVersion then .args += ["--os-version " + .osVersion] else . end |
1515
{ image: .imageReference, annotate: .args }' | \
1616
jq -rcs)

.pipelines/build/image.steps.yaml

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,6 @@ parameters:
1515
type: string
1616
default: ""
1717

18-
- name: dockerfile_path
19-
type: string
20-
default: ""
21-
2218
- name: archive_file
2319
type: string
2420
default: '$(name)-$(os)-$(platform)-$(Tag)'
@@ -50,8 +46,8 @@ parameters:
5046
steps:
5147
- task: DownloadPipelineArtifact@2
5248
inputs:
53-
targetPath: $(Build.SourcesDirectory)/dst/${{ parameters.source }}
54-
artifact: '${{ parameters.source }}'
49+
targetPath: $(Build.SourcesDirectory)/dst/artifacts
50+
artifact: ${{ parameters.source }}
5551

5652
- task: onebranch.pipeline.containercontrol@1
5753
displayName: "Login to ACR"
@@ -70,14 +66,13 @@ steps:
7066
repositoryName: $(os)-$(arch)/${{ parameters.name }}
7167
os: '${{ parameters.os }}'
7268
buildkit: 1
73-
dockerFileRelPath: ${{ parameters.dockerfile_path }}/Dockerfile
74-
dockerFileContextPath: ${{ parameters.source }}
69+
dockerFileRelPath: artifacts/Dockerfile
7570
enable_network: true
7671
enable_pull: true
7772
build_tag: ${{ parameters.build_tag }}
7873
enable_acr_push: true
79-
8074
saveImageToPath: images/$(os)-$(arch)/${{ parameters.archive_file }}.tar.gz
75+
enabled_cache: false
8176
#compress: true
8277
#saveMetadataToPath: images/$(os)-$(arch)/metadata/${{ parameters.archive_file }}-metadata.json
8378
#enable_isolated_acr_push: true

.pipelines/build/images.jobs.yaml

Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
parameters:
2+
- name: images
3+
type: jobList
4+
5+
6+
jobs:
7+
- ${{ each job_data in parameters.images }}:
8+
- job: pkg_${{ job_data.job }}
9+
displayName: "Prepare Image Package - ${{ job_data.displayName }} -"
10+
${{ if job_data.strategy }}:
11+
strategy: ${{ job_data.strategy }}
12+
${{ if job_data.dependsOn }}:
13+
dependsOn: ${{ job_data.dependsOn }}
14+
pool:
15+
type: linux
16+
${{ if eq(job_data.job, 'linux_arm64') }}:
17+
hostArchitecture: arm64
18+
19+
variables:
20+
ob_artifactSuffix: _$(name)
21+
ob_git_checkout: false
22+
# keep these variables concerned with instrumentation.
23+
GEN_DIR: $(Build.SourcesDirectory)/temp
24+
REPO_ROOT: $(Build.SourcesDirectory)/${{ job_data.templateContext.repositoryArtifact }}
25+
OUT_DIR: $(Build.ArtifactStagingDirectory)
26+
DROPGZ_VERSION: v0.0.12
27+
DEBUG: $[ coalesce(variables['System.Debug'], 'False') ]
28+
ob_outputDirectory: $(Build.ArtifactStagingDirectory)
29+
${{ if eq(job_data.job, 'linux_amd64') }}:
30+
DEBIAN_FRONTEND: noninteractive
31+
LinuxContainerImage: 'onebranch.azurecr.io/linux/ubuntu-2404:latest'
32+
#mcr.microsoft.com/mirror/docker/library/ubuntu:24.04'
33+
#LinuxContainerImage: 'mcr.microsoft.com/onebranch/azurelinux/build:3.0'
34+
OS: linux
35+
ARCH: amd64
36+
${{ elseif eq(job_data.job, 'windows_amd64') }}:
37+
LinuxContainerImage: 'mcr.microsoft.com/onebranch/azurelinux/build:3.0'
38+
ob_enable_qemu: true
39+
OS: windows
40+
ARCH: amd64
41+
${{ elseif eq(job_data.job, 'linux_arm64') }}:
42+
LinuxContainerImage: 'mcr.microsoft.com/onebranch/azurelinux/build:3.0'
43+
OS: linux
44+
ARCH: arm64
45+
GOARCH: arm64
46+
steps:
47+
- task: DownloadPipelineArtifact@2
48+
inputs:
49+
targetPath: $(REPO_ROOT)
50+
artifact: '${{ job_data.templateContext.repositoryArtifact }}'
51+
52+
- task: GoTool@0
53+
inputs:
54+
version: '$(GOVERSION)'
55+
56+
- task: ShellScript@2
57+
inputs:
58+
scriptPath: $(REPO_ROOT)/${{ job_data.templateContext.buildScript }}
59+
60+
- script: |
61+
ls -la "$SOURCE"
62+
cp "$SOURCE" "$DEST"
63+
ls -la "$DEST"
64+
env:
65+
SOURCE: $(REPO_ROOT)/${{ job_data.templateContext.obDockerfile }}
66+
DEST: $(OUT_DIR)/Dockerfile
67+
68+
- task: onebranch.pipeline.signing@1
69+
inputs:
70+
command: 'sign'
71+
signing_profile: 'external_distribution'
72+
files_to_sign: '**/*'
73+
search_root: $(OUT_DIR)
74+
75+
76+
- task: ShellScript@2
77+
displayName: "Package with DropGZ"
78+
condition: and(
79+
succeeded(),
80+
eq(variables.packageWithDropGZ, 'True'))
81+
inputs:
82+
scriptPath: $(REPO_ROOT)/.pipelines/build/scripts/dropgz.sh
83+
84+
- ${{ if not(contains(job_data.job, 'linux')) }}:
85+
- task: onebranch.pipeline.signing@1
86+
condition: and(
87+
succeeded(),
88+
eq(variables.packageWithDropGZ, 'True'))
89+
inputs:
90+
command: 'sign'
91+
signing_profile: 'external_distribution'
92+
files_to_sign: '**/dropgz*'
93+
search_root: $(OUT_DIR)
94+
95+
# OneBranch artifacts are stored on a Windows machine which obliterates
96+
# Linux file permissions.
97+
# This task is added (along with ob_extract_root_artifact in jobs that
98+
# download the artifact) to protect those file permissions from changing
99+
# during image build time.
100+
#
101+
# See: https://eng.ms/docs/products/onebranch/build/containerbasedworkflow/dockerimagesandacr/preservefilepermissionsfordockerbuild
102+
- script: |
103+
tar cvf "$OUT_DIR"/root_artifact.tar --exclude=root_artifact.tar "$OUT_DIR"
104+
displayName: "Zip to Preserve Linux File Permissions"
105+
106+
107+
- job: images_${{ job_data.job }}
108+
displayName: "Build Images - ${{ job_data.displayName }} -"
109+
dependsOn:
110+
- pkg_${{ job_data.job }}
111+
strategy: ${{ job_data.strategy }}
112+
pool:
113+
os: linux
114+
type: docker
115+
# ${{ if eq(job_data.job, 'linux_arm64') }}:
116+
# hostArchitecture: arm64
117+
# ${{ else }}:
118+
# LinuxHostVersion: 'AzLinux3.0AMD64'
119+
variables:
120+
ob_outputDirectory: $(Build.ArtifactStagingDirectory)
121+
ob_artifactSuffix: _$(name)
122+
ob_git_checkout: false
123+
ob_extract_root_artifact: true
124+
${{ if eq(job_data.job, 'linux_amd64') }}:
125+
LinuxContainerImage: 'mcr.microsoft.com/onebranch/azurelinux/build:3.0'
126+
ARCH: amd64
127+
OS: linux
128+
${{ elseif eq(job_data.job, 'windows_amd64') }}:
129+
LinuxContainerImage: 'mcr.microsoft.com/onebranch/azurelinux/build:3.0'
130+
ob_enable_qemu: true
131+
ARCH: amd64
132+
OS: windows
133+
${{ elseif eq(job_data.job, 'linux_arm64') }}:
134+
LinuxContainerImage: 'mcr.microsoft.com/onebranch/azurelinux/build:3.0'
135+
ob_enable_qemu: true
136+
ARCH: arm64
137+
OS: linux
138+
GOARCH: arm64
139+
140+
steps:
141+
- template: image.steps.yaml
142+
parameters:
143+
arch: $(ARCH)
144+
os: $(OS)
145+
name: $(name)
146+
build_tag: $(imageTag)
147+
extra_args: $(extraArgs) --build-arg ARTIFACT_DIR="/__w/1/a"
148+
archive_file: $(archiveName)-$(OS)-$(ARCH)-$(archiveVersion)
149+
source: drop_build_pkg_${{ job_data.job }}_$(name)

0 commit comments

Comments
 (0)