From patchwork Fri Dec 4 17:36:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 84754 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9E58FA09E0; Fri, 4 Dec 2020 18:36:44 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id AB03634F3; Fri, 4 Dec 2020 18:36:42 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [63.128.21.124]) by dpdk.org (Postfix) with ESMTP id 8EC213256 for ; Fri, 4 Dec 2020 18:36:39 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1607103397; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=3qxKo5waEUJ9pe/xr93rgxCokSh0t30DgFinspzDwRQ=; b=g6Nw5xNn2zlGBIsdLLe2KeYIBcTGM+B4KNydZnBVQGqU+FpuR7Cfmm8MPjfmKB3aWrbJBj nF073SmeAcp9Dp5HdvUBUHsw/IRg+97QFGF2NnsYLQ5D70K9Y+G+u6qbEZtgqhG7IGSbZc zIFlNui8LE6mNsd/LNINI3mlFnNkiUk= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-102-wRcFyNzZMIKvJELmaPRUVQ-1; Fri, 04 Dec 2020 12:36:35 -0500 X-MC-Unique: wRcFyNzZMIKvJELmaPRUVQ-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 82DE2107ACE4; Fri, 4 Dec 2020 17:36:34 +0000 (UTC) Received: from dmarchan.remote.csb (unknown [10.40.194.112]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7661E5D6A1; Fri, 4 Dec 2020 17:36:32 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: aconole@redhat.com, Michael Santana , Thomas Monjalon Date: Fri, 4 Dec 2020 18:36:21 +0100 Message-Id: <20201204173622.12053-1-david.marchand@redhat.com> In-Reply-To: <20201124215700.12126-1-david.marchand@redhat.com> References: <20201124215700.12126-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=david.marchand@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Subject: [dpdk-dev] [PATCH v2 1/2] ci: hook to GitHub Actions X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" With the recent changes in terms of free access to the Travis CI, let's offer an alternative with GitHub Actions. Running jobs on ARM is not supported unless using external runners, so this commit only adds builds for x86_64 and cross compiling for i386 and aarch64. Differences with the Travis CI integration: - Error logs are not dumped to the console when something goes wrong. Instead, they are gathered in a "catch-all" step and attached as artifacts. - A cache entry is stored once and for all, but if no cache is found you can inherit from the default branch cache. The cache is 5GB large, for the whole git repository. - The maximum retention of logs and artifacts is 3 months. - /home/runner is world writable, so a workaround has been added for starting dpdk processes. - Ilya, working on OVS GHA support, noticed that jobs can run with processors that don't have the same capabilities. For DPDK, this impacts the ccache content since everything was built with -march=native so far, and we will end up with binaries that can't run in a later build. The problem has not been seen in Travis CI (?) but it is safer to use a fixed "-Dmachine=default" in any case. - Scheduling jobs is part of the configuration and takes the form of a crontab. A build is scheduled every Monday at 0:00 (UTC) to provide a default ccache for the week (useful for the ovsrobot). Signed-off-by: David Marchand Tested-by: Ferruh Yigit Acked-by: Thomas Monjalon Acked-by: Aaron Conole Tested-by: Ferruh Yigit Acked-by: Thomas Monjalon Acked-by: Aaron Conole --- Changelog since v1: - changed shell variables value in CI scripts and Travis configuration (s/=[^\$]*1/=\1true), this makes it easier for GHA, - forced compilation as 'default' to avoid random unit tests issues in GHA, - scheduled a run per week on Monday at 0:00 UTC, - updated the ccache key: - no need to depend on the default-library parameter since this parameter only impacts the linking of dpdk binaries, - the week when the cache is generated is added so that jobs in other branches can benefit from a recent cache (mimicking what we had for the robot in Travis), - realigned documentation generation with what is done in Travis: generating the doc in all jobs was a waste of resources, --- .ci/linux-build.sh | 17 +++--- .github/workflows/build.yml | 100 ++++++++++++++++++++++++++++++++++++ .travis.yml | 24 ++++----- MAINTAINERS | 1 + 4 files changed, 123 insertions(+), 19 deletions(-) create mode 100644 .github/workflows/build.yml diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh index d079801d78..ee8d07f865 100755 --- a/.ci/linux-build.sh +++ b/.ci/linux-build.sh @@ -12,7 +12,9 @@ on_error() { fi done } -trap on_error EXIT +# We capture the error logs as artifacts in Github Actions, no need to dump +# them via a EXIT handler. +[ -n "$GITHUB_WORKFLOW" ] || trap on_error EXIT install_libabigail() { version=$1 @@ -28,16 +30,16 @@ install_libabigail() { rm ${version}.tar.gz } -if [ "$AARCH64" = "1" ]; then +if [ "$AARCH64" = "true" ]; then # convert the arch specifier OPTS="$OPTS --cross-file config/arm/arm64_armv8_linux_gcc" fi -if [ "$BUILD_DOCS" = "1" ]; then +if [ "$BUILD_DOCS" = "true" ]; then OPTS="$OPTS -Denable_docs=true" fi -if [ "$BUILD_32BIT" = "1" ]; then +if [ "$BUILD_32BIT" = "true" ]; then OPTS="$OPTS -Dc_args=-m32 -Dc_link_args=-m32" export PKG_CONFIG_LIBDIR="/usr/lib32/pkgconfig" fi @@ -48,16 +50,17 @@ else OPTS="$OPTS -Dexamples=all" fi +OPTS="$OPTS -Dmachine=default" OPTS="$OPTS --default-library=$DEF_LIB" OPTS="$OPTS --buildtype=debugoptimized" meson build --werror $OPTS ninja -C build -if [ "$AARCH64" != "1" ]; then +if [ "$AARCH64" != "true" ]; then devtools/test-null.sh fi -if [ "$ABI_CHECKS" = "1" ]; then +if [ "$ABI_CHECKS" = "true" ]; then LIBABIGAIL_VERSION=${LIBABIGAIL_VERSION:-libabigail-1.6} if [ "$(cat libabigail/VERSION 2>/dev/null)" != "$LIBABIGAIL_VERSION" ]; then @@ -95,6 +98,6 @@ if [ "$ABI_CHECKS" = "1" ]; then devtools/check-abi.sh reference install ${ABI_CHECKS_WARN_ONLY:-} fi -if [ "$RUN_TESTS" = "1" ]; then +if [ "$RUN_TESTS" = "true" ]; then sudo meson test -C build --suite fast-tests -t 3 fi diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000000..bef6e52372 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,100 @@ +name: build + +on: + push: + schedule: + - cron: '0 0 * * 1' + +defaults: + run: + shell: bash --noprofile --norc -exo pipefail {0} + +jobs: + build: + name: ${{ join(matrix.config.*, '-') }} + runs-on: ${{ matrix.config.os }} + env: + AARCH64: ${{ matrix.config.cross == 'aarch64' }} + BUILD_32BIT: ${{ matrix.config.cross == 'i386' }} + BUILD_DOCS: ${{ contains(matrix.config.checks, 'doc') }} + CC: ccache ${{ matrix.config.compiler }} + DEF_LIB: ${{ matrix.config.library }} + RUN_TESTS: ${{ contains(matrix.config.checks, 'tests') }} + + strategy: + fail-fast: false + matrix: + config: + - os: ubuntu-18.04 + compiler: gcc + library: static + - os: ubuntu-18.04 + compiler: gcc + library: shared + checks: doc+tests + - os: ubuntu-18.04 + compiler: clang + library: static + - os: ubuntu-18.04 + compiler: clang + library: shared + checks: doc+tests + - os: ubuntu-18.04 + compiler: gcc + library: static + cross: i386 + - os: ubuntu-18.04 + compiler: gcc + library: static + cross: aarch64 + - os: ubuntu-18.04 + compiler: gcc + library: shared + cross: aarch64 + + steps: + - name: Checkout sources + uses: actions/checkout@v2 + - name: Generate cache keys + id: get_ref_keys + run: | + echo -n '::set-output name=ccache::' + echo 'ccache-${{ matrix.config.os }}-${{ matrix.config.compiler }}-${{ matrix.config.cross }}-'$(date -u +%Y-w%W) + - name: Retrieve ccache cache + uses: actions/cache@v2 + with: + path: ~/.ccache + key: ${{ steps.get_ref_keys.outputs.ccache }}-${{ github.ref }} + restore-keys: | + ${{ steps.get_ref_keys.outputs.ccache }}-refs/heads/main + - 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 i386 cross compiling packages + if: env.BUILD_32BIT == 'true' + run: sudo apt install -y gcc-multilib + - name: Install aarch64 cross compiling packages + if: env.AARCH64 == 'true' + run: sudo apt install -y gcc-aarch64-linux-gnu libc6-dev-arm64-cross + pkg-config-aarch64-linux-gnu + - name: Install doc generation packages + if: env.BUILD_DOCS == 'true' + run: sudo apt install -y doxygen graphviz python3-sphinx + python3-sphinx-rtd-theme + - name: Run setup + run: | + .ci/linux-setup.sh + # Workaround on $HOME permissions as EAL checks them for plugin loading + chmod o-w $HOME + - name: Build and test + run: .ci/linux-build.sh + - name: Upload logs on failure + if: failure() + uses: actions/upload-artifact@v2 + with: + name: meson-logs-${{ join(matrix.config.*, '-') }} + path: | + build/meson-logs/testlog.txt + build/.ninja_log + build/meson-logs/meson-log.txt diff --git a/.travis.yml b/.travis.yml index 5e12db23b5..d655e286c3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,10 +34,10 @@ jobs: - env: DEF_LIB="static" arch: amd64 compiler: gcc - - env: DEF_LIB="shared" RUN_TESTS=1 + - env: DEF_LIB="shared" RUN_TESTS=true arch: amd64 compiler: gcc - - env: DEF_LIB="shared" BUILD_DOCS=1 + - env: DEF_LIB="shared" BUILD_DOCS=true arch: amd64 compiler: gcc addons: @@ -49,10 +49,10 @@ jobs: - env: DEF_LIB="static" arch: amd64 compiler: clang - - env: DEF_LIB="shared" RUN_TESTS=1 + - env: DEF_LIB="shared" RUN_TESTS=true arch: amd64 compiler: clang - - env: DEF_LIB="shared" BUILD_DOCS=1 + - env: DEF_LIB="shared" BUILD_DOCS=true arch: amd64 compiler: clang addons: @@ -61,7 +61,7 @@ jobs: - *required_packages - *doc_packages # x86_64 cross-compiling 32-bits jobs - - env: DEF_LIB="static" BUILD_32BIT=1 + - env: DEF_LIB="static" BUILD_32BIT=true arch: amd64 compiler: gcc addons: @@ -69,14 +69,14 @@ jobs: packages: - *build_32b_packages # x86_64 cross-compiling aarch64 jobs - - env: DEF_LIB="static" AARCH64=1 + - env: DEF_LIB="static" AARCH64=true arch: amd64 compiler: gcc addons: apt: packages: - *aarch64_packages - - env: DEF_LIB="shared" AARCH64=1 + - env: DEF_LIB="shared" AARCH64=true arch: amd64 compiler: gcc addons: @@ -87,16 +87,16 @@ jobs: - env: DEF_LIB="static" arch: arm64 compiler: gcc - - env: DEF_LIB="shared" RUN_TESTS=1 + - env: DEF_LIB="shared" RUN_TESTS=true arch: arm64 compiler: gcc - - env: DEF_LIB="shared" RUN_TESTS=1 + - env: DEF_LIB="shared" RUN_TESTS=true dist: focal arch: arm64-graviton2 virt: vm group: edge compiler: gcc - - env: DEF_LIB="shared" BUILD_DOCS=1 + - env: DEF_LIB="shared" BUILD_DOCS=true arch: arm64 compiler: gcc addons: @@ -108,10 +108,10 @@ jobs: - env: DEF_LIB="static" arch: arm64 compiler: clang - - env: DEF_LIB="shared" RUN_TESTS=1 + - env: DEF_LIB="shared" RUN_TESTS=true arch: arm64 compiler: clang - - env: DEF_LIB="shared" RUN_TESTS=1 + - env: DEF_LIB="shared" RUN_TESTS=true dist: focal arch: arm64-graviton2 virt: vm diff --git a/MAINTAINERS b/MAINTAINERS index eafe9f8c46..f45c8c1b13 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -109,6 +109,7 @@ Public CI M: Aaron Conole M: Michael Santana F: .travis.yml +F: .github/workflows/build.yml F: .ci/ ABI Policy & Versioning From patchwork Fri Dec 4 17:36:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Marchand X-Patchwork-Id: 84755 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 18E5AA09E0; Fri, 4 Dec 2020 18:37:03 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id F29B8C8C4; Fri, 4 Dec 2020 18:36:45 +0100 (CET) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by dpdk.org (Postfix) with ESMTP id 863E05681 for ; Fri, 4 Dec 2020 18:36:43 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1607103402; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=ZWkCyR4Oxv4JLWbD7T6v2fMn3R7fX6Nc/iFeLVgIx1E=; b=SK+DnDfcypW0qsJhIjJvegbOfl153yp7pGet6n01D5iGGqIESRBuq0+Ct4IEzXrTdcdcWP 2nJXrQ3hd+E+6urZtlt0gJUtsRRFvhB+KbwKbzz3L4DKGWs6MGuQ+wqLDYvidfB9Vh+XLm AIT7xHuU5dYzn4AVLdp7Mhv0HBtuEK0= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-289-TEZ7rNDQOR2Iyyl3CRAp-g-1; Fri, 04 Dec 2020 12:36:40 -0500 X-MC-Unique: TEZ7rNDQOR2Iyyl3CRAp-g-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 2334A10054FF; Fri, 4 Dec 2020 17:36:39 +0000 (UTC) Received: from dmarchan.remote.csb (unknown [10.40.194.112]) by smtp.corp.redhat.com (Postfix) with ESMTP id 0AF105D6A1; Fri, 4 Dec 2020 17:36:35 +0000 (UTC) From: David Marchand To: dev@dpdk.org Cc: aconole@redhat.com, Michael Santana Date: Fri, 4 Dec 2020 18:36:22 +0100 Message-Id: <20201204173622.12053-2-david.marchand@redhat.com> In-Reply-To: <20201204173622.12053-1-david.marchand@redhat.com> References: <20201124215700.12126-1-david.marchand@redhat.com> <20201204173622.12053-1-david.marchand@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=david.marchand@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Subject: [dpdk-dev] [PATCH v2 2/2] ci: enable v21 ABI checks X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 0b8086ce3fe7 ("devtools: remove useless files from ABI reference"). This will save some space in the CI caches. Signed-off-by: David Marchand Acked-by: Aaron Conole --- .ci/linux-build.sh | 5 ++++- .github/workflows/build.yml | 26 +++++++++++++++++++++++++- .travis.yml | 27 +++++++++++++++++++++++++++ 3 files changed, 56 insertions(+), 2 deletions(-) diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh index ee8d07f865..d2c821adf3 100755 --- a/.ci/linux-build.sh +++ b/.ci/linux-build.sh @@ -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 diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bef6e52372..05eb59527f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -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 diff --git a/.travis.yml b/.travis.yml index d655e286c3..5aa7ad49f1 100644 --- a/.travis.yml +++ b/.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