From: David Marchand <david.marchand@redhat.com>
To: dev@dpdk.org
Cc: thomas@monjalon.net, ferruh.yigit@intel.com,
Aaron Conole <aconole@redhat.com>,
Michael Santana <maicolgabriel@hotmail.com>
Subject: [PATCH] ci: add Fedora 35 container in GHA
Date: Tue, 16 Nov 2021 13:31:02 +0100 [thread overview]
Message-ID: <20211116123102.19237-1-david.marchand@redhat.com> (raw)
Build DPDK with Fedora 35 containers.
Differences with the Ubuntu GHA vm images:
- tasks are run as root in containers, no need for sudo,
- compiler must be explicitly installed: clang is not in container images,
- GHA artifacts can't contain a ':' in their name, and must be filtered,
Signed-off-by: David Marchand <david.marchand@redhat.com>
---
.ci/linux-build.sh | 3 ++
.ci/linux-setup.sh | 3 ++
.github/workflows/build.yml | 67 +++++++++++++++++++++++++++++++++++--
3 files changed, 71 insertions(+), 2 deletions(-)
diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index ef0bd099be..e34a74ab64 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -1,5 +1,8 @@
#!/bin/sh -xe
+# Builds are run as root in containers, no need for sudo
+[ "$(id -u)" != '0' ] || alias sudo=
+
on_error() {
if [ $? = 0 ]; then
exit
diff --git a/.ci/linux-setup.sh b/.ci/linux-setup.sh
index ca35b4b38d..f5ef6b1b98 100755
--- a/.ci/linux-setup.sh
+++ b/.ci/linux-setup.sh
@@ -1,5 +1,8 @@
#!/bin/sh -xe
+# Builds are run as root in containers, no need for sudo
+[ "$(id -u)" != '0' ] || alias sudo=
+
# need to install as 'root' since some of the unit tests won't run without it
sudo python3 -m pip install --upgrade 'meson==0.49.2'
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 4151cafee7..8429ffb721 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -10,7 +10,7 @@ defaults:
shell: bash --noprofile --norc -exo pipefail {0}
jobs:
- build:
+ ubuntu-vms:
name: ${{ join(matrix.config.*, '-') }}
runs-on: ${{ matrix.config.os }}
env:
@@ -140,7 +140,70 @@ jobs:
with:
name: meson-logs-${{ join(matrix.config.*, '-') }}
path: |
+ build/.ninja_log
+ build/gdb.log
+ build/meson-logs/meson-log.txt
build/meson-logs/testlog.txt
+
+ rpm-containers:
+ name: ${{ join(matrix.config.*, '-') }}
+ runs-on: ubuntu-latest
+ container:
+ image: ${{ matrix.config.image }}
+ env:
+ CC: ccache ${{ matrix.config.compiler }}
+ DEF_LIB: ${{ matrix.config.library }}
+
+ strategy:
+ fail-fast: false
+ matrix:
+ config:
+ - image: fedora:35
+ compiler: gcc
+ library: static
+ - image: fedora:35
+ compiler: gcc
+ library: shared
+ - image: fedora:35
+ compiler: clang
+ library: static
+ - image: fedora:35
+ compiler: clang
+ library: shared
+
+ steps:
+ - name: Checkout sources
+ uses: actions/checkout@v2
+ - name: Generate various keys
+ id: get_keys
+ run: |
+ echo -n '::set-output name=ccache::'
+ echo 'ccache-${{ matrix.config.image }}-${{ matrix.config.compiler }}-'$(date -u +%Y-w%W)
+ echo -n '::set-output name=logs::'
+ echo 'meson-logs-${{ join(matrix.config.*, '-') }}' | tr -d ':'
+ - name: Retrieve ccache cache
+ uses: actions/cache@v2
+ with:
+ path: ~/.ccache
+ key: ${{ steps.get_keys.outputs.ccache }}-${{ github.ref }}
+ restore-keys: |
+ ${{ steps.get_keys.outputs.ccache }}-refs/heads/main
+ - name: Update
+ run: dnf update -y || true
+ - name: Install packages
+ run: dnf install -y ccache numactl-devel python3-setuptools
+ python3-wheel python3-pip python3-pyelftools ninja-build
+ libatomic libbpf-devel libfdt-devel libpcap-devel openssl-devel
+ rdma-core-devel zlib-devel ${{ matrix.config.compiler }}
+ - name: Run setup
+ run: .ci/linux-setup.sh
+ - name: Build
+ run: .ci/linux-build.sh
+ - name: Upload logs on failure
+ if: failure()
+ uses: actions/upload-artifact@v2
+ with:
+ name: ${{ steps.get_keys.outputs.logs }}
+ path: |
build/.ninja_log
build/meson-logs/meson-log.txt
- build/gdb.log
--
2.23.0
next reply other threads:[~2021-11-16 12:31 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-16 12:31 David Marchand [this message]
2021-11-16 14:44 ` Aaron Conole
2021-11-17 17:29 ` David Marchand
2021-11-18 14:17 ` Aaron Conole
2022-04-01 18:02 ` [PATCH v2] " David Marchand
2022-04-02 8:01 ` David Marchand
2022-04-04 14:24 ` [PATCH v3] " David Marchand
2022-04-04 16:06 ` Aaron Conole
2022-04-06 18:58 ` David Marchand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211116123102.19237-1-david.marchand@redhat.com \
--to=david.marchand@redhat.com \
--cc=aconole@redhat.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=maicolgabriel@hotmail.com \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).