Skip to content

Commit 6b9d428

Browse files
authored
Merge pull request #5329 from hakman/release-linux-arm64
Release artifacts for Linux ARM64
2 parents 04f73e3 + cdd0758 commit 6b9d428

1 file changed

Lines changed: 101 additions & 24 deletions

File tree

.github/workflows/release.yml

Lines changed: 101 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,13 @@ jobs:
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
@@ -68,6 +74,7 @@ jobs:
6874
shell: bash
6975
env:
7076
MOS: ${{ matrix.os }}
77+
MARCH: ${{ matrix.arch }}
7178
run: |
7279
releasever=${{ github.ref }}
7380
releasever="${releasever#refs/tags/}"
@@ -77,9 +84,43 @@ jobs:
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

Comments
 (0)