代码拉取完成,页面将自动刷新
# Note we have a maximum of 16 CPUs available, so adjust our
# builds so we can start all concurrently without needing to schedule.
# Sadly though there is still a finite limit to macOS of one instance.
# Can we cull our Mac test to just one instance?
timeout_in: 20m
#--------------------------------------------------
# Template: build libdeflate dependency
libdeflate_template: &LIBDEFLATE
libdeflate_script: |
if test "x$USE_LIBDEFLATE" == "xyes"; then
pushd "$HOME"
git clone --depth 1 https://github.com/ebiggers/libdeflate.git
pushd libdeflate
cmake -B build -DLIBDEFLATE_BUILD_SHARED_LIB=OFF -DLIBDEFLATE_BUILD_GZIP=OFF -DCMAKE_C_FLAGS="-g -O3 -fPIC $LIBDEFLATE_CFLAGS"
cmake --build build --verbose
popd
popd
fi
#--------------------------------------------------
# Template: compile and test
compile_template: &COMPILE
compile_script: |
git submodule update --init --recursive
if test "x$USE_LIBDEFLATE" = "xyes"; then
CONFIG_OPTS='CPPFLAGS="-I$HOME/libdeflate" LDFLAGS="$LDFLAGS -L$HOME/libdeflate/build" --with-libdeflate'
else
CONFIG_OPTS='--without-libdeflate'
fi
if test "$USE_CONFIG" = "yes"; then
MAKE_OPTS=
autoreconf -i
eval ./configure --enable-plugins --enable-werror $CONFIG_OPTS CFLAGS=\"$CFLAGS\" || \
( cat config.log; false )
else
MAKE_OPTS=-e
fi
make cc-version $MAKE_OPTS
if test "x$DO_MAINTAINER_CHECKS" = "xyes"; then
make maintainer-check $MAKE_OPTS
fi
make -j 4 $MAKE_OPTS
test_template: &TEST
test_script: |
make test-shlib-exports $MAKE_OPTS
make test $MAKE_OPTS
if test "x$DO_UNTRACKED_FILE_CHECK" = "xyes"; then make check-untracked $MAKE_OPTS ; fi
#--------------------------------------------------
# Task: linux builds.
# Debian + latest GCC
gcc_task:
name: debian-gcc
container:
image: gcc:latest
cpu: 2
memory: 1G
environment:
LC_ALL: C
CIRRUS_CLONE_DEPTH: 1
matrix:
- environment:
DO_MAINTAINER_CHECKS: yes
DO_UNTRACKED_FILE_CHECK: yes
USE_CONFIG: no
CFLAGS: -g -O2 -Wall -Werror -fvisibility=hidden
- environment:
USE_CONFIG: yes
# ubsan is incompatible with some -Wformat opts so we do that on clang.
CFLAGS: -g -O3 -fsanitize=address,undefined -DHTS_ALLOW_UNALIGNED=0 -Wno-format-truncation -Wno-format-overflow
LDFLAGS: -fsanitize=address,undefined
USE_LIBDEFLATE: yes
UBSAN_OPTIONS: print_stacktrace=1:halt_on_error=1
install_script: |
apt-get update
apt-get install -y --no-install-suggests --no-install-recommends \
ca-certificates libc-dev make git autoconf automake \
zlib1g-dev libbz2-dev liblzma-dev libcurl4-gnutls-dev libssl-dev \
cmake
<< : *LIBDEFLATE
<< : *COMPILE
<< : *TEST
# Ubuntu + Clang
ubuntu_task:
name: ubuntu-clang
container:
image: ubuntu:latest
# image: ubuntu:devel
cpu: 2
memory: 1G
environment:
CC: clang
LC_ALL: C
CIRRUS_CLONE_DEPTH: 1
matrix:
- environment:
USE_CONFIG: yes
CFLAGS: -g -O3
DO_UNTRACKED_FILE_CHECK: yes
- environment:
# Cirrus-CI's clang isn't installed with ubsan, so we do that in gcc
USE_CONFIG: yes
CFLAGS: -g -O3 -std=c99 -pedantic -Wall -Wformat -Wformat=2
USE_LIBDEFLATE: yes
# NB: we could consider building a docker image with these
# preinstalled and specifying that instead, to speed up testing.
install_script: |
apt-get update
apt-get install -y --no-install-suggests --no-install-recommends \
ca-certificates clang libc-dev make git autoconf automake \
zlib1g-dev libbz2-dev liblzma-dev libcurl4-gnutls-dev libssl-dev \
libdeflate-dev
<< : *COMPILE
<< : *TEST
# Rocky Linux
rocky_task:
name: rockylinux-gcc
container:
image: rockylinux:9
cpu: 2
memory: 1G
environment:
LC_ALL: C
CIRRUS_CLONE_DEPTH: 1
USE_CONFIG: yes
CFLAGS: -g -O3 -std=gnu90 -Wall -Wformat -Wformat=2 -Wextra -Wno-sign-compare -Wno-unused-parameter -Wno-missing-field-initializers
# NB: we could consider building a docker image with these
# preinstalled and specifying that instead, to speed up testing.
install_script: |
yum install -y autoconf automake make gcc perl-Data-Dumper perl-FindBin \
zlib-devel bzip2 bzip2-devel xz-devel curl-devel openssl-devel \
ncurses-devel diffutils git
<< : *COMPILE
<< : *TEST
# Arm Linux
arm_ubuntu_task:
name: ubuntu-arm
arm_container:
image: ubuntu:latest
cpu: 2
memory: 1G
environment:
LC_ALL: C
CIRRUS_CLONE_DEPTH: 1
DO_UNTRACKED_FILE_CHECK: yes
USE_CONFIG: yes
CFLAGS: -g -Wall -O3 -std=c99 -pedantic
# NB: we could consider building a docker image with these
# preinstalled and specifying that instead, to speed up testing.
install_script: |
apt-get update
apt-get install -y --no-install-suggests --no-install-recommends \
ca-certificates clang libc-dev make git autoconf automake \
zlib1g-dev libbz2-dev liblzma-dev libcurl4-gnutls-dev libssl-dev \
libdeflate-dev
<< : *COMPILE
<< : *TEST
#--------------------------------------------------
# Task: macOS builds
macosx_task:
name: macosx + clang
macos_instance:
image: ghcr.io/cirruslabs/macos-runner:sonoma
environment:
CC: clang
LDFLAGS: "-arch arm64 -arch x86_64"
LIBDEFLATE_CFLAGS: "-arch arm64 -arch x86_64"
LC_ALL: C
CIRRUS_CLONE_DEPTH: 1
matrix:
- environment:
USE_CONFIG: no
CFLAGS: "-g -O3 -Wall -Werror -arch arm64 -arch x86_64"
- environment:
USE_CONFIG: yes
USE_LIBDEFLATE: yes
CFLAGS: "-g -O3 -Wall -arch arm64 -arch x86_64"
package_install_script: |
HOMEBREW_NO_AUTO_UPDATE=1 brew install autoconf automake libtool xz git \
cmake
<< : *LIBDEFLATE
<< : *COMPILE
<< : *TEST
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。