ci: enable v21 ABI checks
v21 ABI will be maintained until v21.11.
Let's use the latest released libabigail 1.8.
In GitHub Actions, libabigail binaries and the ABI reference are stored
in two shared caches as all branches can use the same.
While at it, we can reproduce changes from the commit 0b8086ce3f
("devtools: remove useless files from ABI reference").
This will save some space in the CI caches.
Signed-off-by: David Marchand <david.marchand@redhat.com>
Tested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Aaron Conole <aconole@redhat.com>
This commit is contained in:
parent
87009585e2
commit
443267090e
@ -86,10 +86,13 @@ if [ "$ABI_CHECKS" = "true" ]; then
|
||||
if [ ! -d reference ]; then
|
||||
refsrcdir=$(readlink -f $(pwd)/../dpdk-$REF_GIT_TAG)
|
||||
git clone --single-branch -b $REF_GIT_TAG $REF_GIT_REPO $refsrcdir
|
||||
meson --werror $OPTS $refsrcdir $refsrcdir/build
|
||||
meson $OPTS -Dexamples= $refsrcdir $refsrcdir/build
|
||||
ninja -C $refsrcdir/build
|
||||
DESTDIR=$(pwd)/reference ninja -C $refsrcdir/build install
|
||||
devtools/gen-abi.sh reference
|
||||
find reference/usr/local -name '*.a' -delete
|
||||
rm -rf reference/usr/local/bin
|
||||
rm -rf reference/usr/local/share
|
||||
echo $REF_GIT_TAG > reference/VERSION
|
||||
fi
|
||||
|
||||
|
26
.github/workflows/build.yml
vendored
26
.github/workflows/build.yml
vendored
@ -15,10 +15,13 @@ jobs:
|
||||
runs-on: ${{ matrix.config.os }}
|
||||
env:
|
||||
AARCH64: ${{ matrix.config.cross == 'aarch64' }}
|
||||
ABI_CHECKS: ${{ contains(matrix.config.checks, 'abi') }}
|
||||
BUILD_32BIT: ${{ matrix.config.cross == 'i386' }}
|
||||
BUILD_DOCS: ${{ contains(matrix.config.checks, 'doc') }}
|
||||
CC: ccache ${{ matrix.config.compiler }}
|
||||
DEF_LIB: ${{ matrix.config.library }}
|
||||
LIBABIGAIL_VERSION: libabigail-1.8
|
||||
REF_GIT_TAG: v20.11
|
||||
RUN_TESTS: ${{ contains(matrix.config.checks, 'tests') }}
|
||||
|
||||
strategy:
|
||||
@ -31,7 +34,7 @@ jobs:
|
||||
- os: ubuntu-18.04
|
||||
compiler: gcc
|
||||
library: shared
|
||||
checks: doc+tests
|
||||
checks: abi+doc+tests
|
||||
- os: ubuntu-18.04
|
||||
compiler: clang
|
||||
library: static
|
||||
@ -60,6 +63,10 @@ jobs:
|
||||
run: |
|
||||
echo -n '::set-output name=ccache::'
|
||||
echo 'ccache-${{ matrix.config.os }}-${{ matrix.config.compiler }}-${{ matrix.config.cross }}-'$(date -u +%Y-w%W)
|
||||
echo -n '::set-output name=libabigail::'
|
||||
echo 'libabigail-${{ matrix.config.os }}'
|
||||
echo -n '::set-output name=abi::'
|
||||
echo 'abi-${{ matrix.config.os }}-${{ matrix.config.compiler }}-${{ matrix.config.cross }}-${{ env.LIBABIGAIL_VERSION }}-${{ env.REF_GIT_TAG }}'
|
||||
- name: Retrieve ccache cache
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
@ -67,10 +74,27 @@ jobs:
|
||||
key: ${{ steps.get_ref_keys.outputs.ccache }}-${{ github.ref }}
|
||||
restore-keys: |
|
||||
${{ steps.get_ref_keys.outputs.ccache }}-refs/heads/main
|
||||
- name: Retrieve libabigail cache
|
||||
id: libabigail-cache
|
||||
uses: actions/cache@v2
|
||||
if: env.ABI_CHECKS == 'true'
|
||||
with:
|
||||
path: libabigail
|
||||
key: ${{ steps.get_ref_keys.outputs.libabigail }}
|
||||
- name: Retrieve ABI reference cache
|
||||
uses: actions/cache@v2
|
||||
if: env.ABI_CHECKS == 'true'
|
||||
with:
|
||||
path: reference
|
||||
key: ${{ steps.get_ref_keys.outputs.abi }}
|
||||
- name: Install packages
|
||||
run: sudo apt install -y ccache libnuma-dev python3-setuptools
|
||||
python3-wheel python3-pip ninja-build libbsd-dev libpcap-dev
|
||||
libibverbs-dev libcrypto++-dev libfdt-dev libjansson-dev
|
||||
- name: Install libabigail build dependencies if no cache is available
|
||||
if: env.ABI_CHECKS == 'true' && steps.libabigail-cache.outputs.cache-hit != 'true'
|
||||
run: sudo apt install -y autoconf automake libtool pkg-config libxml2-dev
|
||||
libdw-dev
|
||||
- name: Install i386 cross compiling packages
|
||||
if: env.BUILD_32BIT == 'true'
|
||||
run: sudo apt install -y gcc-multilib
|
||||
|
27
.travis.yml
27
.travis.yml
@ -2,6 +2,9 @@
|
||||
language: c
|
||||
cache:
|
||||
ccache: true
|
||||
directories:
|
||||
- libabigail
|
||||
- reference
|
||||
|
||||
dist: bionic
|
||||
|
||||
@ -18,6 +21,9 @@ _aarch64_packages: &aarch64_packages
|
||||
- *required_packages
|
||||
- [gcc-aarch64-linux-gnu, libc6-dev-arm64-cross, pkg-config-aarch64-linux-gnu]
|
||||
|
||||
_libabigail_build_packages: &libabigail_build_packages
|
||||
- [autoconf, automake, libtool, pkg-config, libxml2-dev, libdw-dev]
|
||||
|
||||
_build_32b_packages: &build_32b_packages
|
||||
- *required_packages
|
||||
- [gcc-multilib]
|
||||
@ -28,6 +34,11 @@ _doc_packages: &doc_packages
|
||||
before_install: ./.ci/${TRAVIS_OS_NAME}-setup.sh
|
||||
script: ./.ci/${TRAVIS_OS_NAME}-build.sh
|
||||
|
||||
env:
|
||||
global:
|
||||
- LIBABIGAIL_VERSION=libabigail-1.8
|
||||
- REF_GIT_TAG=v20.11
|
||||
|
||||
jobs:
|
||||
include:
|
||||
# x86_64 gcc jobs
|
||||
@ -45,6 +56,14 @@ jobs:
|
||||
packages:
|
||||
- *required_packages
|
||||
- *doc_packages
|
||||
- env: DEF_LIB="shared" ABI_CHECKS=true
|
||||
arch: amd64
|
||||
compiler: gcc
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- *required_packages
|
||||
- *libabigail_build_packages
|
||||
# x86_64 clang jobs
|
||||
- env: DEF_LIB="static"
|
||||
arch: amd64
|
||||
@ -104,6 +123,14 @@ jobs:
|
||||
packages:
|
||||
- *required_packages
|
||||
- *doc_packages
|
||||
- env: DEF_LIB="shared" ABI_CHECKS=true
|
||||
arch: arm64
|
||||
compiler: gcc
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- *required_packages
|
||||
- *libabigail_build_packages
|
||||
# aarch64 clang jobs
|
||||
- env: DEF_LIB="static"
|
||||
arch: arm64
|
||||
|
Loading…
Reference in New Issue
Block a user