mirror of
https://github.com/cuberite/libdeflate.git
synced 2025-08-03 17:56:17 -04:00
Switch from Travis CI to GitHub Actions
This commit is contained in:
parent
e958f1c997
commit
72e9ef0791
115
.github/workflows/ci.yml
vendored
Normal file
115
.github/workflows/ci.yml
vendored
Normal file
@ -0,0 +1,115 @@
|
|||||||
|
name: CI
|
||||||
|
on: [pull_request]
|
||||||
|
env:
|
||||||
|
CFLAGS: -Werror
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
x86_64-build-and-test:
|
||||||
|
name: Build and test (x86_64, ${{ matrix.os }}, ${{ matrix.compiler }})
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
os: [ubuntu-20.04, ubuntu-18.04, ubuntu-16.04]
|
||||||
|
compiler: [gcc, clang]
|
||||||
|
exclude:
|
||||||
|
# clang 3.8.0-2ubuntu4 crashes with:
|
||||||
|
# "fatal error: error in backend: Cannot select: 0x21025a0: v64i8 = X86ISD::VBROADCAST 0x2101fb0"
|
||||||
|
- os: ubuntu-16.04
|
||||||
|
compiler: clang
|
||||||
|
runs-on: ${{ matrix.os }}
|
||||||
|
env:
|
||||||
|
CC: ${{ matrix.compiler }}
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Install dependencies
|
||||||
|
run: sudo apt-get install -y clang llvm libz-dev valgrind
|
||||||
|
- run: scripts/run_tests.sh
|
||||||
|
|
||||||
|
other-arch-build-and-test:
|
||||||
|
name: Build and test (${{ matrix.arch }}, Debian Buster, ${{ matrix.compiler }})
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
arch: [armv6, armv7, aarch64, s390x, ppc64le]
|
||||||
|
compiler: [gcc, clang]
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: uraimo/run-on-arch-action@v2.0.5
|
||||||
|
with:
|
||||||
|
arch: ${{ matrix.arch }}
|
||||||
|
distro: buster
|
||||||
|
githubToken: ${{ github.token }}
|
||||||
|
install: |
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y build-essential clang llvm libz-dev valgrind
|
||||||
|
run: |
|
||||||
|
# Valgrind and ASAN crash on at least s390x, ppc64le, and aarch64
|
||||||
|
# here. (It's probably something related to the QEMU user-mode
|
||||||
|
# emulation that run-on-arch-action uses.)
|
||||||
|
export SKIP_VALGRIND=1
|
||||||
|
export SKIP_ASAN=1
|
||||||
|
|
||||||
|
case ${{ matrix.arch }} in
|
||||||
|
s390x)
|
||||||
|
# On s390x, in freestanding builds the shared library links to an
|
||||||
|
# external symbol __clzdi2, even when -static-libgcc is used.
|
||||||
|
export SKIP_FREESTANDING=1
|
||||||
|
;;
|
||||||
|
aarch64)
|
||||||
|
# "ldd: exited with unknown exit code (139)"
|
||||||
|
if [ ${{ matrix.compiler }} = clang ]; then
|
||||||
|
export SKIP_SHARED_LIB=1
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
export CC=${{ matrix.compiler }}
|
||||||
|
scripts/run_tests.sh
|
||||||
|
|
||||||
|
macos-build-and-test:
|
||||||
|
name: Build and test (macOS)
|
||||||
|
runs-on: macos-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- run: make all check
|
||||||
|
|
||||||
|
windows-build-and-test:
|
||||||
|
name: Build and test (Windows)
|
||||||
|
runs-on: windows-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- shell: bash
|
||||||
|
run: |
|
||||||
|
PATH="C:\\msys64\\mingw64\\bin:C:\\msys64\\usr\\bin:$PATH" \
|
||||||
|
make CC=gcc all check
|
||||||
|
|
||||||
|
run-clang-static-analyzer:
|
||||||
|
name: Run clang static analyzer
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Install dependencies
|
||||||
|
run: sudo apt-get install -y clang-tools
|
||||||
|
- name: Run clang static analyzer
|
||||||
|
run: make scan-build
|
||||||
|
|
||||||
|
run-shellcheck:
|
||||||
|
name: Run shellcheck
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Install dependencies
|
||||||
|
run: sudo apt-get install -y shellcheck
|
||||||
|
- name: Run shellcheck
|
||||||
|
run: make shellcheck
|
||||||
|
|
||||||
|
cross-compile-for-windows:
|
||||||
|
name: Cross compile for Windows
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Install dependencies
|
||||||
|
run: sudo apt-get install -y gcc-mingw-w64-i686 gcc-mingw-w64-x86-64 libz-mingw-w64-dev
|
||||||
|
- name: 32-bit build
|
||||||
|
run: make CC=i686-w64-mingw32-gcc all test_programs
|
||||||
|
- name: 64-bit build
|
||||||
|
run: make CC=x86_64-w64-mingw32-gcc all test_programs
|
113
.travis.yml
113
.travis.yml
@ -1,113 +0,0 @@
|
|||||||
language: c
|
|
||||||
os: linux
|
|
||||||
dist: focal
|
|
||||||
compiler:
|
|
||||||
- gcc
|
|
||||||
- clang
|
|
||||||
env:
|
|
||||||
global:
|
|
||||||
- CFLAGS=-Werror
|
|
||||||
arch:
|
|
||||||
- amd64
|
|
||||||
- arm64
|
|
||||||
- ppc64le
|
|
||||||
- s390x
|
|
||||||
before_install: sudo apt-get install -y libz-dev valgrind
|
|
||||||
script: scripts/run_tests.sh
|
|
||||||
|
|
||||||
# Additional jobs not generated by the above build matrix:
|
|
||||||
jobs:
|
|
||||||
include:
|
|
||||||
# Jobs to test older Ubuntu distros. Ideally these would be generated by
|
|
||||||
# the build matrix, but Travis CI doesn't support expanding by 'dist'...
|
|
||||||
|
|
||||||
- dist: precise
|
|
||||||
compiler: gcc
|
|
||||||
arch: amd64
|
|
||||||
|
|
||||||
- dist: precise
|
|
||||||
compiler: clang
|
|
||||||
arch: amd64
|
|
||||||
|
|
||||||
- dist: xenial
|
|
||||||
compiler: gcc
|
|
||||||
arch: amd64
|
|
||||||
|
|
||||||
- dist: xenial
|
|
||||||
compiler: clang
|
|
||||||
arch: amd64
|
|
||||||
|
|
||||||
- dist: xenial
|
|
||||||
compiler: gcc
|
|
||||||
arch: arm64
|
|
||||||
# Ignore incorrect -Wstrict-aliasing warning in adler32_neon_chunk(),
|
|
||||||
# not seen with any other compiler versions.
|
|
||||||
env: CFLAGS="-Wno-strict-aliasing -Werror"
|
|
||||||
|
|
||||||
- dist: xenial
|
|
||||||
compiler: clang
|
|
||||||
arch: arm64
|
|
||||||
# ASAN fails with internal error
|
|
||||||
env: DISABLE_ASAN=1
|
|
||||||
|
|
||||||
- dist: xenial
|
|
||||||
compiler: gcc
|
|
||||||
arch: ppc64le
|
|
||||||
# ASAN fails with internal error
|
|
||||||
env: DISABLE_ASAN=1
|
|
||||||
|
|
||||||
- dist: xenial
|
|
||||||
compiler: clang
|
|
||||||
arch: ppc64le
|
|
||||||
# ASAN fails with internal error
|
|
||||||
env: DISABLE_ASAN=1
|
|
||||||
|
|
||||||
- dist: xenial
|
|
||||||
compiler: gcc
|
|
||||||
arch: s390x
|
|
||||||
|
|
||||||
- dist: xenial
|
|
||||||
compiler: clang
|
|
||||||
arch: s390x
|
|
||||||
|
|
||||||
# Other Linux jobs
|
|
||||||
|
|
||||||
- name: clang static analyzer
|
|
||||||
before_install: sudo apt-get install -y clang
|
|
||||||
script: make scan-build
|
|
||||||
|
|
||||||
- name: shellcheck
|
|
||||||
before_install: sudo apt-get install -y shellcheck
|
|
||||||
script: make shellcheck
|
|
||||||
|
|
||||||
- name: Cross compile for Windows
|
|
||||||
before_install:
|
|
||||||
- sudo apt-get install -y gcc-mingw-w64-x86-64 libz-mingw-w64-dev
|
|
||||||
script:
|
|
||||||
- make CC=i686-w64-mingw32-gcc all test_programs
|
|
||||||
- make CC=x86_64-w64-mingw32-gcc all test_programs
|
|
||||||
|
|
||||||
# Non-Linux jobs
|
|
||||||
|
|
||||||
- name: macOS, xcode11
|
|
||||||
os: osx
|
|
||||||
osx_image: xcode11
|
|
||||||
before_install:
|
|
||||||
script: make all check
|
|
||||||
|
|
||||||
- name: macOS, xcode9.4
|
|
||||||
os: osx
|
|
||||||
osx_image: xcode9.4
|
|
||||||
before_install:
|
|
||||||
script: make all check
|
|
||||||
|
|
||||||
- name: macOS, xcode7.3
|
|
||||||
os: osx
|
|
||||||
osx_image: xcode7.3
|
|
||||||
before_install:
|
|
||||||
script: make all check
|
|
||||||
|
|
||||||
- name: Windows, MinGW
|
|
||||||
os: windows
|
|
||||||
before_install:
|
|
||||||
script: mingw32-make all check
|
|
Loading…
x
Reference in New Issue
Block a user