diff options
| -rw-r--r-- | .github/workflows/linux_gcc_32bit.yml | 24 | ||||
| -rwxr-xr-x | .github/workflows/linux_gcc_32bit/start.sh | 56 | ||||
| -rwxr-xr-x | travis/install.sh | 2 |
3 files changed, 81 insertions, 1 deletions
diff --git a/.github/workflows/linux_gcc_32bit.yml b/.github/workflows/linux_gcc_32bit.yml new file mode 100644 index 00000000..455bf301 --- /dev/null +++ b/.github/workflows/linux_gcc_32bit.yml @@ -0,0 +1,24 @@ +name: Linux GCC 32bit + +on: [push, pull_request] + +jobs: + + linux_gcc_32bit: + runs-on: ubuntu-latest + if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')" + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Cache + uses: actions/cache@v2 + id: cache + with: + path: | + ${{ github.workspace }}/ccache.tar.gz + key: ${{ runner.os }}-cache-gcc32bit-${{ github.run_id }} + restore-keys: ${{ runner.os }}-cache-gcc32bit- + + - name: Run + run: docker run -e CI -e WORK_DIR="$PWD" -v $PWD:$PWD ubuntu:20.04 $PWD/.github/workflows/linux_gcc_32bit/start.sh diff --git a/.github/workflows/linux_gcc_32bit/start.sh b/.github/workflows/linux_gcc_32bit/start.sh new file mode 100755 index 00000000..42746fe8 --- /dev/null +++ b/.github/workflows/linux_gcc_32bit/start.sh @@ -0,0 +1,56 @@ +#!/bin/bash + +set -e + +export TRAVIS_OS_NAME=linux +export BUILD_NAME=linux_gcc_32bit +export TRAVIS_BUILD_DIR="$WORK_DIR" + +ARCH=i386 + +dpkg --add-architecture i386 +apt update -y + +DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ + autoconf automake libtool gcc-multilib g++-multilib g++ sqlite3 \ + python3-pip \ + make cmake ccache pkg-config tar zip \ + libsqlite3-dev:$ARCH libtiff-dev:$ARCH libcurl4-openssl-dev:$ARCH \ + jq + +pip3 install --user jsonschema +export PATH=$HOME/.local/bin:$PATH + +export CXXFLAGS='-g -O2 -m32 -D_GLIBCXX_ASSERTIONS' +export CFLAGS='-g -O2 -m32' +export TIFF_CFLAGS=-I/usr/include/i386-linux-gnu +export TIFF_LIBS="-L/usr/lib/i386-linux-gnu -ltiff" +export SQLITE3_CFLAGS=-I/usr/include/i386-linux-gnu +export SQLITE3_LIBS="-L/usr/lib/i386-linux-gnu -lsqlite3" +export CC="ccache gcc" +export CXX="ccache g++" + +NPROC=$(nproc) +echo "NPROC=${NPROC}" +export MAKEFLAGS="-j ${NPROC}" + +cd "$WORK_DIR" + +if test -f "$WORK_DIR/ccache.tar.gz"; then + echo "Restoring ccache..." + (cd $HOME && tar xzf "$WORK_DIR/ccache.tar.gz") +fi + +export CCACHE_CPP2=yes +export PROJ_DB_CACHE_DIR="$HOME/.ccache" + +ccache -M 500M +ccache -s + +CFLAGS="-Werror $CFLAGS" CXXFLAGS="-Werror $CXXFLAGS" ./travis/install.sh + +ccache -s + +echo "Saving ccache..." +rm -f "$WORK_DIR/ccache.tar.gz" +(cd $HOME && tar czf "$WORK_DIR/ccache.tar.gz" .ccache) diff --git a/travis/install.sh b/travis/install.sh index a4d8352a..84e7de25 100755 --- a/travis/install.sh +++ b/travis/install.sh @@ -99,7 +99,7 @@ if [ $TRAVIS_OS_NAME != "osx" ]; then fi fi -if [ "$BUILD_NAME" != "linux_gcc8" ]; then +if [ "$BUILD_NAME" != "linux_gcc8" -a "$BUILD_NAME" != "linux_gcc_32bit" ]; then # cmake build from generated tarball mkdir build_cmake |
