diff options
| author | Even Rouault <even.rouault@spatialys.com> | 2020-11-26 19:52:14 +0100 |
|---|---|---|
| committer | Even Rouault <even.rouault@spatialys.com> | 2020-11-26 20:31:08 +0100 |
| commit | 7562eee171f3a70acd7e012bff7c150b8dcd647c (patch) | |
| tree | a1d5d655e0ede4cbba0792e873f73df8c60326fc | |
| parent | e7fc87b21ed9a3f193e750d24371c47615689831 (diff) | |
| download | PROJ-7562eee171f3a70acd7e012bff7c150b8dcd647c.tar.gz PROJ-7562eee171f3a70acd7e012bff7c150b8dcd647c.zip | |
Github action: add a clang linux build job
| -rw-r--r-- | .github/workflows/clang_linux.yml | 24 | ||||
| -rwxr-xr-x | .github/workflows/clang_linux/start.sh | 32 |
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) |
