From 1a383c46f580fd19f416d68b155d73de22ff3134 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20D=C3=ADaz=20M=C3=A1s?= Date: Tue, 11 May 2021 15:25:16 +0200 Subject: [PATCH] ci - Special builds on Github actions --- .github/workflows/on_PR_linux_matrix.yml | 4 +- .../workflows/on_PR_linux_special_buils.yml | 120 ++++++++++++++++++ 2 files changed, 121 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/on_PR_linux_special_buils.yml diff --git a/.github/workflows/on_PR_linux_matrix.yml b/.github/workflows/on_PR_linux_matrix.yml index ebf35f6c..6e72418b 100644 --- a/.github/workflows/on_PR_linux_matrix.yml +++ b/.github/workflows/on_PR_linux_matrix.yml @@ -3,7 +3,7 @@ name: Linux-Ubuntu Matrix on PRs on: [pull_request] jobs: - windows: + Linux: name: 'Ubuntu 20.04 - GCC, BuildType:${{matrix.build_type}}, SHARED:${{matrix.shared_libraries}}' runs-on: ubuntu-latest @@ -18,8 +18,6 @@ jobs: - name: install dependencies run: | - sudo apt-get update - sudo apt-get install cmake zlib1g-dev libssh-dev python3-pip libxml2-utils g++ pip3 install conan==1.36.0 - name: Conan common config diff --git a/.github/workflows/on_PR_linux_special_buils.yml b/.github/workflows/on_PR_linux_special_buils.yml new file mode 100644 index 00000000..f8386f45 --- /dev/null +++ b/.github/workflows/on_PR_linux_special_buils.yml @@ -0,0 +1,120 @@ +name: Linux Special Builds on PRs + +on: [pull_request] + +jobs: + special_debugRelease: + name: 'Ubuntu 20.04 - GCC - Debug+Coverage' + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: install dependencies + run: | + pip3 install conan==1.36.0 + + - name: Conan common config + run: | + conan profile new --detect default + conan profile update settings.compiler.libcxx=libstdc++11 default + + - name: Run Conan + run: | + mkdir build && cd build + conan profile list + conan profile show default + conan install .. -o webready=True --build missing + + - name: Build + run: | + cd build + cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=ON -DEXIV2_ENABLE_PNG=ON -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_CURL=ON -DEXIV2_BUILD_UNIT_TESTS=ON -DEXIV2_ENABLE_BMFF=ON -DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON -DBUILD_WITH_COVERAGE=ON -DCMAKE_INSTALL_PREFIX=install .. + make -j + + - name: Tests + Upload coverage + env: + EXIV2_EXT: .exe + run: | + cd build/bin + ./unit_tests + cd ../../tests/ + python runner.py -v + bash <(curl -s https://codecov.io/bash) + + special_releaseValgrind: + name: 'Ubuntu 20.04 - GCC - Release+Valgrind' + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: install dependencies + run: | + sudo apt-get update + sudo apt-get install valgrind + pip3 install conan==1.36.0 + + - name: Conan common config + run: | + conan profile new --detect default + conan profile update settings.compiler.libcxx=libstdc++11 default + + - name: Run Conan + run: | + mkdir build && cd build + conan profile list + conan profile show default + conan install .. -o webready=True --build missing + + - name: Build + run: | + cd build + cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DEXIV2_ENABLE_PNG=ON -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_CURL=ON -DEXIV2_BUILD_UNIT_TESTS=ON -DEXIV2_ENABLE_BMFF=ON -DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON -DBUILD_WITH_COVERAGE=OFF -DCMAKE_INSTALL_PREFIX=install .. + make -j + + - name: Tests with valgrind + env: + EXIV2_EXT: .exe + run: | + cd build/bin + valgrind ./unit_tests + + + special_releaseSanitizers: + name: 'Ubuntu 20.04 - GCC - Release+Sanitizers' + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: install dependencies + run: | + pip3 install conan==1.36.0 + + - name: Conan common config + run: | + conan profile new --detect default + conan profile update settings.compiler.libcxx=libstdc++11 default + + - name: Run Conan + run: | + mkdir build && cd build + conan profile list + conan profile show default + conan install .. -o webready=True --build missing + + - name: Build + run: | + cd build + cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DEXIV2_ENABLE_PNG=ON -DEXIV2_ENABLE_WEBREADY=ON -DEXIV2_ENABLE_CURL=ON -DEXIV2_BUILD_UNIT_TESTS=ON -DEXIV2_ENABLE_BMFF=ON -DEXIV2_TEAM_WARNINGS_AS_ERRORS=ON -DBUILD_WITH_COVERAGE=OFF -DEXIV2_TEAM_USE_SANITIZERS=ON -DCMAKE_INSTALL_PREFIX=install .. + make -j + + - name: Tests + env: + EXIV2_EXT: .exe + run: | + cd build/bin + ./unit_tests + cd ../../tests/ + python runner.py -v