add ci configs back
authorMichael Wallner <mike@php.net>
Wed, 14 Oct 2020 09:33:03 +0000 (11:33 +0200)
committerMichael Wallner <mike@php.net>
Wed, 14 Oct 2020 09:33:03 +0000 (11:33 +0200)
.cirrus.yml [new file with mode: 0644]
.github/workflows/cmake-build-ci.yml [new file with mode: 0644]

diff --git a/.cirrus.yml b/.cirrus.yml
new file mode 100644 (file)
index 0000000..d4a7d4b
--- /dev/null
@@ -0,0 +1,62 @@
+env:
+  CMAKE_BUILD_TYPE:   Debug
+  BUILD_TESTING:      "ON"
+  ENABLE_SASL:        "ON"
+  ENABLE_HASH_HSIEH:  "ON"
+  ENABLE_DTRACE:      "ON"
+  VERBOSE:            "ON"
+  MEMCACHED_BINARY:   "/usr/local/bin/memcached"
+
+task:
+  name: Freebsd
+  env:
+    gitter: ENCRYPTED[92e34815ac1a27681bf868c8299bfa37f3cb98c7d88156884c85dfb33e786bd3124c5d624721fb13735d23f7c57ead4b]
+    ports: RELEASE_12_1_0
+  freebsd_instance:
+    image_family: freebsd-12-1
+  dependencies_script: |
+    pkg update
+    pkg upgrade -y
+    pkg install -y \
+      autotools \
+      bison \
+      cmake \
+      cyrus-sasl \
+      flex \
+      libevent \
+      pkgconf \
+      subversion \
+      sudo
+  memcached_script: |
+    svn co https://svn.freebsd.org/ports/tags/${ports}/databases/memcached memcached
+    svn co https://svn.freebsd.org/ports/tags/${ports}/Mk /usr/ports/Mk
+    svn co https://svn.freebsd.org/ports/tags/${ports}/Templates /usr/ports/Templates
+    cd memcached
+    echo bin/memcached > pkg-plist
+    make all install SASLPWDB_CONFIGURE_ENABLE=sasl-pwdb OPTIONS_SET="SASL SASLPWDB" OPTIONS_DEFINE="SASL SASLPWDB"
+    cd ..
+  prepare_script: |
+    mkdir build
+    chown nobody build
+    chsh -s /bin/sh nobody
+  configure_script: |
+    sudo -E -u nobody cmake -S . -B build
+  build_script: |
+    sudo -E -u nobody make -C build -j2 all
+  test_script: |
+    sudo -E -u nobody make -C build -j2 test/fast
+  install_script: |
+    sudo -E -u nobody make -C build install DESTDIR=/tmp
+  on_success:
+    gitter_success_script: |
+      curl -sS "${gitter}" \
+        --data-urlencode "level=info" \
+        --data-urlencode "message=Cirrus-CI build for ${CIRRUS_BRANCH} on ${OS} [succeeded](https://cirrus-ci.org/task/${CIRRUS_TASK_ID})"
+  on_failure:
+    gitter_failure_script: |
+      curl -sS "${gitter}" \
+        --data-urlencode "level=error" \
+        --data-urlencode "message=Cirrus-CI build for ${CIRRUS_BRANCH} on ${OS} [failed](https://cirrus-ci.org/task/${CIRRUS_TASK_ID})"
+    testlog_artifacts:
+      path: build/Testing/Temporary/LastTest.log
+      type: text/plain
diff --git a/.github/workflows/cmake-build-ci.yml b/.github/workflows/cmake-build-ci.yml
new file mode 100644 (file)
index 0000000..b45102c
--- /dev/null
@@ -0,0 +1,405 @@
+# Generated file; do not edit!
+name: cmake-build-ci
+on:
+  push:
+    paths-ignore:
+      - "docs/**"
+      - ".travis.yml"
+      - ".cirrus.yml"
+    branches-ignore:
+      - gh-pages
+  pull_request:
+    branches:
+      - master
+      - v1.x
+env:
+  # defaults
+  INSTALL_MEMCACHED:  memcached
+  CMAKE_BUILD_TYPE:   Debug
+  BUILD_TESTING:      "ON"
+  ENABLE_SASL:        "OFF"
+  ENABLE_HASH_HSIEH:  "ON"
+  ENABLE_DTRACE:      "OFF"
+  VERBOSE:            "ON"
+  OS_VND:   Linux #
+  OS_VER:   ubuntu-20.04 #
+  CC_VND:   gnu #
+  CC_VER:   cur #
+
+jobs:
+
+  # new memcached
+  dbg-new:
+    name: dbg-new (ubuntu-20.04, gnu, cur)
+    runs-on: ubuntu-20.04 #
+    env:
+      INSTALL_MEMCACHED:
+      MEMCACHED_PREFIX: /tmp
+      ENABLE_SASL:      "ON"
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions/checkout@v2
+        with:
+          repository: memcached/memcached
+          path: memcached
+          ref: 1.6.7
+      - name: Prepare environment (for cur gnu on ubuntu-20.04)
+        if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
+        run: |
+          echo CC="gcc-9" >> ${GITHUB_ENV}
+          echo CXX="g++-9" >> ${GITHUB_ENV}
+      - name: Install dependencies (Linux)
+        if: runner.os == 'Linux'
+        run: |
+          sudo apt-get install \
+            libevent-dev \
+            libsasl2-dev \
+            ${INSTALL_MEMCACHED} \
+            ${INSTALL_CC} ${INSTALL_CXX}
+          sudo systemctl stop memcached || true
+      - name: Install dependencies (Mac)
+        if: runner.os == 'macOS'
+        run: |
+          brew install bison flex ${INSTALL_MEMCACHED}
+          brew services stop memcached || true
+          echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
+      - name: Build memcached
+        run: |
+          if test -d memcached
+          then
+            cd memcached
+            ./autogen.sh
+            ./configure CFLAGS="-O2 -pipe" \
+              --prefix=${MEMCACHED_PREFIX} \
+              --enable-sasl \
+              --enable-sasl-pwdb \
+              --disable-coverage \
+              --disable-dependency-tracking \
+              --disable-docs \
+              --disable-extstore \
+              --disable-option-checking \
+              ;
+            make -j2
+            make install
+            cd ..
+            echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
+          fi
+      - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
+        run: cmake -S . -B build
+      - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
+        run: make -C build -j2 all
+      - name: Test
+        run: make -C build -j2 test
+      - name: Install
+        run: make -C build -j2 install DESTDIR=.
+      - name: Failed tests log
+        if: ${{ failure() }}
+        run: cat build/Testing/Temporary/LastTest.log || true
+
+  # sanitizer build
+  dbg-san:
+    name: dbg-san (ubuntu-20.04, gnu, cur)
+    runs-on: ubuntu-20.04 #
+    env:
+      ENABLE_SANITIZERS: "address;undefined"
+    steps:
+      - uses: actions/checkout@v2
+      - name: Prepare environment (for cur gnu on ubuntu-20.04)
+        if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
+        run: |
+          echo CC="gcc-9" >> ${GITHUB_ENV}
+          echo CXX="g++-9" >> ${GITHUB_ENV}
+      - name: Install dependencies (Linux)
+        if: runner.os == 'Linux'
+        run: |
+          sudo apt-get install \
+            libevent-dev \
+            libsasl2-dev \
+            ${INSTALL_MEMCACHED} \
+            ${INSTALL_CC} ${INSTALL_CXX}
+          sudo systemctl stop memcached || true
+      - name: Install dependencies (Mac)
+        if: runner.os == 'macOS'
+        run: |
+          brew install bison flex ${INSTALL_MEMCACHED}
+          brew services stop memcached || true
+          echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
+      - name: Build memcached
+        run: |
+          if test -d memcached
+          then
+            cd memcached
+            ./autogen.sh
+            ./configure CFLAGS="-O2 -pipe" \
+              --prefix=${MEMCACHED_PREFIX} \
+              --enable-sasl \
+              --enable-sasl-pwdb \
+              --disable-coverage \
+              --disable-dependency-tracking \
+              --disable-docs \
+              --disable-extstore \
+              --disable-option-checking \
+              ;
+            make -j2
+            make install
+            cd ..
+            echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
+          fi
+      - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
+        run: cmake -S . -B build
+      - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
+        run: make -C build -j2 all
+      - name: Test
+        run: make -C build -j2 test
+      - name: Install
+        run: make -C build -j2 install DESTDIR=.
+      - name: Failed tests log
+        if: ${{ failure() }}
+        run: cat build/Testing/Temporary/LastTest.log || true
+
+  # coverage build
+  dbg-cov:
+    name: dbg-cov (ubuntu-20.04, gnu, cur)
+    runs-on: ubuntu-20.04 #
+    env:
+      CFLAGS: -O0 --coverage
+      CXXFLAGS: -O0 --coverage
+    steps:
+      - uses: actions/checkout@v2
+      - name: Prepare environment (for cur gnu on ubuntu-20.04)
+        if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
+        run: |
+          echo CC="gcc-9" >> ${GITHUB_ENV}
+          echo CXX="g++-9" >> ${GITHUB_ENV}
+      - name: Install dependencies (Linux)
+        if: runner.os == 'Linux'
+        run: |
+          sudo apt-get install \
+            libevent-dev \
+            libsasl2-dev \
+            ${INSTALL_MEMCACHED} \
+            ${INSTALL_CC} ${INSTALL_CXX}
+          sudo systemctl stop memcached || true
+      - name: Install dependencies (Mac)
+        if: runner.os == 'macOS'
+        run: |
+          brew install bison flex ${INSTALL_MEMCACHED}
+          brew services stop memcached || true
+          echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
+      - name: Build memcached
+        run: |
+          if test -d memcached
+          then
+            cd memcached
+            ./autogen.sh
+            ./configure CFLAGS="-O2 -pipe" \
+              --prefix=${MEMCACHED_PREFIX} \
+              --enable-sasl \
+              --enable-sasl-pwdb \
+              --disable-coverage \
+              --disable-dependency-tracking \
+              --disable-docs \
+              --disable-extstore \
+              --disable-option-checking \
+              ;
+            make -j2
+            make install
+            cd ..
+            echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
+          fi
+      - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
+        run: cmake -S . -B build
+      - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
+        run: make -C build -j2 all
+      - name: Test
+        run: make -C build -j2 test
+      - name: Install
+        run: make -C build -j2 install DESTDIR=.
+      - name: Failed tests log
+        if: ${{ failure() }}
+        run: cat build/Testing/Temporary/LastTest.log || true
+      - uses: codecov/codecov-action@v1.0.13
+
+  # mac build
+  dbg-mac:
+    name: dbg-mac (macos-10.15, clang, apple)
+    runs-on: macos-10.15 #
+    continue-on-error: true
+    steps:
+      - uses: actions/checkout@v2
+      - name: Install dependencies (Linux)
+        if: runner.os == 'Linux'
+        run: |
+          sudo apt-get install \
+            libevent-dev \
+            libsasl2-dev \
+            ${INSTALL_MEMCACHED} \
+            ${INSTALL_CC} ${INSTALL_CXX}
+          sudo systemctl stop memcached || true
+      - name: Install dependencies (Mac)
+        if: runner.os == 'macOS'
+        run: |
+          brew install bison flex ${INSTALL_MEMCACHED}
+          brew services stop memcached || true
+          echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
+      - name: Build memcached
+        run: |
+          if test -d memcached
+          then
+            cd memcached
+            ./autogen.sh
+            ./configure CFLAGS="-O2 -pipe" \
+              --prefix=${MEMCACHED_PREFIX} \
+              --enable-sasl \
+              --enable-sasl-pwdb \
+              --disable-coverage \
+              --disable-dependency-tracking \
+              --disable-docs \
+              --disable-extstore \
+              --disable-option-checking \
+              ;
+            make -j2
+            make install
+            cd ..
+            echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
+          fi
+      - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
+        run: cmake -S . -B build
+      - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
+        run: make -C build -j2 all
+      - name: Test
+        run: make -C build -j2 test
+      - name: Install
+        run: make -C build -j2 install DESTDIR=.
+      - name: Failed tests log
+        if: ${{ failure() }}
+        run: cat build/Testing/Temporary/LastTest.log || true
+
+  # release builds
+  release:
+    strategy:
+      fail-fast: false
+      matrix:
+        os_ver: [ubuntu-20.04, ubuntu-18.04]
+        cc_vnd: [gnu, clang]
+        cc_ver: [new, cur, old]
+    runs-on: ${{ matrix.os_ver }}
+    continue-on-error: ${{ matrix.cc_vnd == 'clang' }}
+    env:
+      CMAKE_BUILD_TYPE: Release
+      OS_VND: Linux
+      OS_VER: ${{ matrix.os_ver }}
+      CC_VND: ${{ matrix.cc_vnd }}
+      CC_VER: ${{ matrix.cc_ver }}
+    steps:
+      - uses: actions/checkout@v2
+      - name: Prepare environment (for new gnu on ubuntu-20.04)
+        if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
+        run: |
+          echo CC="gcc-10" >> ${GITHUB_ENV}
+          echo CXX="g++-10" >> ${GITHUB_ENV}
+          echo INSTALL_CC="gcc-10" >> ${GITHUB_ENV}
+          echo INSTALL_CXX="g++-10" >> ${GITHUB_ENV}
+      - name: Prepare environment (for cur gnu on ubuntu-20.04)
+        if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
+        run: |
+          echo CC="gcc-9" >> ${GITHUB_ENV}
+          echo CXX="g++-9" >> ${GITHUB_ENV}
+      - name: Prepare environment (for old gnu on ubuntu-20.04)
+        if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
+        run: |
+          echo CC="gcc-8" >> ${GITHUB_ENV}
+          echo CXX="g++-8" >> ${GITHUB_ENV}
+      - name: Prepare environment (for new clang on ubuntu-20.04)
+        if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
+        run: |
+          echo CC="clang-10" >> ${GITHUB_ENV}
+          echo CXX="clang++-10" >> ${GITHUB_ENV}
+      - name: Prepare environment (for cur clang on ubuntu-20.04)
+        if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
+        run: |
+          echo CC="clang-9" >> ${GITHUB_ENV}
+          echo CXX="clang++-9" >> ${GITHUB_ENV}
+      - name: Prepare environment (for old clang on ubuntu-20.04)
+        if: (env.OS_VER=='ubuntu-20.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
+        run: |
+          echo CC="clang-8" >> ${GITHUB_ENV}
+          echo CXX="clang++-8" >> ${GITHUB_ENV}
+      - name: Prepare environment (for new gnu on ubuntu-18.04)
+        if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='new')
+        run: |
+          echo CC="gcc-9" >> ${GITHUB_ENV}
+          echo CXX="g++-9" >> ${GITHUB_ENV}
+      - name: Prepare environment (for cur gnu on ubuntu-18.04)
+        if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='cur')
+        run: |
+          echo CC="gcc-8" >> ${GITHUB_ENV}
+          echo CXX="g++-8" >> ${GITHUB_ENV}
+      - name: Prepare environment (for old gnu on ubuntu-18.04)
+        if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='gnu') && (env.CC_VER=='old')
+        run: |
+          echo CC="gcc-7" >> ${GITHUB_ENV}
+          echo CXX="g++-7" >> ${GITHUB_ENV}
+      - name: Prepare environment (for new clang on ubuntu-18.04)
+        if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='new')
+        run: |
+          echo CC="clang-9" >> ${GITHUB_ENV}
+          echo CXX="clang++-9" >> ${GITHUB_ENV}
+      - name: Prepare environment (for cur clang on ubuntu-18.04)
+        if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='cur')
+        run: |
+          echo CC="clang-8" >> ${GITHUB_ENV}
+          echo CXX="clang++-8" >> ${GITHUB_ENV}
+      - name: Prepare environment (for old clang on ubuntu-18.04)
+        if: (env.OS_VER=='ubuntu-18.04') && (env.CC_VND=='clang') && (env.CC_VER=='old')
+        run: |
+          echo CC="clang-6.0" >> ${GITHUB_ENV}
+          echo CXX="clang++-6.0" >> ${GITHUB_ENV}
+          echo CXXFLAGS="-stdlib=libc++" >> ${GITHUB_ENV}
+      - name: Install dependencies (Linux)
+        if: runner.os == 'Linux'
+        run: |
+          sudo apt-get install \
+            libevent-dev \
+            libsasl2-dev \
+            ${INSTALL_MEMCACHED} \
+            ${INSTALL_CC} ${INSTALL_CXX}
+          sudo systemctl stop memcached || true
+      - name: Install dependencies (Mac)
+        if: runner.os == 'macOS'
+        run: |
+          brew install bison flex ${INSTALL_MEMCACHED}
+          brew services stop memcached || true
+          echo MEMCACHED_BINARY="/usr/local/bin/memcached" >> ${GITHUB_ENV}
+      - name: Build memcached
+        run: |
+          if test -d memcached
+          then
+            cd memcached
+            ./autogen.sh
+            ./configure CFLAGS="-O2 -pipe" \
+              --prefix=${MEMCACHED_PREFIX} \
+              --enable-sasl \
+              --enable-sasl-pwdb \
+              --disable-coverage \
+              --disable-dependency-tracking \
+              --disable-docs \
+              --disable-extstore \
+              --disable-option-checking \
+              ;
+            make -j2
+            make install
+            cd ..
+            echo MEMCACHED_BINARY="${MEMCACHED_PREFIX}/bin/memcached" >> ${GITHUB_ENV}
+          fi
+      - name: Generate build tree (${{ env.CMAKE_BUILD_TYPE }})
+        run: cmake -S . -B build
+      - name: Build all with ${{ env.CXX }} ${{ env.CXXFLAGS }}
+        run: make -C build -j2 all
+      - name: Test
+        run: make -C build -j2 test
+      - name: Install
+        run: make -C build -j2 install DESTDIR=.
+      - name: Failed tests log
+        if: ${{ failure() }}
+        run: cat build/Testing/Temporary/LastTest.log || true