From e24c45e086462d597eda71dbbd39cd90864d82ce Mon Sep 17 00:00:00 2001 From: Luca Boccassi Date: Sat, 16 Apr 2022 19:33:28 +0200 Subject: [PATCH] Problem: out of date with zproject Solution: regenerate --- .github/workflows/CI.yaml | 118 ++++++++++++++++++++++++++++++++++++++ ci_build.sh | 11 +++- src/Makemodule.am | 4 ++ 3 files changed, 130 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/CI.yaml diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml new file mode 100644 index 000000000..84b81fc2d --- /dev/null +++ b/.github/workflows/CI.yaml @@ -0,0 +1,118 @@ +# Github Actions CI script +# This is a skeleton created by zproject. +# You can add hand-written code here. + +name: CI +on: + push: + pull_request: + + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + BUILD_TYPE: default + DRAFT: enabled + CLANG_FORMAT: clang-format-11 + PACKAGES: automake autoconf clang-format-11 git uuid-dev libsystemd-dev liblz4-dev libnss3-dev libzmq3-dev libcurl4-nss-dev libmicrohttpd-dev asciidoc xmlto + - os: ubuntu-latest + BUILD_TYPE: default + DRAFT: disabled + CLANG_FORMAT: clang-format-11 + PACKAGES: automake autoconf clang-format-11 git uuid-dev libsystemd-dev liblz4-dev libnss3-dev libzmq3-dev libcurl4-nss-dev libmicrohttpd-dev + - os: ubuntu-latest + BUILD_TYPE: valgrind + DRAFT: enabled + PACKAGES: automake autoconf valgrind git uuid-dev libsystemd-dev liblz4-dev libnss3-dev libzmq3-dev libcurl4-nss-dev libmicrohttpd-dev ubuntu-dbgsym-keyring + - os: ubuntu-latest + BUILD_TYPE: cmake + DRAFT: enabled + PACKAGES: cmake git uuid-dev libsystemd-dev liblz4-dev libnss3-dev libzmq3-dev libcurl4-nss-dev libmicrohttpd-dev + - os: macos-latest + BUILD_TYPE: default + PACKAGES: automake autoconf ossp-uuid zeromq curl libmicrohttpd + DRAFT: enabled + CI_SELFTEST: no + - os: macos-latest + BUILD_TYPE: default + DRAFT: disabled + CI_SELFTEST: no + PACKAGES: automake autoconf ossp-uuid zeromq curl libmicrohttpd +# For non-cmake users, there is an autotools solution with a bit more overhead +# to have dependencies ready and pass configure script before making this check). +# Note that the autotools variant will also require dependencies preinstalled to +# pass its configure script: + - os: ubuntu-latest + BUILD_TYPE: cmake + DO_CLANG_FORMAT_CHECK: 1 + CLANG_FORMAT: clang-format-11 + PACKAGES: cmake clang-format-11 git uuid-dev libsystemd-dev liblz4-dev libnss3-dev libzmq3-dev libcurl4-nss-dev libmicrohttpd-dev +# Note: the ABI compliance checker script currently assumes that: +# 1) Your project sources have a "latest_release" branch or tag +# to check out and compare the current commit's ABI to; +# 2) Prerequisites are available as packages - no custom rebuilds. + - os: ubuntu-latest + BUILD_TYPE: abi-compliance-checker + PACKAGES: universal-ctags abi-dumper abi-compliance-checker git uuid-dev libsystemd-dev liblz4-dev libnss3-dev libzmq3-dev libcurl4-nss-dev libmicrohttpd-dev + - os: ubuntu-latest + BUILD_TYPE: check_zproject + PACKAGES: git uuid-dev libsystemd-dev liblz4-dev libnss3-dev libzmq3-dev libcurl4-nss-dev libmicrohttpd-dev generator-scripting-language zproject + env: +# Set CI_TIME: true to enable build-step profiling +# Set CI_TRACE: true to enable shell script tracing +# Set CI_CONFIG_QUIET: true to enable "configure --quiet" (only report stderr) +# Set CI_REQUIRE_GOOD_GITIGNORE: false to NOT fail if "git status -s" is not clean +# Set CI_REQUIRE_GOOD_CLANG_FORMAT: true to fail if "clang-format" check is not clean + CI_TIME: false + CI_TRACE: false + CI_CONFIG_QUIET: true + CI_REQUIRE_GOOD_GITIGNORE: false + CI_REQUIRE_GOOD_CLANG_FORMAT: false + CI_TEST_DISTCHECK: true + platform: ${{ matrix.platform }} + configuration: ${{ matrix.configuration }} + ENABLE_DRAFTS: ${{ matrix.ENABLE_DRAFTS }} + BUILD_TYPE: ${{ matrix.BUILD_TYPE }} + DRAFT: ${{ matrix.DRAFT }} + DO_CLANG_FORMAT_CHECK: ${{ matrix.DO_CLANG_FORMAT_CHECK }} + CLANG_FORMAT: ${{ matrix.CLANG_FORMAT }} + CI_SELFTEST: ${{ matrix.CI_SELFTEST }} + steps: + - name: Add debian packages + if: matrix.os == 'ubuntu-latest' + uses: myci-actions/add-deb-repo@10 + with: + repo-name: obs + repo: deb http://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-stable/xUbuntu_20.04/ ./ + keys-asc: https://download.opensuse.org/repositories/network:/messaging:/zeromq:/git-stable/xUbuntu_20.04/Release.key + install: ${{ matrix.PACKAGES }} + - name: Add dbgsym packages (main) + if: matrix.os == 'ubuntu-latest' && matrix.BUILD_TYPE == 'valgrind' + uses: myci-actions/add-deb-repo@10 + with: + repo-name: dbgsym-main + repo: deb http://ddebs.ubuntu.com focal main + - name: Add dbgsym packages (updates) + if: matrix.os == 'ubuntu-latest' && matrix.BUILD_TYPE == 'valgrind' + uses: myci-actions/add-deb-repo@10 + with: + repo-name: dbgsym-updates + repo: deb http://ddebs.ubuntu.com focal-updates main + install: libcurl3-nss-dbgsym + - name: Add brew packages + if: matrix.os == 'macos-latest' + shell: bash + run: brew install ${{ matrix.PACKAGES }} + - uses: actions/checkout@v2 + with: + path: czmq + - name: build + if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' + shell: bash + working-directory: czmq + run: ./ci_build.sh diff --git a/ci_build.sh b/ci_build.sh index 93dc9839e..df2782cdf 100755 --- a/ci_build.sh +++ b/ci_build.sh @@ -189,6 +189,11 @@ default|default-Werror|default-with-docs|valgrind|clang-format-check) if [ -z "${CI_CONFIG_QUIET-}" ] || [ "${CI_CONFIG_QUIET-}" = yes ] || [ "${CI_CONFIG_QUIET-}" = true ]; then CONFIG_OPTS+=("--quiet") fi + if [ -z "${CI_SELFTEST-}" ] || [ "${CI_SELFTEST-}" = yes ] || [ "${CI_SELFTEST-}" = true ]; then + CONFIG_OPTS+=("--enable-czmq_selftest") + else + CONFIG_OPTS+=("--disable-czmq_selftest") + fi if [ "$HAVE_CCACHE" = yes ] && [ "${COMPILER_FAMILY}" = GCC ]; then PATH="/usr/lib/ccache:$PATH" @@ -250,7 +255,7 @@ default|default-Werror|default-with-docs|valgrind|clang-format-check) # Start of recipe for dependency: libzmq fold_start dependency.libzmq "Install dependency libzmq" if ! ((command -v dpkg >/dev/null 2>&1 && dpkg -s libzmq3-dev >/dev/null 2>&1) || \ - (command -v brew >/dev/null 2>&1 && brew ls --versions libzmq >/dev/null 2>&1)) \ + (command -v brew >/dev/null 2>&1 && brew ls --versions zeromq >/dev/null 2>&1)) \ ; then echo "" BASE_PWD=${PWD} @@ -295,7 +300,7 @@ default|default-Werror|default-with-docs|valgrind|clang-format-check) # Start of recipe for dependency: uuid fold_start dependency.uuid "Install dependency uuid" if ! ((command -v dpkg >/dev/null 2>&1 && dpkg -s uuid-dev >/dev/null 2>&1) || \ - (command -v brew >/dev/null 2>&1 && brew ls --versions uuid >/dev/null 2>&1)) \ + (command -v brew >/dev/null 2>&1 && brew ls --versions ossp-uuid >/dev/null 2>&1)) \ ; then echo "" echo "WARNING: Can not build prerequisite 'uuid'" >&2 @@ -337,7 +342,7 @@ default|default-Werror|default-with-docs|valgrind|clang-format-check) # Start of recipe for dependency: libcurl fold_start dependency.libcurl "Install dependency libcurl" if ! ((command -v dpkg >/dev/null 2>&1 && dpkg -s libcurl4-nss-dev >/dev/null 2>&1) || \ - (command -v brew >/dev/null 2>&1 && brew ls --versions libcurl >/dev/null 2>&1)) \ + (command -v brew >/dev/null 2>&1 && brew ls --versions curl >/dev/null 2>&1)) \ ; then echo "" BASE_PWD=${PWD} diff --git a/src/Makemodule.am b/src/Makemodule.am index fe695fff8..b9a0bbf1c 100644 --- a/src/Makemodule.am +++ b/src/Makemodule.am @@ -180,6 +180,7 @@ code: cd $(srcdir)/src; gsl -topdir:.. -zproject:1 -private:1 -q zgossip_msg.xml cd $(srcdir); gsl -target:- project.xml +if ENABLE_CZMQ_SELFTEST # Directories with test fixtures optionally provided by the project, # and with volatile RW data possibly created by a selftest program. # It is up to the project authors to populate the RO directory with @@ -1919,6 +1920,7 @@ coverage: src/czmq_selftest @echo "call make clean && configure --with-gcov to enable code coverage" @exit 1 endif +endif #ENABLE_CZMQ_SELFTEST bindings: python-bindings @@ -2076,10 +2078,12 @@ check-gitignore: echo "SKIP: $@ (no git)"; exit 0 ; \ fi ) +if ENABLE_CZMQ_SELFTEST # This calls the recipe above after building the project products and # the selftest binary, and preparing the workspace for self-testing: check-gitignore-all: all src/czmq_selftest $(top_builddir)/$(SELFTEST_DIR_RW) $(top_builddir)/$(SELFTEST_DIR_RO) $@$(MAKE) check-gitignore +endif #ENABLE_CZMQ_SELFTEST ################################################################################