From 3339ea8eb6dc5323a8fcc1a56e54ffbd4a238df7 Mon Sep 17 00:00:00 2001 From: Roland Conybeare Date: Thu, 25 Apr 2024 13:44:47 -0400 Subject: [PATCH] xo-cmake: github: + workflow using docker-xo-builder --- .github/workflows/xo-cpp-main.yml | 73 +++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 .github/workflows/xo-cpp-main.yml diff --git a/.github/workflows/xo-cpp-main.yml b/.github/workflows/xo-cpp-main.yml new file mode 100644 index 0000000..dfa221f --- /dev/null +++ b/.github/workflows/xo-cpp-main.yml @@ -0,0 +1,73 @@ +name: XO cmake xo-cpp-builder + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Release + +jobs: + build: + # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. + # You can convert this to a matrix build if you need cross-platform coverage. + # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix + runs-on: ubuntu-latest + + container: + # custom docker image. see github.com:rconybea/docker-xo-builder for definition + image: ghcr.io/rconybea/docker-xo-builder:v1 + + steps: + - name: xo-cmake + run: | + # treat github.com as known host to prevent shtoopid SSL errors + mkdir -p ~/.ssh + ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts + cat ~/.ssh/known_hosts + + git config --global http.sslVerify false + + XO_NAME=xo-cmake + XO_SRC=repo/${XO_NAME} + XO_BUILDDIR=${{github.workspace}}/build_${XO_NAME} + PREFIX=${{github.workspace}}/local + + XO_REPO=https://github.com/rconybea/xo-cmake.git + + mkdir -p ${XO_SRC} + mkdir -p ${XO_BUILDDIR} + + echo "::group::clone ${XO_NAME}" + export GIT_SSH_COMMAND='ssh -o StrictHostKeyChecking=no' + export GIT_SSL_NOVERIFY=true + git clone ${XO_REPO} ${XO_SRC} + echo "::endgroup" + + echo "::group::configure ${XO_NAME}" + cmake -B ${XO_BUILDDIR} -DCMAKE_INSTALL_PREFIX=${PREFIX} -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} ${XO_SRC} + echo "::endgroup" + + echo "::group::compile ${XO_NAME}" + cmake --build ${XO_BUILDDIR} -j + echo "::endgroup" + + echo "::group::local install ${XO_NAME}" + cmake --install ${XO_BUILDDIR} + echo "::endgroup" + + echo "::group::local dir tree" + tree ${PREFIX} + echo "::endgroup" + + echo "::group::verify" + ${PREFIX}/xo-cmake-config --help + echo "$(${PREFIX}/xo-cmake-config --lcov-exe)" + echo "$(${PREFIX}/xo-cmake-config --genhtml-exe)" + echo "$(${PREFIX}/xo-cmake-config --lcov-harness-exe)" + echo "$(${PREFIX}/xo-cmake-config --gen-ccov-template)" + echo "$(${PREFIX}/xo-cmake-config --cmake-module-path)" + echo "::endgroup"