summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Joye <pierre.php@gmail.com>2021-08-24 10:26:46 +0700
committerPierre Joye <pierre.php@gmail.com>2021-08-24 10:26:46 +0700
commit926d8ae8789a01d93db2e1ba1ba39fae1ab94157 (patch)
treea52c8f4bf47dbaf86f40053f4675dc104c61cc4a
parentd7bb0fb47d86273e1751ab2ac48784cda9f9dcb2 (diff)
downloadlibgd-926d8ae8789a01d93db2e1ba1ba39fae1ab94157.tar.gz
name it as what it is
-rw-r--r--.github/workflows/ci_master.yml165
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