Skip to content

main: add support for debugging eal arguments #573

main: add support for debugging eal arguments

main: add support for debugging eal arguments #573

Workflow file for this run

# SPDX-License-Identifier: BSD-3-Clause
# Copyright (c) 2023 Robin Jarry
---
name: CI
on:
push:
branches:
- main
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-24.04
env:
SANITIZE: address
BUILDTYPE: debugoptimized
MESON_EXTRA_OPTS: "-Ddpdk:platform=generic"
DEBIAN_FRONTEND: noninteractive
NEEDRESTART_MODE: l
CC: gcc-14
steps:
- name: install system dependencies
run: |
set -xe
sudo apt-get update -qy
sudo apt-get install -qy --no-install-recommends \
make gcc ninja-build meson git scdoc libibverbs-dev \
libasan8 libcmocka-dev libedit-dev libarchive-dev \
libevent-dev libsmartcols-dev libnuma-dev python3-pyelftools
- uses: actions/checkout@v4
- run: make
- uses: actions/upload-artifact@v4
with:
name: debug-binaries
path: |
build/grout
build/grcli
retention-days: 5
- run: make unit-tests
smoke:
runs-on: ubuntu-24.04
needs: build
env:
DEBIAN_FRONTEND: noninteractive
NEEDRESTART_MODE: l
steps:
- name: install system dependencies
run: |
set -xe
sudo apt-get update -qy
sudo NEEDRESTART_MODE=l apt-get install -qy --no-install-recommends \
git socat tcpdump traceroute \
iproute2 iputils-ping libasan8 libedit2 \
libevent-2.1-7t64 libsmartcols1 libnuma1
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: debug-binaries
path: build
merge-multiple: true
- run: chmod -c a+x build/gr*
- run: sudo smoke/run.sh build
lint:
runs-on: ubuntu-latest
container: fedora:latest
env:
REVISION_RANGE: "${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }}"
steps:
- run: dnf install -y make clang-tools-extra git jq curl
- uses: actions/checkout@v4
with:
fetch-depth: 0 # force fetch all history
- run: git config --global --add safe.directory $PWD
- run: make lint
- run: make check-patches
if: ${{ github.event.pull_request.base.sha && github.event.pull_request.head.sha }}
deb:
runs-on: ubuntu-latest
container: "debian:stable"
if: ${{ github.ref == 'refs/heads/main' }}
steps:
- name: install system dependencies
run: |
set -xe
apt-get update -qy
NEEDRESTART_MODE=l apt-get install -qy --no-install-recommends \
git build-essential meson ninja-build pkgconf scdoc python3-pyelftools \
libcmocka-dev libedit-dev libevent-dev libnuma-dev \
libsmartcols-dev libarchive-dev libibverbs-dev \
bash-completion devscripts debhelper
- uses: actions/checkout@v4
with:
fetch-depth: 0 # force fetch all history
- run: git config --global --add safe.directory $PWD
- run: make deb
- uses: actions/upload-artifact@v4
with:
name: deb-packages
path: grout*.deb
retention-days: 5
rpm:
runs-on: ubuntu-latest
container: "quay.io/centos/centos:stream9"
if: ${{ github.ref == 'refs/heads/main' }}
steps:
- name: install system dependencies
run: |
set -xe
dnf --enablerepo=crb install -y --nodocs --setopt=install_weak_deps=0 \
https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
dnf --enablerepo=crb install -y --nodocs --setopt=install_weak_deps=0 \
gcc git make meson ninja-build pkgconf scdoc python3-pyelftools \
libcmocka-devel libedit-devel libevent-devel numactl-devel \
libsmartcols-devel libarchive-devel rdma-core-devel \
rpm-build systemd
- uses: actions/checkout@v4
with:
fetch-depth: 0 # force fetch all history
- run: git config --global --add safe.directory $PWD
- run: make rpm
- uses: actions/upload-artifact@v4
with:
name: rpm-packages
path: grout*.rpm
retention-days: 5
publish:
runs-on: ubuntu-latest
if: ${{ github.ref == 'refs/heads/main' }}
needs:
- deb
- rpm
- smoke
- lint
permissions: write-all
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
pattern: "*-packages"
merge-multiple: true
- uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}
- uses: docker/build-push-action@v6
with:
context: .
file: Containerfile
tags: "ghcr.io/dpdk/grout:edge"
push: true
- uses: pyTooling/Actions/releaser@r0
with:
token: ${{ github.token }}
tag: "edge"
files: |
grout.x86_64.rpm
grout-devel.noarch.rpm
grout-debuginfo.x86_64.rpm
grout-debugsource.x86_64.rpm
grout_amd64.deb
grout-dev_all.deb
grout-dbgsym_amd64.deb