mirror of
https://github.com/opencontainers/runc.git
synced 2026-07-11 06:03:57 +08:00
make release: add cross-build
This implements cross-build for "make release", moving the build into a container. This way we can support arm, arm64, ppc, and whatnot. * script/seccomp.sh: separate out of script/release.sh, amend to support cross-compile and save needed environment variables to a file. * Dockerfile: add installing libseccomp from source, as this is needed for release builds. * script/release.sh: amend to support more architectures in addition to the native build. Additional arches can be added by specifying "-a <arch>" argument (can be specified multiple times), or "make RELEASE_ARGS="-a arm64" release" if called via make. All supported architectures can be enabled via "make releaseall". * Makefile: move "release" target to "localrelease", add "release" and "releaseall" targets to build via the Dockerfile. This is done because most distros (including Fedora and openSUSE) lack cross-glibc, which is needed to cross-compile libseccomp. * Makefile: remove 'cross' and 'localcross' targets, as this is now done by the release script. * .github/workflows/validate.yum: amend the release CI job to cross-build for supported architectures, remove cross job. Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com>
This commit is contained in:
@@ -124,27 +124,6 @@ jobs:
|
||||
error: 'Subject too long (max 72)'
|
||||
|
||||
|
||||
cross:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
# We have to run this under Docker as Ubuntu (host) does not support all
|
||||
# the architectures we want to compile test against, and Dockerfile uses
|
||||
# Debian (which does).
|
||||
#
|
||||
# XXX: as currently this is the only job that is using Docker, we are
|
||||
# building and using the runcimage locally. In case more jobs running
|
||||
# under Docker will emerge, it will be good to have a separate make
|
||||
# runcimage job and share its result (the docker image) with whoever
|
||||
# needs it.
|
||||
- uses: satackey/action-docker-layer-caching@v0.0.11
|
||||
continue-on-error: true
|
||||
- name: build docker image
|
||||
run: make runcimage
|
||||
- name: cross
|
||||
run: make cross
|
||||
|
||||
|
||||
cfmt:
|
||||
runs-on: ubuntu-20.04
|
||||
steps:
|
||||
@@ -169,12 +148,21 @@ jobs:
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: install deps
|
||||
run: |
|
||||
sudo apt -qq update
|
||||
sudo apt -qq install gperf
|
||||
- name: make release
|
||||
run: make release
|
||||
# We have to run this under Docker as Ubuntu (host) does not support all
|
||||
# the architectures we want to compile test against, and Dockerfile uses
|
||||
# Debian (which does).
|
||||
#
|
||||
# XXX: as currently this is the only job that is using Docker, we are
|
||||
# building and using the runcimage locally. In case more jobs running
|
||||
# under Docker will emerge, it will be good to have a separate make
|
||||
# runcimage job and share its result (the docker image) with whoever
|
||||
# needs it.
|
||||
- uses: satackey/action-docker-layer-caching@v0.0.11
|
||||
continue-on-error: true
|
||||
- name: build docker image
|
||||
run: make runcimage
|
||||
- name: make releaseall
|
||||
run: make releaseall
|
||||
- name: upload artifacts
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
|
||||
Reference in New Issue
Block a user