From 2066896bbc0f7b5e8e85a93cb1e6e13a84b21c58 Mon Sep 17 00:00:00 2001 From: Sky Brewer Date: Wed, 3 Apr 2024 14:18:53 +0200 Subject: [PATCH 1/3] update ci submodule --- client/.ci | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/.ci b/client/.ci index c8b2773..dead44c 160000 --- a/client/.ci +++ b/client/.ci @@ -1 +1 @@ -Subproject commit c8b27733166ce3a4c5675a90b5dcc4e7b066ec4e +Subproject commit dead44c3cbe70b134766af13a56b571dbb40a278 From 51454f2222fb14204410da87d215022ceabb8e79 Mon Sep 17 00:00:00 2001 From: Sky Brewer Date: Wed, 3 Apr 2024 14:24:12 +0200 Subject: [PATCH 2/3] Update the ci pipeline for client Align ci-scripts-build.yml with ci-scripts from https://github.com/epics-base/ci-scripts --- .github/workflows/ci-scripts-build.yml | 279 +++++++++---------------- 1 file changed, 97 insertions(+), 182 deletions(-) diff --git a/.github/workflows/ci-scripts-build.yml b/.github/workflows/ci-scripts-build.yml index 42d5cd9..5d8b47c 100644 --- a/.github/workflows/ci-scripts-build.yml +++ b/.github/workflows/ci-scripts-build.yml @@ -21,223 +21,138 @@ env: EPICS_TEST_IMPRECISE_TIMING: YES jobs: - build-client: - name: ${{ matrix.name }} + + build-linux: + defaults: + run: + working-directory: client + name: ${{ matrix.cmp }} / ${{ matrix.configuration }} / ${{ matrix.os }} runs-on: ${{ matrix.os }} - # Set environment variables from matrix parameters env: - BASE: ${{ matrix.base }} CMP: ${{ matrix.cmp }} BCFG: ${{ matrix.configuration }} - CI_CROSS_TARGETS: ${{ matrix.cross }} - EXTRA: ${{ matrix.extra }} - TEST: ${{ matrix.test }} strategy: fail-fast: false matrix: - include: - - name: Linux-Mingw-7.0 - os: ubuntu-latest - cmp: gcc - configuration: default - base: "7.0" - cross: "windows-x64-mingw" - - - name: Linux-static-7.0 - os: ubuntu-latest - cmp: gcc - configuration: static - base: "7.0" - - - name: Linux-3.15 - os: ubuntu-latest - cmp: gcc - configuration: default - base: "3.15" - - - name: Linux-3.14 - os: ubuntu-latest - cmp: gcc - configuration: default - base: "3.14" - - - name: Linux-c++11-7.0 - os: ubuntu-latest - cmp: gcc - configuration: static - base: "7.0" - extra: "CMD_CXXFLAGS=-std=c++11" - - - name: Linux-clang-7.0 - os: ubuntu-latest - cmp: clang - configuration: default - base: "7.0" - - - name: Linux-clang-c++11-7.0 - os: ubuntu-latest - cmp: clang - configuration: default - base: "7.0" - extra: "CMD_CXXFLAGS=-std=c++11" - - - name: Linux-rtems5-7.0 - os: ubuntu-20.04 - cmp: gcc - configuration: default - base: "7.0" - cross: "RTEMS-pc686-qemu@5" - - - name: Linux-rtems4.10-7.0 - os: ubuntu-20.04 - cmp: gcc - configuration: default - base: "7.0" - cross: "RTEMS-pc386-qemu@4.10" - test: NO - - - name: Linux-rtems4.9-7.0 - os: ubuntu-20.04 - cmp: gcc - configuration: default - base: "7.0" - cross: "RTEMS-pc386-qemu@4.9" - - - name: OSX-7.0 - os: macos-latest - cmp: clang - configuration: default - base: "7.0" - - - name: msvc-7.0 - os: windows-latest - cmp: vs2022 - configuration: default - base: "7.0" - - - name: msvc-static-7.0 - os: windows-latest - cmp: vs2022 - configuration: static - base: "7.0" - - - name: msvc-debug-7.0 - os: windows-latest - cmp: vs2022 - configuration: debug - base: "7.0" - - - name: mingw-7.0 - os: windows-latest - cmp: gcc - configuration: default - base: "7.0" + os: [ubuntu-22.04, ubuntu-20.04] + cmp: [gcc, clang] + configuration: [default, static, debug, static-debug] + steps: + - uses: actions/checkout@v4 + with: + submodules: true + - name: Prepare and compile dependencies + run: python .ci/cue.py prepare + - name: Build main module (example app) + run: python .ci/cue.py build + - name: Run main module tests + run: python .ci/cue.py -T 15M test + - name: Collect and show test results + run: python .ci/cue.py test-results + build-macos: defaults: run: working-directory: client + name: ${{ matrix.cmp }} / ${{ matrix.configuration }} / ${{ matrix.os }} + runs-on: ${{ matrix.os }} + env: + CMP: ${{ matrix.cmp }} + BCFG: ${{ matrix.configuration }} + strategy: + fail-fast: false + matrix: + os: [macos-12, macos-11] + cmp: [clang] + configuration: [default, debug] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: true - - name: Automatic core dump analysis - uses: mdavidsaver/ci-core-dumper@master - - name: "apt-get install" - run: | - sudo apt-get update - sudo apt-get -y install qemu-system-x86 g++-mingw-w64-x86-64 gdb - if: runner.os == 'Linux' - name: Prepare and compile dependencies run: python .ci/cue.py prepare - - name: Build main module + - name: Build main module (example app) run: python .ci/cue.py build - name: Run main module tests - run: python .ci/cue.py test - - name: Upload tapfiles Artifact - if: ${{ always() }} - uses: actions/upload-artifact@v3 - with: - name: tapfiles ${{ matrix.name }} - path: '**/O.*/*.tap' + run: python .ci/cue.py -T 15M test - name: Collect and show test results - if: ${{ always() }} run: python .ci/cue.py test-results - docker: - name: ${{ matrix.name }} - runs-on: ubuntu-latest - container: - image: ${{ matrix.image }} + build-windows: + defaults: + run: + working-directory: client + name: ${{ matrix.cmp }} / ${{ matrix.configuration }} / ${{ matrix.os }} + runs-on: ${{ matrix.os }} env: CMP: ${{ matrix.cmp }} BCFG: ${{ matrix.configuration }} - BASE: ${{ matrix.base }} - LIBEVENT_TAG: ${{ matrix.libevent }} - EXTRA: ${{ matrix.extra }} - VV: "1" strategy: fail-fast: false matrix: - include: - - name: Linux centos 7 - image: centos:7 - cmp: gcc - configuration: default - base: "7.0" + os: [windows-2022, windows-2019] + cmp: [gcc, vs2022, vs2019] + configuration: [default, static, debug, static-debug] + exclude: + - os: windows-2022 + cmp: vs2019 + + - os: windows-2019 + cmp: vs2022 - - name: Linux fedora 35 - image: fedora:35 - cmp: gcc - configuration: default - base: "7.0" steps: - - name: "Build newer Git" - # actions/checkout@v2 wants git >=2.18 - # centos:7 has 1.8 - if: matrix.image=='centos:7' - run: | - yum -y install curl make gcc curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker - curl https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.29.0.tar.gz | tar -xz - cd git-* - make -j2 prefix=/usr/local all - make prefix=/usr/local install - cd .. - rm -rf git-* - type -a git - git --version - - name: "Redhat setup" - run: | - dnfyum() { - dnf -y "$@" || yum -y "$@" - return $? - } - dnfyum install python3 gdb make perl gcc-c++ glibc-devel readline-devel ncurses-devel perl-devel libevent-devel net-tools - git --version || dnfyum install git - # rather than just bite the bullet and link python3 -> python, - # people would rather just break all existing scripts... - [ -e /usr/bin/python ] || ln -sf /usr/bin/python3 /usr/bin/python - python --version - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: true - - name: Automatic core dumper analysis - uses: mdavidsaver/ci-core-dumper@master - name: Prepare and compile dependencies - working-directory: ./client run: python .ci/cue.py prepare - - name: Build main module - working-directory: ./client + - name: Build main module (example app) run: python .ci/cue.py build - name: Run main module tests - working-directory: ./client - run: python .ci/cue.py test - - name: Upload tapfiles Artifact - if: ${{ always() }} - uses: actions/upload-artifact@v3 + run: python .ci/cue.py -T 15M test + - name: Collect and show test results + run: python .ci/cue.py test-results + + build-cross: + defaults: + run: + working-directory: client + name: cross ${{ matrix.cross }} / ${{ matrix.cmp }} / ${{ matrix.configuration }} + runs-on: ubuntu-latest + env: + CMP: gcc + BCFG: default + CI_CROSS_TARGETS: ${{ matrix.cross }} + TEST: ${{ matrix.test }} + APT: re2c + strategy: + fail-fast: false + matrix: + # configuration: [default, static, debug, static-debug] + configuration: [default] + cross: + - linux-aarch64 + - linux-arm@arm-linux-gnueabi + - linux-arm@arm-linux-gnueabihf + - linux-ppc + - linux-ppc64 + - win32-x86-mingw + - windows-x64-mingw + - RTEMS-pc386-qemu@4.9 + - RTEMS-pc386-qemu@4.10 + - RTEMS-pc686-qemu@5 + include: + - cross: RTEMS-pc386-qemu@4.10 + test: NO + steps: + - uses: actions/checkout@v4 with: - name: tapfiles ${{ matrix.name }} - path: '**/O.*/*.tap' + submodules: true + - name: Prepare and compile dependencies + run: python .ci/cue.py prepare + - name: Build main module (example app) + run: python .ci/cue.py build + - name: Run main module tests + run: python .ci/cue.py -T 15M test - name: Collect and show test results - if: ${{ always() }} - working-directory: ./client run: python .ci/cue.py test-results From e39813c208fe278e2c56cdc1fa09ab83ba0a20cc Mon Sep 17 00:00:00 2001 From: Sky Brewer Date: Tue, 16 Apr 2024 10:28:24 +0200 Subject: [PATCH 3/3] Bump the timeout length for mac tests --- client/castApp/src/testsock.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/castApp/src/testsock.c b/client/castApp/src/testsock.c index dadc5be..0c69dff 100644 --- a/client/castApp/src/testsock.c +++ b/client/castApp/src/testsock.c @@ -84,7 +84,7 @@ static void testWakeup(void) sock.wakeup = wakeup[1]; - shSetTimeout(&sock, 100.0); /* something noticable */ + shSetTimeout(&sock, 110.0); /* something noticable */ testOk1(sizeof(junk)==send(wakeup[0], (char*)&junk, sizeof(junk), 0));