DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH] ci: add Fedora 35 container in GHA
@ 2021-11-16 12:31 David Marchand
  2021-11-16 14:44 ` Aaron Conole
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: David Marchand @ 2021-11-16 12:31 UTC (permalink / raw)
  To: dev; +Cc: thomas, ferruh.yigit, Aaron Conole, Michael Santana

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


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2022-04-06 18:59 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-16 12:31 [PATCH] ci: add Fedora 35 container in GHA David Marchand
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

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).