diff options
author | Pierre Joye <pierre.php@gmail.com> | 2021-08-24 10:26:46 +0700 |
---|---|---|
committer | Pierre Joye <pierre.php@gmail.com> | 2021-08-24 10:26:46 +0700 |
commit | 926d8ae8789a01d93db2e1ba1ba39fae1ab94157 (patch) | |
tree | a52c8f4bf47dbaf86f40053f4675dc104c61cc4a | |
parent | d7bb0fb47d86273e1751ab2ac48784cda9f9dcb2 (diff) | |
download | libgd-926d8ae8789a01d93db2e1ba1ba39fae1ab94157.tar.gz |
name it as what it is
-rw-r--r-- | .github/workflows/ci_master.yml | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/.github/workflows/ci_master.yml b/.github/workflows/ci_master.yml new file mode 100644 index 0000000..b4d74eb --- /dev/null +++ b/.github/workflows/ci_master.yml @@ -0,0 +1,165 @@ +name: CMake + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +env: + # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) + BUILD_TYPE: Debug + +jobs: + CI: + name: ${{ matrix.name }} + runs-on: ${{ matrix.os }} + continue-on-error: ${{ contains(matrix.os, 'macos') }} + strategy: + fail-fast: false + matrix: + name: [ "Linux x64 (Ubuntu 20.04)" ] + os: [ ubuntu-20.04 ] + sanitize: [ false ] + build: + - { shell: bash } + include: + - name: "Linux x64 (Ubuntu 20.04)" + os: ubuntu-20.04 + build: { shell: bash } + - name: "macOS (10.15) - Xcode 12.3" + os: macOS-latest + build: { shell: bash } +# - name: "macOS (10.15) - Xcode 12.3 - M1" +# os: macos-m1 +# build: { shell: "/usr/bin/arch -arch arm64e /bin/bash -l {0}" } + - name: "Windows 2019" + os: windows-2019 + build: { shell: powershell } + + defaults: + run: + shell: ${{ matrix.build.shell }} + + steps: + - name: Checkout code + uses: actions/checkout@v2 + + - name: Update apt + if: contains(matrix.os, 'ubuntu') + env: + DEBIAN_FRONTEND: noninteractive + run: sudo -E apt-get update -qq -o Acquire::Retries=3 + + - name: Add libheif PPA + if: contains(matrix.os, 'ubuntu') + run: | + sudo add-apt-repository ppa:strukturag/libde265 + sudo add-apt-repository ppa:strukturag/libheif + + - name: install Ubuntu dependencies + if: contains(matrix.os, 'ubuntu') + env: + DEBIAN_FRONTEND: noninteractive + run: sudo -E apt-get install --fix-missing -qq -o Acquire::Retries=3 + 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 + + - name: Install macOS dependencies + if: contains(matrix.os, 'macos') + run: | + brew install libheif libjpeg-turbo freetype libtiff libimagequant libde265 x265 webp + + - name: Prepare macOS environment + if: contains(matrix.os, 'macos') + run: | + sudo xcode-select --switch /Library/Developer/CommandLineTools/ + echo "JOBS=$(sysctl -n hw.logicalcpu)" >> $GITHUB_ENV + echo "PKG_CONFIG_PATH=/usr/local/opt/jpeg-turbo/lib/pkgconfig" >> $GITHUB_ENV + echo "CFLAGS=-I/opt/X11/include" >> $GITHUB_ENV + echo "CPATH=/usr/local/include:/usr/local/lib:/usr/local/include/libpng16:/usr/local/opt/openssl/include" >> $GITHUB_ENV + echo "C_INCLUDE_PATH=/usr/local/lib:/usr/local/include/libpng16:/usr/local/opt/openssl/include" >> $GITHUB_ENV + echo "LIBRARY_PATH=/usr/local/lib:/usr/local/include/libpng:/usr/local/opt/openssl/include" >> $GITHUB_ENV + echo "LD_PATH" + + - name: Configure CMake MacOS + if: contains(matrix.os, 'macos') + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -DENABLE_PNG=1 -DENABLE_FREETYPE=1 -DENABLE_JPEG=1 -DENABLE_WEBP=1 + -DENABLE_TIFF=1 -DENABLE_GD_FORMATS=1 -DENABLE_CPP=0 -DENABLE_HEIC=1 -D CMAKE_PREFIX_PATH=/usr/local + -DBUILD_TEST=1 -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + + - name: Install Dependencies Windows + if: contains(matrix.os, 'Windows') + run: | + $Env:VCPKG_DEFAULT_TRIPLET="x64-windows" + C:\vcpkg\vcpkg.exe install libpng libjpeg-turbo freetype + + - name: Configure CMake Windows x64 + if: contains(matrix.os, 'Windows') + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + run: cmake -DENABLE_PNG=1 -DENABLE_FREETYPE=1 -DENABLE_JPEG=1 -DENABLE_GD_FORMATS=1 + -DBUILD_TEST=1 -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake + + - name: Configure CMake Ubuntu + if: contains(matrix.os, 'ubuntu') + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + 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_HEIC=1 -DENABLE_RAQM=1 + -DBUILD_TEST=1 -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + + - name: Build + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --parallel 4 + + - name: Test Ubuntu + if: contains(matrix.os, 'ubuntu') + working-directory: ${{github.workspace}}/build + # Execute tests defined by the CMake configuration. + # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail + run: | + echo "LSAN_OPTIONS=suppressions=${{ github.workspace }}/suppressions/lsan.supp" >> $GITHUB_ENV + CTEST_OUTPUT_ON_FAILURE=1 ctest -C ${{env.BUILD_TYPE}} + + - name: Test Windows + if: contains(matrix.os, 'windows') + working-directory: ${{github.workspace}}/build + # Execute tests defined by the CMake configuration. + # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail + run: | + $Env:CTEST_OUTPUT_ON_FAILURE=1 + ctest -C ${{env.BUILD_TYPE}} + + - name: Configure CMake ASAN Ubuntu + if: contains(matrix.os, 'ubuntu') + # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. + # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type + 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_HEIC=1 + -DBUILD_TEST=1 -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} + + - name: Build ASAN Ubuntu + if: contains(matrix.os, 'ubuntu') + # Build your program with the given configuration + run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} + + - name: Test ASAN Ubuntu + if: contains(matrix.os, 'ubuntu') + working-directory: ${{github.workspace}}/build + # Execute tests defined by the CMake configuration. + # See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail + run: CTEST_OUTPUT_ON_FAILURE=1 ctest -C ${{env.BUILD_TYPE}} + + + - name: Output Log + if: contains(matrix.os, 'ubuntu') + 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 |