Skip failure tests on riscv64. #303
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI Ubuntu | |
on: | |
push: | |
branches: [master, GD-*] | |
pull_request: | |
branches: [master, GD-*] | |
env: | |
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) | |
BUILD_TYPE: RELWITHDEBINFO | |
jobs: | |
CI: | |
runs-on: ${{ matrix.config.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
config: | |
- { | |
name: "Ubuntu Intel GCC", | |
os: ubuntu-latest, | |
cc: "gcc", | |
cxx: "g++", | |
cflags: "-msse2" | |
} | |
- { | |
name: "Ubuntu Intel Clang", | |
os: ubuntu-latest, | |
cc: "clang-12", | |
cxx: "clang-cpp-12" | |
} | |
- { | |
name: "Ubuntu Graviton GCC", | |
os: [self-hosted, Linux, ARM64, graviton], | |
cc: "gcc", | |
cxx: "g++", | |
cflags: "-march=armv8.2-a+fp16+rcpc+dotprod+crypto+sve -mtune=neoverse-n1" | |
} | |
name: ${{ matrix.config.name }} | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Update apt (Ubuntu) | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
run: sudo -E apt-get update -qq -o Acquire::Retries=3 | |
- name: Add libheif PPA (Ubuntu) | |
run: | | |
sudo add-apt-repository ppa:strukturag/libde265 | |
sudo add-apt-repository ppa:strukturag/libheif | |
- name: install dependencies | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
run: sudo -E apt-get install --fix-missing -qq -o Acquire::Retries=3 cmake clang-12 lld gcc build-essential libjpeg-turbo8-dev libimagequant-dev libde265-dev libpng-dev libwebp-dev libtiff5-dev libx265-dev libheif-dev libfreetype-dev libheif-dev libavifile-0.7-dev libxpm-dev libraqm-dev dh-autoreconf ninja-build nasm meson | |
- name: install AOM codec for libavif | |
run: | | |
cd ${{github.temp }} | |
[ -d "aom" ] && rm -rf aom | |
git clone -b v3.1.2 --depth 1 https://aomedia.googlesource.com/aom | |
cd aom | |
mkdir build.libavif | |
cd build.libavif | |
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DBUILD_SHARED_LIBS=1 -DCMAKE_INSTALL_PREFIX:PATH=/usr .. | |
ninja | |
sudo ninja install | |
cd .. | |
rm -rf aom | |
- name: install dav1d codec for libavif | |
run: | | |
cd ${{github.temp }} | |
[ -d "dav1d" ] && rm -rf dav1d | |
git clone -b 0.9.2 --depth 1 https://code.videolan.org/videolan/dav1d.git | |
cd dav1d | |
mkdir build | |
cd build | |
meson --buildtype release -Dprefix=/usr .. | |
ninja | |
sudo ninja install | |
cd .. | |
rm -rf dav1d | |
- name: install libyuv | |
run: | | |
cd ${{github.temp }} | |
[ -d "libyuv" ] && rm -rf libyuv | |
git clone https://chromium.googlesource.com/libyuv/libyuv/ | |
cd libyuv | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX:PATH=/usr -B. .. | |
make | |
sudo make install | |
cd .. | |
rm -rf libyuv | |
- name: install libavif | |
run: | | |
cd ${{github.temp }} | |
[ -d "libavif" ] && rm -rf libavif | |
git clone https://github.com/AOMediaCodec/libavif.git | |
cd libavif | |
git checkout tags/v0.9.2 | |
mkdir build | |
cd build | |
cmake -DBUILD_SHARED_LIBS=1 -DAVIF_CODEC_AOM=1 -DAVIF_CODEC_DAV1D=1 -DAVIF_CODEC_LIBGAV1=0 -DAVIF_CODEC_RAV1E=0 -DAVIF_CODEC_SVT=0 -B. .. | |
make | |
sudo make install | |
cd .. | |
rm -rf libavif | |
- name: Debug CC Env | |
env: | |
CC: ${{ matrix.config.cc }} | |
CXX: ${{ matrix.config.cxx }} | |
CFLAGS: ${{ matrix.config.cflags }} | |
run: | | |
echo ${{ matrix.config.cc }} | |
echo ${{ matrix.config.cxx }} | |
echo ${{ matrix.config.cflags }} | |
- name: Configure CMake Clang | |
if: contains(matrix.config.cc, 'clang') | |
env: | |
CC: ${{ matrix.config.cc }} | |
CXX: ${{ matrix.config.cxx }} | |
CFLAGS: ${{ matrix.config.cflags }} | |
run: | |
cmake -G "Unix Makefiles" -DENABLE_PNG=1 -DENABLE_FREETYPE=1 -DENABLE_JPEG=1 -DENABLE_WEBP=1 | |
-DENABLE_TIFF=1 -DENABLE_XPM=1 -DENABLE_GD_FORMATS=1 -DENABLE_HEIF=1 -DENABLE_RAQM=1 -DENABLE_AVIF=1 | |
-DBUILD_TEST=1 -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} | |
-DCMAKE_TOOLCHAIN_FILE=${{github.workspace}}/cmake/modules/linux-clang.cmake | |
- name: Configure CMake gcc | |
if: contains(matrix.config.cc, 'gcc') | |
env: | |
CC: ${{ matrix.config.cc }} | |
CXX: ${{ matrix.config.cxx }} | |
CFLAGS: ${{ matrix.config.cflags }} | |
run: | |
cmake -DENABLE_PNG=1 -DENABLE_FREETYPE=1 -DENABLE_JPEG=1 -DENABLE_WEBP=1 | |
-DENABLE_TIFF=1 -DENABLE_XPM=1 -DENABLE_GD_FORMATS=1 -DENABLE_HEIF=1 -DENABLE_RAQM=1 -DENABLE_AVIF=1 | |
-DBUILD_TEST=1 -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} | |
- name: Build | |
env: | |
CC: ${{ matrix.config.cc }} | |
CXX: ${{ matrix.config.cxx }} | |
CFLAGS: ${{ matrix.config.cflags }} | |
run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel 4 | |
- name: Test | |
if: contains(matrix.config.cc, 'gcc') | |
working-directory: ${{github.workspace}}/build | |
run: | | |
export TMP=${{runner.temp}} | |
echo "TMP=${{github.temp}}" >> $GITHUB_ENV | |
echo "LSAN_OPTIONS=suppressions=${{ github.workspace }}/suppressions/lsan.supp" >> $GITHUB_ENV | |
CTEST_OUTPUT_ON_FAILURE=1 ctest -C ${{env.BUILD_TYPE}} | |
- name: Configure CMake ASAN | |
env: | |
CC: ${{ matrix.config.cc }} | |
CXX: ${{ matrix.config.cxx }} | |
CFLAGS: ${{ matrix.config.cflags }} | |
if: contains(matrix.config.cc, 'gcc') | |
run: | |
cmake -DENABLE_PNG=1 -DENABLE_FREETYPE=1 -DENABLE_JPEG=1 -DENABLE_WEBP=1 | |
-DENABLE_TIFF=1 -DENABLE_XPM=1 -DENABLE_GD_FORMATS=1 -DENABLE_HEIF=1 -DENABLE_AVIF=1 | |
-DBUILD_TEST=1 -B ${{github.workspace}}/buildasan -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} | |
- name: Build ASAN | |
if: contains(matrix.config.cc, 'gcc') | |
env: | |
CC: ${{ matrix.config.cc }} | |
CXX: ${{ matrix.config.cxx }} | |
CFLAGS: "-march=armv8.2-a+fp16+rcpc+dotprod+crypto -mtune=neoverse-n1" | |
run: cmake --build ${{github.workspace}}/buildasan --config ${{env.BUILD_TYPE}} | |
- name: Test ASAN | |
if: contains(matrix.config.cc, 'gcc') | |
working-directory: ${{github.workspace}}/buildasan | |
run: | | |
export TMP=${{runner.temp}} | |
echo "TMP=${{github.temp}}" >> $GITHUB_ENV | |
CTEST_OUTPUT_ON_FAILURE=1 ctest -C ${{env.BUILD_TYPE}} | |
- name: Configure and Make | |
working-directory: ${{github.workspace}}/ | |
run: | | |
./bootstrap.sh | |
./configure --with-png --with-jpeg --with-ramq --with-heif --with-xpm --with-tiff --with-webp --with-liq --enable-gd --enable-gd-formats --with-zlib | |
make | |
make dist | |
- name: Output Log | |
run: | | |
if test -f "/home/runner/work/libgd/libgd/build/Testing/Temporary/LastTest.log"; then | |
cat /home/runner/work/libgd/libgd/build/Testing/Temporary/LastTest.log | |
fi |