mirror of
https://github.com/lz4/lz4
synced 2026-01-18 17:21:30 +01:00
- Reduces AppVeyor build matrix from 6 to 3 jobs (50% reduction) - Eliminates redundant Visual Studio testing (now handled by faster GitHub Actions) - Focuses AppVeyor on unique MinGW testing (GCC + Clang on Windows) - Reduces lines from 107 to 87 (19% shorter) - Significantly reduces CI time by leveraging faster GitHub Actions for VS builds AppVeyor now handles: - MinGW GCC builds (mingw32, mingw64) - MinGW Clang builds (mingw64) GitHub Actions continues to handle: - Visual Studio builds (Win32, x64) - Extensive Linux compiler matrix - Cross-platform compatibility testing
87 lines
2.9 KiB
YAML
87 lines
2.9 KiB
YAML
version: 1.0.{build}
|
|
|
|
# Test matrix: MinGW compilers only (Visual Studio testing moved to GitHub Actions)
|
|
environment:
|
|
matrix:
|
|
- COMPILER: gcc
|
|
PLATFORM: mingw32
|
|
- COMPILER: gcc
|
|
PLATFORM: mingw64
|
|
- COMPILER: clang
|
|
PLATFORM: mingw64
|
|
|
|
install:
|
|
- echo Installing %COMPILER% %PLATFORM%
|
|
- mkdir bin
|
|
# Setup MinGW environment
|
|
- set "PATH_MINGW32=c:\MinGW\bin;c:\MinGW\usr\bin"
|
|
- set "PATH_MINGW64=c:\msys64\mingw64\bin;c:\msys64\usr\bin"
|
|
- copy C:\MinGW\bin\mingw32-make.exe C:\MinGW\bin\make.exe >nul 2>&1
|
|
- copy C:\MinGW\bin\gcc.exe C:\MinGW\bin\cc.exe >nul 2>&1
|
|
|
|
build_script:
|
|
- echo "*** Building %COMPILER% %PLATFORM% ***"
|
|
# Configure PATH for MinGW builds
|
|
- if [%PLATFORM%]==[mingw32] set PATH=%PATH_MINGW32%;%PATH%
|
|
- if [%PLATFORM%]==[mingw64] set PATH=%PATH_MINGW64%;%PATH%
|
|
|
|
# GCC Build
|
|
- if [%COMPILER%]==[gcc] (
|
|
echo "GCC build started" &&
|
|
gcc -v &&
|
|
make -v &&
|
|
make -j -C programs lz4 V=1 &&
|
|
make -j -C tests fullbench V=1 &&
|
|
make -j -C tests fuzzer V=1 &&
|
|
make -j -C lib lib V=1 &&
|
|
echo "Packaging GCC build..." &&
|
|
mkdir bin\dll bin\static bin\example bin\include &&
|
|
copy tests\fullbench.c bin\example\ &&
|
|
copy lib\xxhash.* bin\example\ &&
|
|
copy lib\lz4*.h bin\include\ &&
|
|
copy lib\liblz4.a bin\static\liblz4_static.lib &&
|
|
copy lib\liblz4.dll* bin\dll\ >nul 2>&1 &&
|
|
copy lib\dll\example\* bin\example\ >nul 2>&1 &&
|
|
copy programs\lz4.exe bin\lz4.exe &&
|
|
copy tests\*.exe programs\
|
|
)
|
|
|
|
# Clang Build
|
|
- if [%COMPILER%]==[clang] (
|
|
echo "Clang build started" &&
|
|
clang -v &&
|
|
make -v &&
|
|
set "CFLAGS=--target=x86_64-w64-mingw32 -Werror -Wconversion -Wno-sign-conversion" &&
|
|
make -j -C programs lz4 CC=clang V=1 &&
|
|
make -j -C tests fullbench CC=clang V=1 &&
|
|
make -j -C tests fuzzer CC=clang V=1 &&
|
|
make -j -C lib lib CC=clang V=1 &&
|
|
copy tests\*.exe programs\
|
|
)
|
|
|
|
# Create release archives (GCC only)
|
|
- if [%COMPILER%]==[gcc] if [%PLATFORM%]==[mingw64] 7z.exe a -bb1 bin\lz4_x64.zip NEWS .\bin\lz4.exe README.md .\bin\example .\bin\dll .\bin\static .\bin\include
|
|
- if [%COMPILER%]==[gcc] if [%PLATFORM%]==[mingw64] appveyor PushArtifact bin\lz4_x64.zip
|
|
- if [%COMPILER%]==[gcc] if [%PLATFORM%]==[mingw32] 7z.exe a -bb1 bin\lz4_x86.zip NEWS .\bin\lz4.exe README.md .\bin\example .\bin\dll .\bin\static .\bin\include
|
|
- if [%COMPILER%]==[gcc] if [%PLATFORM%]==[mingw32] appveyor PushArtifact bin\lz4_x86.zip
|
|
|
|
test_script:
|
|
- echo "*** Testing %COMPILER% %PLATFORM% ***"
|
|
- cd programs
|
|
- lz4 -h
|
|
- lz4 -i1b lz4.exe
|
|
- lz4 -i1b5 lz4.exe
|
|
- lz4 -i1b10 lz4.exe
|
|
- lz4 -i1b15 lz4.exe
|
|
- echo "------- lz4 tested -------"
|
|
- fullbench.exe -i0 fullbench.exe
|
|
- echo "Launching fuzzer test..."
|
|
- fuzzer.exe -v -T20s
|
|
- cd ..
|
|
|
|
artifacts:
|
|
- path: bin\lz4_x64.zip
|
|
name: LZ4 Windows x64 Build
|
|
- path: bin\lz4_x86.zip
|
|
name: LZ4 Windows x86 Build
|