From dc22f06841d3e4987eb88d16fba804bc0d8ecd5a Mon Sep 17 00:00:00 2001 From: Jakub Wlodek Date: Mon, 27 Apr 2026 10:46:12 -0400 Subject: [PATCH 01/11] Remove unused travis ci configuration file --- .travis.yml | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 2df0f7280..000000000 --- a/.travis.yml +++ /dev/null @@ -1,17 +0,0 @@ -sudo: required -language: cpp -compiler: gcc -env: -- EPICS_HOST_ARCH=linux-x86_64 -before_install: -- bash ci/install-packages.sh -install: -- make -script: -- "valgrind --leak-check=yes --log-file=valgrind_output.txt ./bin/linux-x86_64/plugin-test --log_level=test_suite" -after_success: -- sh ci/coverage.sh -- coveralls-lcov --source-encoding=ISO-8859-1 ci/coverage.info -- tail --lines 15 valgrind_output.txt -notifications: - slack: epicsareadetector:xf0ac8PfwqcSqi2gE0tUcUkP From c4265f21aaa1272ba223340e8bba2e32a9d10e16 Mon Sep 17 00:00:00 2001 From: Jakub Wlodek Date: Mon, 27 Apr 2026 10:46:34 -0400 Subject: [PATCH 02/11] Update github actions CI configuration to re-enable coveralls code coverage metrics --- .github/workflows/ci-scripts.yml | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-scripts.yml b/.github/workflows/ci-scripts.yml index 437113b39..df64554c6 100644 --- a/.github/workflows/ci-scripts.yml +++ b/.github/workflows/ci-scripts.yml @@ -32,9 +32,11 @@ jobs: configuration: default base: "7.0" deps: os - extra: "CMD_CFLAGS='-fvisibility=hidden' - CMD_CXXFLAGS='-fvisibility=hidden -fvisibility-inlines-hidden'" + extra: "CMD_CFLAGS='-fvisibility=hidden --coverage' + CMD_CXXFLAGS='-fvisibility=hidden -fvisibility-inlines-hidden --coverage' + CMD_LDFLAGS='--coverage'" test: true + coverage: true - os: ubuntu-latest cmp: gcc @@ -176,3 +178,16 @@ jobs: if: ${{ matrix.test }} shell: bash run: ./bin/*/plugin-test + + - name: Generate coverage report + if: ${{ matrix.coverage }} + run: | + sudo apt-get -y install lcov + bash ci/coverage.sh + + - name: Upload to Coveralls + if: ${{ matrix.coverage }} + uses: coverallsapp/github-action@v2 + with: + file: ci/coverage.info + format: lcov From f41fb6640ff7942247837a6300741323b00ac860 Mon Sep 17 00:00:00 2001 From: Jakub Wlodek Date: Mon, 27 Apr 2026 10:55:42 -0400 Subject: [PATCH 03/11] Update CI to cancel in-progress jobs on subsequent pushes, simplify lcov extraction of coverage info --- .github/workflows/ci-scripts.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-scripts.yml b/.github/workflows/ci-scripts.yml index df64554c6..8f2f46008 100644 --- a/.github/workflows/ci-scripts.yml +++ b/.github/workflows/ci-scripts.yml @@ -1,5 +1,9 @@ name: ADCore +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + # Trigger on pushes and PRs to any branch on: push: @@ -183,7 +187,10 @@ jobs: if: ${{ matrix.coverage }} run: | sudo apt-get -y install lcov - bash ci/coverage.sh + lcov --no-external --capture \ + --directory ADApp/ADSrc/ \ + --directory ADApp/pluginSrc/ \ + --output-file ci/coverage.info - name: Upload to Coveralls if: ${{ matrix.coverage }} From c4b88816b8777b6ec87d86025db29392efffeee6 Mon Sep 17 00:00:00 2001 From: Jakub Wlodek Date: Mon, 27 Apr 2026 12:47:38 -0400 Subject: [PATCH 04/11] Move coverage check to adsupport-backed-build --- .github/workflows/ci-scripts.yml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ci-scripts.yml b/.github/workflows/ci-scripts.yml index 8f2f46008..0a144d760 100644 --- a/.github/workflows/ci-scripts.yml +++ b/.github/workflows/ci-scripts.yml @@ -36,9 +36,8 @@ jobs: configuration: default base: "7.0" deps: os - extra: "CMD_CFLAGS='-fvisibility=hidden --coverage' - CMD_CXXFLAGS='-fvisibility=hidden -fvisibility-inlines-hidden --coverage' - CMD_LDFLAGS='--coverage'" + extra: "CMD_CFLAGS='-fvisibility=hidden' + CMD_CXXFLAGS='-fvisibility=hidden -fvisibility-inlines-hidden'" test: true coverage: true @@ -54,6 +53,11 @@ jobs: configuration: static base: "7.0" deps: adsupport + extras: "CMD_CFLAGS='--coverage' + CMD_CXXFLAGS='--coverage' + CMD_LDFLAGS='--coverage'" + test: true + coverage: true - os: ubuntu-22.04 cmp: gcc From ed99c189282a0ef65325d315e2020917077aca21 Mon Sep 17 00:00:00 2001 From: Jakub Wlodek Date: Mon, 27 Apr 2026 12:48:44 -0400 Subject: [PATCH 05/11] Remove coverage:true from ubuntu-latest/os/default --- .github/workflows/ci-scripts.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci-scripts.yml b/.github/workflows/ci-scripts.yml index 0a144d760..578bdfe5b 100644 --- a/.github/workflows/ci-scripts.yml +++ b/.github/workflows/ci-scripts.yml @@ -39,7 +39,6 @@ jobs: extra: "CMD_CFLAGS='-fvisibility=hidden' CMD_CXXFLAGS='-fvisibility=hidden -fvisibility-inlines-hidden'" test: true - coverage: true - os: ubuntu-latest cmp: gcc From 5fc34305cb1c65c7ef9e1acdbba11d379b90b247 Mon Sep 17 00:00:00 2001 From: Jakub Wlodek Date: Mon, 27 Apr 2026 13:09:50 -0400 Subject: [PATCH 06/11] Always install boost on linux, and conditionally enable boost for linux adsupport builds --- .github/workflows/ci-scripts.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci-scripts.yml b/.github/workflows/ci-scripts.yml index 578bdfe5b..13cdcef53 100644 --- a/.github/workflows/ci-scripts.yml +++ b/.github/workflows/ci-scripts.yml @@ -98,13 +98,17 @@ jobs: if: runner.os == 'Linux' run: sudo apt-get install -y libtirpc-dev + - name: "Install boost packages for unit tests" + if: ${{ matrix.test && runner.os == 'Linux' }} + run: sudo apt-get install -y libboost-test-dev libboost-system-dev + - name: "Install Linux OS Deps" if: ${{ matrix.deps == 'os' && runner.os == 'Linux' }} run: | sudo apt-get update sudo apt-get -y install \ libgraphicsmagick++-dev libhdf5-dev libjpeg-dev libnetcdf-dev libtiff-dev libxml2-dev libz-dev \ - libblosc-dev libnexus-dev libnetcdf-dev libusb-1.0-0-dev libboost-test-dev libboost-system-dev + libblosc-dev libnexus-dev libnetcdf-dev libusb-1.0-0-dev cat < configure/CONFIG_SITE.linux-x86_64.Common WITH_PVA=YES @@ -155,7 +159,8 @@ jobs: run: | cat <> configure/CONFIG_SITE WITH_PVA=YES - WITH_BOOST=NO + WITH_BOOST=${{ (runner.os == 'Linux' && matrix.test) && 'YES' || 'NO' }} + BOOST_EXTERNAL=YES WITH_HDF5=YES HDF5_EXTERNAL=NO XML2_EXTERNAL=NO From 9763c2423e51442b065c35f0555069b6b647753d Mon Sep 17 00:00:00 2001 From: Jakub Wlodek Date: Mon, 27 Apr 2026 13:24:29 -0400 Subject: [PATCH 07/11] Install boost on linux, regardless of test or no test --- .github/workflows/ci-scripts.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-scripts.yml b/.github/workflows/ci-scripts.yml index 13cdcef53..7b09ef3c1 100644 --- a/.github/workflows/ci-scripts.yml +++ b/.github/workflows/ci-scripts.yml @@ -99,7 +99,7 @@ jobs: run: sudo apt-get install -y libtirpc-dev - name: "Install boost packages for unit tests" - if: ${{ matrix.test && runner.os == 'Linux' }} + if: ${{ runner.os == 'Linux' }} run: sudo apt-get install -y libboost-test-dev libboost-system-dev - name: "Install Linux OS Deps" From e7f4cbcfb3f0fc427444096cde1ed8b14a0bc2c7 Mon Sep 17 00:00:00 2001 From: Jakub Wlodek Date: Mon, 27 Apr 2026 13:26:11 -0400 Subject: [PATCH 08/11] Fix typo --- .github/workflows/ci-scripts.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci-scripts.yml b/.github/workflows/ci-scripts.yml index 7b09ef3c1..d5214dd86 100644 --- a/.github/workflows/ci-scripts.yml +++ b/.github/workflows/ci-scripts.yml @@ -52,7 +52,7 @@ jobs: configuration: static base: "7.0" deps: adsupport - extras: "CMD_CFLAGS='--coverage' + extra: "CMD_CFLAGS='--coverage' CMD_CXXFLAGS='--coverage' CMD_LDFLAGS='--coverage'" test: true From 28c90e4d7e621145197efb8a6664b146355d8fc8 Mon Sep 17 00:00:00 2001 From: Jakub Wlodek Date: Tue, 28 Apr 2026 09:52:14 -0400 Subject: [PATCH 09/11] Remove unneeded quotes --- .github/workflows/ci-scripts.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci-scripts.yml b/.github/workflows/ci-scripts.yml index d5214dd86..e94678797 100644 --- a/.github/workflows/ci-scripts.yml +++ b/.github/workflows/ci-scripts.yml @@ -1,5 +1,6 @@ name: ADCore +# Cancel in-progress runs of this workflow when a new run is triggered on the same pull request or branch concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true @@ -94,15 +95,15 @@ jobs: with: submodules: true - - name: "Install TIRPC Headers" + - name: Install TIRPC Headers if: runner.os == 'Linux' run: sudo apt-get install -y libtirpc-dev - - name: "Install boost packages for unit tests" + - name: Install boost packages for unit tests if: ${{ runner.os == 'Linux' }} run: sudo apt-get install -y libboost-test-dev libboost-system-dev - - name: "Install Linux OS Deps" + - name: Install Linux OS Deps if: ${{ matrix.deps == 'os' && runner.os == 'Linux' }} run: | sudo apt-get update @@ -153,7 +154,7 @@ jobs: - name: Prepare and compile EPICS dependencies run: python .ci/cue.py prepare - - name: "Configure ADSupport Deps" + - name: Configure ADSupport Deps if: ${{ matrix.deps == 'adsupport' }} shell: bash run: | From c3c6d0eef6d9c1d940db6ba2447df5a7f1780af5 Mon Sep 17 00:00:00 2001 From: Jakub Wlodek Date: Tue, 28 Apr 2026 11:56:01 -0400 Subject: [PATCH 10/11] Add linux/adsupport/shared to CI matrix, move coverage check to that case --- .github/workflows/ci-scripts.yml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-scripts.yml b/.github/workflows/ci-scripts.yml index e94678797..346ab2e81 100644 --- a/.github/workflows/ci-scripts.yml +++ b/.github/workflows/ci-scripts.yml @@ -48,9 +48,10 @@ jobs: deps: os test: true + # Use linux/adsupport/shared case for coverage check - os: ubuntu-latest cmp: gcc - configuration: static + configuration: default base: "7.0" deps: adsupport extra: "CMD_CFLAGS='--coverage' @@ -59,6 +60,12 @@ jobs: test: true coverage: true + - os: ubuntu-latest + cmp: gcc + configuration: static + base: "7.0" + deps: adsupport + - os: ubuntu-22.04 cmp: gcc configuration: default @@ -201,6 +208,13 @@ jobs: --directory ADApp/pluginSrc/ \ --output-file ci/coverage.info + - name: Remove any vendored dependencies from coverage report + if: ${{ matrix.coverage }} + run: | + lcov --remove ci/coverage.info \ + '*/ADApp/pluginSrc/json.hpp' \ + --output-file ci/coverage.info + - name: Upload to Coveralls if: ${{ matrix.coverage }} uses: coverallsapp/github-action@v2 From 6d93e0cc14b940236e3f18d6e782379cb3ebb335 Mon Sep 17 00:00:00 2001 From: Jakub Wlodek Date: Tue, 28 Apr 2026 12:08:17 -0400 Subject: [PATCH 11/11] Remove unnecessary step in coverage CI --- .github/workflows/ci-scripts.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/.github/workflows/ci-scripts.yml b/.github/workflows/ci-scripts.yml index 346ab2e81..62dedbc9b 100644 --- a/.github/workflows/ci-scripts.yml +++ b/.github/workflows/ci-scripts.yml @@ -208,13 +208,6 @@ jobs: --directory ADApp/pluginSrc/ \ --output-file ci/coverage.info - - name: Remove any vendored dependencies from coverage report - if: ${{ matrix.coverage }} - run: | - lcov --remove ci/coverage.info \ - '*/ADApp/pluginSrc/json.hpp' \ - --output-file ci/coverage.info - - name: Upload to Coveralls if: ${{ matrix.coverage }} uses: coverallsapp/github-action@v2