5656
5757 strategy :
5858 matrix :
59- os : [ubuntu-18.04, windows-2019]
59+ include :
60+ - os : ubuntu-18.04
61+ arch : amd64
62+ - os : ubuntu-18.04
63+ arch : arm64
64+ - os : windows-2019
65+ arch : amd64
6066
6167 steps :
6268 - name : Install Go
6874 shell : bash
6975 env :
7076 MOS : ${{ matrix.os }}
77+ MARCH : ${{ matrix.arch }}
7178 run : |
7279 releasever=${{ github.ref }}
7380 releasever="${releasever#refs/tags/}"
7784 }
7885 echo "RELEASE_VER=${releasever}" >> $GITHUB_ENV
7986 echo "GOPATH=${{ github.workspace }}" >> $GITHUB_ENV
80- echo "OS=${os}" >> $GITHUB_ENV
87+ echo "GOOS=${os}" >> $GITHUB_ENV
88+ echo "GOARCH=${{ matrix.arch }}" >> $GITHUB_ENV
89+ [[ "${MARCH}" == "arm64" ]] && {
90+ echo "CGO_ENABLED=1" >> $GITHUB_ENV
91+ echo "CC=aarch64-linux-gnu-gcc" >> $GITHUB_ENV
92+ }
8193 echo "${{ github.workspace }}/bin" >> $GITHUB_PATH
8294
95+ - name : Install dependencies
96+ if : ${{ runner.os == 'Linux' }}
97+ shell : bash
98+ run : |
99+ if [[ "${GOARCH}" != "amd64" ]]; then
100+ sudo add-apt-repository "deb [arch=arm64,s390x,ppc64el] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -sc) main" || true
101+ sudo add-apt-repository "deb [arch=arm64,s390x,ppc64el] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -sc)-updates main" || true
102+
103+ sudo dpkg --add-architecture arm64
104+ sudo dpkg --add-architecture s390x
105+ sudo dpkg --add-architecture ppc64el
106+
107+ sudo apt-get update || true
108+
109+ sudo apt-get install -y \
110+ crossbuild-essential-arm64 \
111+ crossbuild-essential-s390x \
112+ crossbuild-essential-ppc64el \
113+ libseccomp-dev:amd64 \
114+ libseccomp-dev:arm64 \
115+ libseccomp-dev:s390x \
116+ libseccomp-dev:ppc64el
117+ # libbtrfs-dev is not available for Ubuntu 18.04
118+ # libbtrfs-dev:amd64 \
119+ # libbtrfs-dev:arm64 \
120+ # libbtrfs-dev:s390x \
121+ # libbtrfs-dev:ppc64el
122+ fi
123+
83124 - name : Checkout containerd
84125 uses : actions/checkout@v2
85126 with :
@@ -108,30 +149,30 @@ jobs:
108149 make build
109150 make binaries
110151 rm bin/containerd-stress*
111- [[ "${OS }" == "windows" ]] && {
152+ [[ "${GOOS }" == "windows" ]] && {
112153 (
113154 bindir="$(pwd)/bin"
114155 cd ../../Microsoft/hcsshim
115156 GO111MODULE=on go build -mod=vendor -o "${bindir}/containerd-shim-runhcs-v1.exe" ./cmd/containerd-shim-runhcs-v1
116157 )
117158 }
118- TARFILE="containerd-${RELEASE_VER#v}-${OS}-amd64 .tar.gz"
159+ TARFILE="containerd-${RELEASE_VER#v}-${GOOS}-${GOARCH} .tar.gz"
119160 tar czf ${TARFILE} bin/
120161 sha256sum ${TARFILE} >${TARFILE}.sha256sum
121162 working-directory : src/github.com/containerd/containerd
122163
123164 - name : Save build binaries
124165 uses : actions/upload-artifact@v2
125166 with :
126- name : containerd-binaries-${{ matrix.os }}
167+ name : containerd-binaries-${{ matrix.os }}-${{ matrix.arch }}
127168 path : src/github.com/containerd/containerd/*.tar.gz*
128169
129170 - name : Make cri-containerd tar
130171 shell : bash
131172 env :
132173 RUNC_FLAVOR : runc
133174 run : |
134- if [[ "${OS }" == "linux" ]]; then
175+ if [[ "${GOOS }" == "linux" ]]; then
135176 sudo -E PATH=$PATH script/setup/install-seccomp
136177 fi
137178 make cri-cni-release
@@ -140,7 +181,7 @@ jobs:
140181 - name : Save cri-containerd binaries
141182 uses : actions/upload-artifact@v2
142183 with :
143- name : cri-containerd-binaries-${{ matrix.os }}
184+ name : cri-containerd-binaries-${{ matrix.os }}-${{ matrix.arch }}
144185 path : src/github.com/containerd/containerd/releases/cri-containerd-cni-*.tar.gz*
145186
146187 release :
@@ -158,7 +199,7 @@ jobs:
158199 id : catalog
159200 run : |
160201 _filenum=1
161- for i in "ubuntu-18.04" "windows-2019"; do
202+ for i in "ubuntu-18.04-amd64 " "ubuntu-18.04-arm64" " windows-2019-amd64 "; do
162203 for f in `ls builds/containerd-binaries-${i}`; do
163204 echo "::set-output name=file${_filenum}::${f}"
164205 let "_filenum+=1"
@@ -179,75 +220,111 @@ jobs:
179220 body_path : ./builds/containerd-release-notes/release-notes.md
180221 draft : false
181222 prerelease : ${{ contains(github.ref, 'beta') || contains(github.ref, 'rc') }}
182- - name : Upload Linux containerd tarball
223+ - name : Upload Linux AMD64 containerd tarball
183224 uses : actions/upload-release-asset@v1
184225 env :
185226 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
186227 with :
187228 upload_url : ${{ steps.create_release.outputs.upload_url }}
188- asset_path : ./builds/containerd-binaries-ubuntu-18.04/${{ steps.catalog.outputs.file1 }}
229+ asset_path : ./builds/containerd-binaries-ubuntu-18.04-amd64 /${{ steps.catalog.outputs.file1 }}
189230 asset_name : ${{ steps.catalog.outputs.file1 }}
190231 asset_content_type : application/gzip
191- - name : Upload Linux sha256 sum
232+ - name : Upload Linux AMD64 sha256 sum
192233 uses : actions/upload-release-asset@v1
193234 env :
194235 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
195236 with :
196237 upload_url : ${{ steps.create_release.outputs.upload_url }}
197- asset_path : ./builds/containerd-binaries-ubuntu-18.04/${{ steps.catalog.outputs.file2 }}
238+ asset_path : ./builds/containerd-binaries-ubuntu-18.04-amd64 /${{ steps.catalog.outputs.file2 }}
198239 asset_name : ${{ steps.catalog.outputs.file2 }}
199240 asset_content_type : text/plain
200- - name : Upload Linux cri containerd tarball
241+ - name : Upload Linux AMD64 cri containerd tarball
201242 uses : actions/upload-release-asset@v1
202243 env :
203244 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
204245 with :
205246 upload_url : ${{ steps.create_release.outputs.upload_url }}
206- asset_path : ./builds/cri-containerd-binaries-ubuntu-18.04/${{ steps.catalog.outputs.file3 }}
247+ asset_path : ./builds/cri-containerd-binaries-ubuntu-18.04-amd64 /${{ steps.catalog.outputs.file3 }}
207248 asset_name : ${{ steps.catalog.outputs.file3 }}
208249 asset_content_type : application/gzip
209- - name : Upload Linux cri sha256 sum
250+ - name : Upload Linux AMD64 cri sha256 sum
210251 uses : actions/upload-release-asset@v1
211252 env :
212253 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
213254 with :
214255 upload_url : ${{ steps.create_release.outputs.upload_url }}
215- asset_path : ./builds/cri-containerd-binaries-ubuntu-18.04/${{ steps.catalog.outputs.file4 }}
256+ asset_path : ./builds/cri-containerd-binaries-ubuntu-18.04-amd64 /${{ steps.catalog.outputs.file4 }}
216257 asset_name : ${{ steps.catalog.outputs.file4 }}
217258 asset_content_type : text/plain
218- - name : Upload Windows containerd tarball
259+ - name : Upload Linux ARM64 containerd tarball
219260 uses : actions/upload-release-asset@v1
220261 env :
221262 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
222263 with :
223264 upload_url : ${{ steps.create_release.outputs.upload_url }}
224- asset_path : ./builds/containerd-binaries-windows-2019 /${{ steps.catalog.outputs.file5 }}
265+ asset_path : ./builds/containerd-binaries-ubuntu-18.04-arm64 /${{ steps.catalog.outputs.file5 }}
225266 asset_name : ${{ steps.catalog.outputs.file5 }}
226267 asset_content_type : application/gzip
227- - name : Upload Windows sha256 sum
268+ - name : Upload Linux ARM64 sha256 sum
228269 uses : actions/upload-release-asset@v1
229270 env :
230271 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
231272 with :
232273 upload_url : ${{ steps.create_release.outputs.upload_url }}
233- asset_path : ./builds/containerd-binaries-windows-2019 /${{ steps.catalog.outputs.file6 }}
274+ asset_path : ./builds/containerd-binaries-ubuntu-18.04-arm64 /${{ steps.catalog.outputs.file6 }}
234275 asset_name : ${{ steps.catalog.outputs.file6 }}
235276 asset_content_type : text/plain
236- - name : Upload Windows cri containerd tarball
277+ - name : Upload Linux ARM64 cri containerd tarball
237278 uses : actions/upload-release-asset@v1
238279 env :
239280 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
240281 with :
241282 upload_url : ${{ steps.create_release.outputs.upload_url }}
242- asset_path : ./builds/cri-containerd-binaries-windows-2019 /${{ steps.catalog.outputs.file7 }}
283+ asset_path : ./builds/cri-containerd-binaries-ubuntu-18.04-arm64 /${{ steps.catalog.outputs.file7 }}
243284 asset_name : ${{ steps.catalog.outputs.file7 }}
244285 asset_content_type : application/gzip
245- - name : Upload Windows cri sha256 sum
286+ - name : Upload Linux ARM64 cri sha256 sum
246287 uses : actions/upload-release-asset@v1
247288 env :
248289 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
249290 with :
250291 upload_url : ${{ steps.create_release.outputs.upload_url }}
251- asset_path : ./builds/cri-containerd-binaries-windows-2019 /${{ steps.catalog.outputs.file8 }}
292+ asset_path : ./builds/cri-containerd-binaries-ubuntu-18.04-arm64 /${{ steps.catalog.outputs.file8 }}
252293 asset_name : ${{ steps.catalog.outputs.file8 }}
253294 asset_content_type : text/plain
295+ - name : Upload Windows AMD64 containerd tarball
296+ uses : actions/upload-release-asset@v1
297+ env :
298+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
299+ with :
300+ upload_url : ${{ steps.create_release.outputs.upload_url }}
301+ asset_path : ./builds/containerd-binaries-windows-2019-amd64/${{ steps.catalog.outputs.file9 }}
302+ asset_name : ${{ steps.catalog.outputs.file9 }}
303+ asset_content_type : application/gzip
304+ - name : Upload Windows AMD64 sha256 sum
305+ uses : actions/upload-release-asset@v1
306+ env :
307+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
308+ with :
309+ upload_url : ${{ steps.create_release.outputs.upload_url }}
310+ asset_path : ./builds/containerd-binaries-windows-2019-amd64/${{ steps.catalog.outputs.file10 }}
311+ asset_name : ${{ steps.catalog.outputs.file10 }}
312+ asset_content_type : text/plain
313+ - name : Upload Windows AMD64 cri containerd tarball
314+ uses : actions/upload-release-asset@v1
315+ env :
316+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
317+ with :
318+ upload_url : ${{ steps.create_release.outputs.upload_url }}
319+ asset_path : ./builds/cri-containerd-binaries-windows-2019-amd64/${{ steps.catalog.outputs.file11 }}
320+ asset_name : ${{ steps.catalog.outputs.file11 }}
321+ asset_content_type : application/gzip
322+ - name : Upload Windows AMD64 cri sha256 sum
323+ uses : actions/upload-release-asset@v1
324+ env :
325+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
326+ with :
327+ upload_url : ${{ steps.create_release.outputs.upload_url }}
328+ asset_path : ./builds/cri-containerd-binaries-windows-2019-amd64/${{ steps.catalog.outputs.file12 }}
329+ asset_name : ${{ steps.catalog.outputs.file12 }}
330+ asset_content_type : text/plain
0 commit comments