From c01e51126d2d547ab88ea23590c411e21aa4898f Mon Sep 17 00:00:00 2001 From: Sebastian Pipping Date: Sat, 20 Mar 2021 02:42:22 +0100 Subject: [PATCH] Quick-port Linux jobs from Travis CI to GitHub Actions --- .github/workflows/linux.yml | 85 +++++++++++++++++++++++++++++++++++++ .travis.yml | 81 ----------------------------------- 2 files changed, 85 insertions(+), 81 deletions(-) create mode 100644 .github/workflows/linux.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml new file mode 100644 index 00000000..f18f9559 --- /dev/null +++ b/.github/workflows/linux.yml @@ -0,0 +1,85 @@ +# Copyright (C) 2021 Sebastian Pipping +# Licensed under the MIT license + +name: Run Linux Travis CI tasks + +on: +- pull_request +- push + +jobs: + checks: + name: Perform checks + strategy: + matrix: + include: + # NOTE: This is a quick port from .travis.yml in reaction to + # stability issues at Travis CI. + - MODE: cmake-oos + - MODE: distcheck + - MODE: qa-sh + FLAT_ENV: CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address + - MODE: clang-format + - MODE: cmake-oos + FLAT_ENV: CMAKE_ARGS="-DEXPAT_ATTR_INFO=ON -DEXPAT_BUILD_FUZZERS=ON -DCMAKE_C_FLAGS=-fsanitize=address -DCMAKE_CXX_FLAGS=-fsanitize=address -DCMAKE_EXE_LINKER_FLAGS=-fsanitize=address -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++" + - MODE: coverage-sh + - MODE: qa-sh + FLAT_ENV: CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address CMAKE_ARGS=-DEXPAT_ATTR_INFO=ON + - MODE: qa-sh + FLAT_ENV: CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address CMAKE_ARGS=-DEXPAT_CONTEXT_BYTES=OFF + - MODE: qa-sh + FLAT_ENV: CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address CMAKE_ARGS=-DEXPAT_DTD=OFF + - MODE: qa-sh + FLAT_ENV: CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address CMAKE_ARGS=-DEXPAT_LARGE_SIZE=ON + - MODE: qa-sh + FLAT_ENV: CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address CMAKE_ARGS=-DEXPAT_MIN_SIZE=ON + - MODE: qa-sh + FLAT_ENV: CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address CMAKE_ARGS=-DEXPAT_NS=OFF + - MODE: qa-sh + FLAT_ENV: CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=memory + - MODE: qa-sh + FLAT_ENV: CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=undefined + - MODE: qa-sh + FLAT_ENV: CC=gcc CXX=g++ LD=ld QA_PROCESSOR=gcov + - MODE: qa-sh + FLAT_ENV: CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ LD=i686-w64-mingw32-ld QA_PROCESSOR=gcov CMAKE_ARGS="-DCMAKE_SYSTEM_NAME=Windows -DWIN32=ON -DMINGW=ON -DEXPAT_ATTR_INFO=ON" + - MODE: qa-sh + FLAT_ENV: CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ LD=i686-w64-mingw32-ld QA_PROCESSOR=gcov CMAKE_ARGS="-DCMAKE_SYSTEM_NAME=Windows -DWIN32=ON -DMINGW=ON -DEXPAT_ATTR_INFO=ON -DEXPAT_CHAR_TYPE=wchar_t" + runs-on: ubuntu-18.04 + env: + CFLAGS: -g3 -pipe + steps: + - uses: actions/checkout@v2.3.4 + - name: Add Clang/LLVM repositories + run: |- + wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - + sudo add-apt-repository 'deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main' + - name: Install build dependencies + # NOTE: Please note the version-specific ${PATH} extension for Clang in .travis.sh + run: |- + sudo dpkg --add-architecture i386 # for wine32 + sudo apt-get update + sudo apt-get install --yes --no-install-recommends -V \ + clang-11 \ + clang-format-11 \ + llvm-11 \ + cmake \ + docbook2x \ + dos2unix \ + lcov \ + libbsd-dev \ + lzip \ + mingw-w64 \ + moreutils \ + wine-stable \ + wine32 + - name: Unshallow Git clone (as needed) + if: matrix.MODE == 'coverage-sh' + run: | + git fetch --tags --unshallow origin # for "git describe" in coverage.sh + - name: Perform check "${{ matrix.MODE }}" + env: + MODE: ${{ matrix.MODE }} + TRAVIS_OS_NAME: linux + run: | + env ${{ matrix.FLAT_ENV }} ./.travis.sh diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 42837b55..00000000 --- a/.travis.yml +++ /dev/null @@ -1,81 +0,0 @@ -# Copyright (C) 2017 Sebastian Pipping -# Licensed under the MIT license - -language: cpp -os: - - linux -dist: bionic - -git: - depth: 50 - -env: - global: - - CFLAGS='-g3 -pipe' - matrix: - # NOTE: There is a copy of this matrix at .github/workflows/macos.yml - # for GitHub Actions. While we have the matrix in two places, - # please keep the two files in sync. Thank you! - - MODE=cmake-oos - - MODE=distcheck - - MODE=qa-sh CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address - -matrix: - include: - - os: linux - env: MODE=clang-format - - os: linux - env: MODE=cmake-oos CMAKE_ARGS="-DEXPAT_ATTR_INFO=ON -DEXPAT_BUILD_FUZZERS=ON -DCMAKE_C_FLAGS=-fsanitize=address -DCMAKE_CXX_FLAGS=-fsanitize=address -DCMAKE_EXE_LINKER_FLAGS=-fsanitize=address -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++" - - os: linux - env: MODE=coverage-sh - - os: linux - env: MODE=qa-sh CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address CMAKE_ARGS=-DEXPAT_ATTR_INFO=ON - - os: linux - env: MODE=qa-sh CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address CMAKE_ARGS=-DEXPAT_CONTEXT_BYTES=OFF - - os: linux - env: MODE=qa-sh CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address CMAKE_ARGS=-DEXPAT_DTD=OFF - - os: linux - env: MODE=qa-sh CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address CMAKE_ARGS=-DEXPAT_LARGE_SIZE=ON - - os: linux - env: MODE=qa-sh CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address CMAKE_ARGS=-DEXPAT_MIN_SIZE=ON - - os: linux - env: MODE=qa-sh CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=address CMAKE_ARGS=-DEXPAT_NS=OFF - - os: linux - env: MODE=qa-sh CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=memory - - os: linux - env: MODE=qa-sh CC=clang CXX=clang++ LD=clang++ QA_SANITIZER=undefined - - os: linux - env: MODE=qa-sh CC=gcc CXX=g++ LD=ld QA_PROCESSOR=gcov - - os: linux - env: MODE=qa-sh CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ LD=i686-w64-mingw32-ld QA_PROCESSOR=gcov CMAKE_ARGS="-DCMAKE_SYSTEM_NAME=Windows -DWIN32=ON -DMINGW=ON -DEXPAT_ATTR_INFO=ON" - - os: linux - env: MODE=qa-sh CC=i686-w64-mingw32-gcc CXX=i686-w64-mingw32-g++ LD=i686-w64-mingw32-ld QA_PROCESSOR=gcov CMAKE_ARGS="-DCMAKE_SYSTEM_NAME=Windows -DWIN32=ON -DMINGW=ON -DEXPAT_ATTR_INFO=ON -DEXPAT_CHAR_TYPE=wchar_t" - -addons: - homebrew: - update: true - brewfile: true - apt: - sources: - - sourceline: "deb https://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main" - key_url: "https://apt.llvm.org/llvm-snapshot.gpg.key" - - ubuntu-toolchain-r-test - packages: - # NOTE: Please note the version-specific ${PATH} extension for clang in .travis.sh - - clang-11 - - clang-format-11 - - llvm-11 - - cmake - - cppcheck - - docbook2x - - dos2unix - - lcov - - libbsd-dev - - lzip - - mingw-w64 - - moreutils - - wine-stable - - wine32 - -script: - - ./.travis.sh