aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEven Rouault <even.rouault@spatialys.com>2020-11-26 19:52:14 +0100
committerEven Rouault <even.rouault@spatialys.com>2020-11-26 20:31:08 +0100
commit7562eee171f3a70acd7e012bff7c150b8dcd647c (patch)
treea1d5d655e0ede4cbba0792e873f73df8c60326fc
parente7fc87b21ed9a3f193e750d24371c47615689831 (diff)
downloadPROJ-7562eee171f3a70acd7e012bff7c150b8dcd647c.tar.gz
PROJ-7562eee171f3a70acd7e012bff7c150b8dcd647c.zip
Github action: add a clang linux build job
-rw-r--r--.github/workflows/clang_linux.yml24
-rwxr-xr-x.github/workflows/clang_linux/start.sh32
2 files changed, 56 insertions, 0 deletions
diff --git a/.github/workflows/clang_linux.yml b/.github/workflows/clang_linux.yml
new file mode 100644
index 00000000..ba52cc95
--- /dev/null
+++ b/.github/workflows/clang_linux.yml
@@ -0,0 +1,24 @@
+name: CLang Linux
+
+on: [push, pull_request]
+
+jobs:
+
+ clang_linux:
+ 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-clang-${{ github.run_id }}
+ restore-keys: ${{ runner.os }}-cache-clang-
+
+ - name: Run
+ run: docker run -e CI -e TRAVIS_BUILD_DIR="$PWD" -e WORK_DIR="$PWD" -e TRAVIS_OS_NAME=linux -e BUILD_NAME=linux_clang -v $PWD:$PWD ubuntu:20.04 $PWD/.github/workflows/clang_linux/start.sh
diff --git a/.github/workflows/clang_linux/start.sh b/.github/workflows/clang_linux/start.sh
new file mode 100755
index 00000000..83d2f8c2
--- /dev/null
+++ b/.github/workflows/clang_linux/start.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+set -e
+
+apt-get update -y
+DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
+ sudo autoconf automake libtool clang++-10 python3-clang-10 make cmake ccache pkg-config tar zip \
+ sqlite3 libsqlite3-dev libtiff-dev libcurl4-openssl-dev jq python3-pip
+
+pip3 install --user jsonschema
+
+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
+
+# -fno-use-cxa-atexit is needed to build with -coverage
+CC="ccache clang-10" CXX="ccache clang++-10" CFLAGS="-Werror -fsanitize=address -fno-use-cxa-atexit" CXXFLAGS="-Werror -fsanitize=address -fno-use-cxa-atexit" LDFLAGS="-fsanitize=address" ./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)