From 82651d38673de7b57253a8617fb0d38298be8edd Mon Sep 17 00:00:00 2001 From: Maksym Pavlenko Date: Thu, 14 Nov 2019 15:29:56 -0800 Subject: [PATCH 1/2] Cross build nightly builds (arm64, s390x, ppc64el) Signed-off-by: Maksym Pavlenko --- .github/workflows/nightly.yml | 135 ++++++++++++++++++++++++++++++---- 1 file changed, 119 insertions(+), 16 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 71141d2ff..5ad9d3b8f 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -4,12 +4,9 @@ on: - cron: '0 0 * * *' # Every day at midnight jobs: - binaries: - name: Binaries - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, windows-latest] + linux: + name: Linux + runs-on: ubuntu-latest steps: - name: Set up Go @@ -25,21 +22,127 @@ jobs: with: path: ./src/github.com/containerd/containerd - - name: Ubuntu dependencies - if: contains(matrix.os, 'ubuntu') - run: | - sudo apt-get install -y \ - btrfs-tools \ - libseccomp-dev + # + # Build + # - - name: Make + - name: Install dependencies run: | - make binaries + sudo add-apt-repository "deb [arch=arm64,s390x,ppc64el] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -sc) main" || true + sudo add-apt-repository "deb [arch=arm64,s390x,ppc64el] http://ports.ubuntu.com/ubuntu-ports/ $(lsb_release -sc)-updates main" || true + + sudo dpkg --add-architecture arm64 + sudo dpkg --add-architecture s390x + sudo dpkg --add-architecture ppc64el + + sudo apt-get update || true + + sudo apt-get install -y \ + crossbuild-essential-arm64 \ + crossbuild-essential-s390x \ + crossbuild-essential-ppc64el \ + libseccomp-dev:amd64 \ + libseccomp-dev:arm64 \ + libseccomp-dev:s390x \ + libseccomp-dev:ppc64el + + - name: Build amd64 env: GOPATH: ${{ runner.workspace }} + GOOS: linux + GOARCH: amd64 + run: | + make binaries + mv bin bin_amd64 - - name: Upload artifacts + - name: Build arm64 + env: + GOPATH: ${{ runner.workspace }} + GOOS: linux + GOARCH: arm64 + CC: aarch64-linux-gnu-gcc + CGO_ENABLED: 1 + run: | + make binaries + mv bin bin_arm64 + + - name: Build s390x + env: + GOPATH: ${{ runner.workspace }} + GOOS: linux + GOARCH: s390x + CGO_ENABLED: 1 + CC: s390x-linux-gnu-gcc + run: | + make binaries + mv bin bin_s390x + + - name: Build ppc64le + env: + GOPATH: ${{ runner.workspace }} + GOOS: linux + GOARCH: ppc64le + CGO_ENABLED: 1 + CC: powerpc64le-linux-gnu-gcc + run: | + make binaries + mv bin bin_ppc64le + + # + # Upload + # + + - name: Upload artifacts (linux_amd64) uses: actions/upload-artifact@v1 with: - name: ${{ matrix.os }} + name: linux_amd64 + path: bin_amd64 + + - name: Upload artifacts (linux_arm64) + uses: actions/upload-artifact@v1 + with: + name: linux_arm64 + path: bin_arm64 + + - name: Upload artifacts (linux_s390x) + uses: actions/upload-artifact@v1 + with: + name: linux_s390x + path: bin_s390x + + - name: Upload artifacts (linux_ppc64le) + uses: actions/upload-artifact@v1 + with: + name: linux_ppc64le + path: bin_ppc64le + + windows: + name: Windows + runs-on: windows-latest + steps: + - name: Set up Go + uses: actions/setup-go@v1 + with: + go-version: 1.12 + + - name: Checkout + uses: actions/checkout@v1 + env: + GOPATH: ${{ runner.workspace }} + GO111MODULE: off + with: + path: ./src/github.com/containerd/containerd + + - name: Build amd64 + env: + GOPATH: ${{ runner.workspace }} + GOOS: windows + GOARCH: amd64 + run: | + make binaries + + - name: Upload artifacts (windows_amd64) + uses: actions/upload-artifact@v1 + with: + name: windows_amd64 path: bin From 32ef2e6305d15f16015bebc9a24daa36567c5c51 Mon Sep 17 00:00:00 2001 From: Maksym Pavlenko Date: Thu, 14 Nov 2019 15:48:02 -0800 Subject: [PATCH 2/2] Update README Add "Nightly builds" section and status badge. Signed-off-by: Maksym Pavlenko --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index 5e5b5e1f1..53d11dfad 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ [![GoDoc](https://godoc.org/github.com/containerd/containerd?status.svg)](https://godoc.org/github.com/containerd/containerd) [![Build Status](https://travis-ci.org/containerd/containerd.svg?branch=master)](https://travis-ci.org/containerd/containerd) [![Windows Build Status](https://ci.appveyor.com/api/projects/status/github/containerd/containerd?branch=master&svg=true)](https://ci.appveyor.com/project/mlaventure/containerd-3g73f?branch=master) +![](https://github.com/containerd/containerd/workflows/Nightly/badge.svg) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fcontainerd%2Fcontainerd.svg?type=shield)](https://app.fossa.io/projects/git%2Bhttps%3A%2F%2Fgithub.com%2Fcontainerd%2Fcontainerd?ref=badge_shield) [![Go Report Card](https://goreportcard.com/badge/github.com/containerd/containerd)](https://goreportcard.com/report/github.com/containerd/containerd) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/1271/badge)](https://bestpractices.coreinfrastructure.org/projects/1271) @@ -24,6 +25,12 @@ See how to build containerd from source at [BUILDING](BUILDING.md). If you are interested in trying out containerd see our example at [Getting Started](docs/getting-started.md). +## Nightly builds + +There are nightly builds available for download [here](https://github.com/containerd/containerd/actions?query=workflow%3ANightly). +Binaries are generated from `master` branch every night for `Linux` and `Windows`. + +Please be aware: nightly builds might have critical bugs, it's not recommended for use in prodution and no support provided. ## Runtime Requirements