diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2020-11-27 20:22:38 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2020-11-27 20:41:42 +0100 |
| commit | cdac370a9c02df553ee4a8534b892b73687996de (patch) | |
| tree | 638a73321871aa324b38c621667bd165b97294b2 /.github | |
| parent | a24c02199fbab7d25c5e9586677c89aff9c5cb6c (diff) | |
| download | PROJ-cdac370a9c02df553ee4a8534b892b73687996de.tar.gz PROJ-cdac370a9c02df553ee4a8534b892b73687996de.zip | |
Github action: add a linux_gcc_32bit job
Diffstat (limited to '.github')
| -rw-r--r-- | .github/workflows/linux_gcc_32bit.yml | 24 | ||||
| -rwxr-xr-x | .github/workflows/linux_gcc_32bit/start.sh | 56 |
2 files changed, 80 insertions, 0 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) |
