diff --git a/.github/workflows/mysql_gis.yml b/.github/workflows/mysql_gis.yml new file mode 100644 index 0000000000..c930e28cf4 --- /dev/null +++ b/.github/workflows/mysql_gis.yml @@ -0,0 +1,82 @@ +############################################################################## +# GitHub Actions Workflow to run gis tests on mysql with boost geometry develop +# +# Copyright (c) 2024 Oracle and/or its affiliates. +# Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle +# +# Use, modification and distribution is subject to the Boost Software License, +# Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt) +############################################################################## +name: mysql_gis + +on: [push, pull_request] + +jobs: + steps: + - name: Set up environment + id: setenv + run: | + if [[ "$GITHUB_REF" == *master ]]; then + echo "BOOST_BRANCH=master" >> $GITHUB_ENV + else + echo "BOOST_BRANCH=develop" >> $GITHUB_ENV + fi + echo "BOOST_SELF=$(basename $GITHUB_WORKSPACE)" >> $GITHUB_ENV + echo "BOOST_ROOT=$GITHUB_WORKSPACE/boost-root" >> $GITHUB_ENV + echo "boost_self=$(basename $GITHUB_WORKSPACE)" >> "$GITHUB_OUTPUT" + echo "boost_root=$GITHUB_WORKSPACE/boost-root" >> "$GITHUB_OUTPUT" + + - name: Clone boostorg/boost + run: | + git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git $BOOST_ROOT + cd $BOOST_ROOT + git submodule update -q --init libs/headers + git submodule update -q --init tools/boost_install + git submodule update -q --init tools/boostdep + git submodule update -q --init tools/build + mkdir -p libs/$BOOST_SELF + + - uses: actions/checkout@v2 + with: + path: ${{ steps.setenv.outputs.boost_root }}/libs/${{ steps.setenv.outputs.boost_self }} + + - name: Run tools/boostdep/depinst/depinst.py + run: | + cd $BOOST_ROOT + python tools/boostdep/depinst/depinst.py --include benchmark --include example --include examples --include tools $BOOST_SELF + + - name: Install + run: | + # Required for compilers not available in ubuntu 20.04 + sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 + sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 + sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ xenial main" + sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ xenial universe" + sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ bionic main" + sudo add-apt-repository "deb http://dk.archive.ubuntu.com/ubuntu/ bionic universe" + sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test + sudo apt -q -y update + sudo apt -q -y install clang-${{ matrix.version }} g++-multilib + + - name: Bootstrap boostorg/boost + run: | + gcc --version + cd $BOOST_ROOT + ./bootstrap.sh --with-toolset=gcc + ./b2 headers + + - name: Clone mysql-server and copy boost develop + run: | + git clone git@github.com:mysql/mysql-server.git + rm mysql-server/extra/boost/boost_*/boost/ -rf + cp -r $BOOST_ROOT/boost mysql-server/extra/boost/boost_*/ + + - name: Build mysql with boost develop + run: | + cd mysql-server + mkdir bld + cd bld + cmake .. + make -j8 +