forked from profefe/profefe
-
Notifications
You must be signed in to change notification settings - Fork 0
/
azure-pipelines.yml
58 lines (50 loc) · 2.43 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
trigger:
branches:
exclude:
- '*'
tags:
include:
- '*'
pool:
vmImage: 'ubuntu-latest'
steps:
- script: |
echo "##vso[build.updatebuildnumber]$(Build.SourceBranchName)$(Build.BuildId)"
export STABLE_BUILD_VERSION=$(Build.SourceBranchName)-$(Build.BuildId)
displayName: '[updatebuildnumber] to $(Build.SourceBranchName)$(Build.BuildId)'
- script: |
set -ex
wget https://github.com/google/go-containerregistry/releases/download/v0.8.0/go-containerregistry_Linux_x86_64.tar.gz -o go-containerregistry_Linux_arm64.tar.gz
tar -xvzf go-containerregistry_Linux_x86_64.tar.gz
displayName: "Install dependencies"
- script: |
bazel version
displayName: "Show bazel version"
- bash: |
bazel build --cpu=darwin_arm64 --platforms=//platforms:m1_release --stamp --workspace_status_command=./scripts/git/status.sh //cmd/profefe:image-arm64.tar
mv bazel-bin/cmd/profefe/image-arm64.tar .
displayName: "Build arm64 image"
- bash: |
bazel build --platforms=//platforms:x64_release --stamp --workspace_status_command=./scripts/git/status.sh //cmd/profefe:image-amd64.tar
mv bazel-bin/cmd/profefe/image-amd64.tar .
displayName: "Build amd64 image"
- task: Docker@2
displayName: Login
inputs:
containerRegistry: 'docker-hub-zer0b0t'
command: 'login'
- bash: |
set -ex
VERSION=$(git describe --exact-match --tags $(Build.SourceVersion))
./crane auth login -u $(REGISTRY_USER) -p $(REGISTRY_PASSWORD) index.docker.io
./crane push $(System.DefaultWorkingDirectory)/image-arm64.tar 00security/profefe:${VERSION}-arm64
./crane push $(System.DefaultWorkingDirectory)/image-amd64.tar 00security/profefe:${VERSION}-amd64
docker manifest create 00security/profefe:${VERSION} 00security/profefe:${VERSION}-amd64 00security/profefe:${VERSION}-arm64
docker manifest annotate 00security/profefe:${VERSION} 00security/profefe:${VERSION}-arm64 --os linux --arch arm64
docker manifest push --purge 00security/profefe:${VERSION}
./crane tag 00security/profefe:${VERSION}-arm64 latest-arm64
./crane tag 00security/profefe:${VERSION}-amd64 latest-amd64
docker manifest create 00security/profefe:latest 00security/profefe:latest-amd64 00security/profefe:latest-arm64
docker manifest annotate 00security/profefe:latest 00security/profefe:latest-arm64 --os linux --arch arm64
docker manifest push --purge 00security/profefe:latest
displayName: "Push images"