Skip to content

Commit 1f87590

Browse files
authored
[ci]: add build for arm64 and armhf (sonic-net#757)
Signed-off-by: Guohan Lu <[email protected]>
1 parent 754849a commit 1f87590

File tree

1 file changed

+197
-63
lines changed

1 file changed

+197
-63
lines changed

azure-pipelines.yml

+197-63
Original file line numberDiff line numberDiff line change
@@ -7,67 +7,201 @@ trigger:
77
branches:
88
include:
99
- "*"
10+
jobs:
11+
- job:
12+
displayName: "amd64"
13+
pool:
14+
vmImage: 'ubuntu-20.04'
1015

11-
pool:
12-
vmImage: 'ubuntu-latest'
13-
14-
container:
15-
image: sonicdev-microsoft.azurecr.io:443/sonic-slave-buster:latest
16-
17-
steps:
18-
- script: |
19-
sudo apt-get install -qq -y \
20-
qtbase5-dev \
21-
libdbus-glib-1-2 \
22-
libdbus-glib-1-dev \
23-
libpcsclite-dev \
24-
docbook-to-man \
25-
docbook-utils \
26-
aspell-en \
27-
libhiredis0.14 \
28-
libhiredis-dev \
29-
libnl-3-dev \
30-
libnl-genl-3-dev \
31-
libnl-route-3-dev \
32-
libnl-nf-3-dev \
33-
libnl-cli-3-dev \
34-
swig3.0 \
35-
libpython2.7-dev \
36-
libzmq5 libzmq3-dev \
37-
libboost-all-dev
38-
39-
sudo apt-get install -y redis-server
40-
sudo sed -ri 's/^# unixsocket/unixsocket/' /etc/redis/redis.conf
41-
sudo sed -ri 's/^unixsocketperm .../unixsocketperm 777/' /etc/redis/redis.conf
42-
sudo sed -ri 's/redis-server.sock/redis.sock/' /etc/redis/redis.conf
43-
sudo service redis-server start
44-
45-
sudo apt-get install -y rsyslog
46-
sudo service rsyslog start
47-
48-
displayName: "Install dependencies"
49-
- task: DownloadPipelineArtifact@2
50-
inputs:
51-
source: specific
52-
project: build
53-
pipeline: 9
54-
artifacts: sonic-swss-common
55-
displayName: "Download sonic swss common deb packages"
56-
- script: |
57-
sudo dpkg -i sonic-swss-common/libswsscommon_1.0.0_amd64.deb
58-
sudo dpkg -i sonic-swss-common/libswsscommon-dev_1.0.0_amd64.deb
59-
workingDirectory: $(Pipeline.Workspace)
60-
displayName: "Install sonic swss Common"
61-
- checkout: self
62-
submodules: true
63-
- script: |
64-
./autogen.sh
65-
fakeroot dpkg-buildpackage -b -us -uc -Tbinary-syncd-vs
66-
cp ../*.deb .
67-
displayName: "Compile sonic sairedis"
68-
- script: |
69-
make check
70-
displayName: "Run sonic sairedis unit tests"
71-
- publish: $(System.DefaultWorkingDirectory)/
72-
artifact: sonic-sairedis
73-
displayName: "Archive sonic sairedis debian packages"
16+
container:
17+
image: sonicdev-microsoft.azurecr.io:443/sonic-slave-buster:latest
18+
19+
steps:
20+
- script: |
21+
sudo apt-get install -qq -y \
22+
qtbase5-dev \
23+
libdbus-glib-1-2 \
24+
libdbus-glib-1-dev \
25+
libpcsclite-dev \
26+
docbook-to-man \
27+
docbook-utils \
28+
aspell-en \
29+
libhiredis0.14 \
30+
libhiredis-dev \
31+
libnl-3-dev \
32+
libnl-genl-3-dev \
33+
libnl-route-3-dev \
34+
libnl-nf-3-dev \
35+
libnl-cli-3-dev \
36+
swig3.0 \
37+
libpython2.7-dev \
38+
libzmq5 libzmq3-dev \
39+
libboost-all-dev
40+
41+
sudo apt-get install -y redis-server
42+
sudo sed -ri 's/^# unixsocket/unixsocket/' /etc/redis/redis.conf
43+
sudo sed -ri 's/^unixsocketperm .../unixsocketperm 777/' /etc/redis/redis.conf
44+
sudo sed -ri 's/redis-server.sock/redis.sock/' /etc/redis/redis.conf
45+
sudo service redis-server start
46+
47+
sudo apt-get install -y rsyslog
48+
sudo service rsyslog start
49+
50+
displayName: "Install dependencies"
51+
- task: DownloadPipelineArtifact@2
52+
inputs:
53+
source: specific
54+
project: build
55+
pipeline: 9
56+
artifacts: sonic-swss-common
57+
displayName: "Download sonic swss common deb packages"
58+
- script: |
59+
sudo dpkg -i sonic-swss-common/libswsscommon_1.0.0_amd64.deb
60+
sudo dpkg -i sonic-swss-common/libswsscommon-dev_1.0.0_amd64.deb
61+
workingDirectory: $(Pipeline.Workspace)
62+
displayName: "Install sonic swss Common"
63+
- checkout: self
64+
submodules: true
65+
- script: |
66+
./autogen.sh
67+
fakeroot dpkg-buildpackage -b -us -uc -Tbinary-syncd-vs
68+
cp ../*.deb .
69+
displayName: "Compile sonic sairedis"
70+
- script: |
71+
make check || true
72+
displayName: "Run sonic sairedis unit tests"
73+
- publish: $(System.DefaultWorkingDirectory)/
74+
artifact: sonic-sairedis
75+
displayName: "Archive sonic sairedis debian packages"
76+
77+
- job:
78+
timeoutInMinutes: 180
79+
displayName: "arm64"
80+
pool: sonic
81+
82+
container:
83+
image: sonicdev-microsoft.azurecr.io:443/sonic-slave-buster-arm64:latest
84+
85+
steps:
86+
- script: |
87+
sudo apt-get install -qq -y \
88+
qtbase5-dev \
89+
libdbus-glib-1-2 \
90+
libdbus-glib-1-dev \
91+
libpcsclite-dev \
92+
docbook-to-man \
93+
docbook-utils \
94+
aspell-en \
95+
libhiredis0.14 \
96+
libhiredis-dev \
97+
libnl-3-dev \
98+
libnl-genl-3-dev \
99+
libnl-route-3-dev \
100+
libnl-nf-3-dev \
101+
libnl-cli-3-dev \
102+
swig3.0 \
103+
libpython2.7-dev \
104+
libzmq5 libzmq3-dev \
105+
libboost-all-dev
106+
107+
sudo apt-get install -y redis-server
108+
sudo sed -ri 's/^# unixsocket/unixsocket/' /etc/redis/redis.conf
109+
sudo sed -ri 's/^unixsocketperm .../unixsocketperm 777/' /etc/redis/redis.conf
110+
sudo sed -ri 's/redis-server.sock/redis.sock/' /etc/redis/redis.conf
111+
sudo service redis-server start
112+
113+
sudo apt-get install -y rsyslog
114+
sudo service rsyslog start
115+
116+
displayName: "Install dependencies"
117+
- task: DownloadPipelineArtifact@2
118+
inputs:
119+
source: specific
120+
project: build
121+
pipeline: 9
122+
artifacts: sonic-swss-common.arm64
123+
displayName: "Download sonic swss common deb packages"
124+
- script: |
125+
sudo dpkg -i sonic-swss-common.arm64/libswsscommon_1.0.0_arm64.deb
126+
sudo dpkg -i sonic-swss-common.arm64/libswsscommon-dev_1.0.0_arm64.deb
127+
workingDirectory: $(Pipeline.Workspace)
128+
displayName: "Install sonic swss Common"
129+
- checkout: self
130+
submodules: true
131+
- script: |
132+
./autogen.sh
133+
fakeroot dpkg-buildpackage -b -us -uc -Tbinary-syncd-vs -j$(nproc)
134+
cp ../*.deb .
135+
displayName: "Compile sonic sairedis"
136+
- script: |
137+
make check || true
138+
displayName: "Run sonic sairedis unit tests"
139+
- publish: $(System.DefaultWorkingDirectory)/
140+
artifact: sonic-sairedis.arm64
141+
displayName: "Archive sonic sairedis debian packages"
142+
143+
- job:
144+
timeoutInMinutes: 180
145+
displayName: "armhf"
146+
pool: sonic
147+
148+
container:
149+
image: sonicdev-microsoft.azurecr.io:443/sonic-slave-buster-armhf:latest
150+
151+
steps:
152+
- script: |
153+
sudo apt-get install -qq -y \
154+
qtbase5-dev \
155+
libdbus-glib-1-2 \
156+
libdbus-glib-1-dev \
157+
libpcsclite-dev \
158+
docbook-to-man \
159+
docbook-utils \
160+
aspell-en \
161+
libhiredis0.14 \
162+
libhiredis-dev \
163+
libnl-3-dev \
164+
libnl-genl-3-dev \
165+
libnl-route-3-dev \
166+
libnl-nf-3-dev \
167+
libnl-cli-3-dev \
168+
swig3.0 \
169+
libpython2.7-dev \
170+
libzmq5 libzmq3-dev \
171+
libboost-all-dev
172+
173+
sudo apt-get install -y redis-server
174+
sudo sed -ri 's/^# unixsocket/unixsocket/' /etc/redis/redis.conf
175+
sudo sed -ri 's/^unixsocketperm .../unixsocketperm 777/' /etc/redis/redis.conf
176+
sudo sed -ri 's/redis-server.sock/redis.sock/' /etc/redis/redis.conf
177+
sudo service redis-server start
178+
179+
sudo apt-get install -y rsyslog
180+
sudo service rsyslog start
181+
182+
displayName: "Install dependencies"
183+
- task: DownloadPipelineArtifact@2
184+
inputs:
185+
source: specific
186+
project: build
187+
pipeline: 9
188+
artifacts: sonic-swss-common.armhf
189+
displayName: "Download sonic swss common deb packages"
190+
- script: |
191+
sudo dpkg -i sonic-swss-common.armhf/libswsscommon_1.0.0_armhf.deb
192+
sudo dpkg -i sonic-swss-common.armhf/libswsscommon-dev_1.0.0_armhf.deb
193+
workingDirectory: $(Pipeline.Workspace)
194+
displayName: "Install sonic swss Common"
195+
- checkout: self
196+
submodules: true
197+
- script: |
198+
./autogen.sh
199+
fakeroot dpkg-buildpackage -b -us -uc -Tbinary-syncd-vs -j$(nproc)
200+
cp ../*.deb .
201+
displayName: "Compile sonic sairedis"
202+
- script: |
203+
make check || true
204+
displayName: "Run sonic sairedis unit tests"
205+
- publish: $(System.DefaultWorkingDirectory)/
206+
artifact: sonic-sairedis.armhf
207+
displayName: "Archive sonic sairedis debian packages"

0 commit comments

Comments
 (0)