From 9773db1bf2f1c7585eb95149d06d7612fef4af3f Mon Sep 17 00:00:00 2001 From: Vijai Kumar S Date: Tue, 21 May 2024 20:02:33 +0530 Subject: [PATCH] disable other jobs for now and adjust the statistics better --- .github/workflows/build.yml | 595 ++++++++++++++++++------------------ 1 file changed, 299 insertions(+), 296 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3423bbc18..3689a52fb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,297 +1,297 @@ on: [ push, pull_request, workflow_dispatch ] name: Build jobs: - build-linux-memtest: - runs-on: ubuntu-20.04 - steps: - - run: sudo apt update - - run: sudo apt install -y valgrind uuid-dev - - uses: actions/checkout@v2 - with: - submodules: true - - run: sh cmake/GenerateMake.sh - - run: cmake --build . --target lib3mf_memcheck - working-directory: ./build - - build-linux-ubi8-gcc12: - runs-on: ubuntu-20.04 - steps: - - run: sudo apt update - - run: sudo apt install -y uuid-dev - - uses: actions/checkout@v2 - with: - submodules: true - - run: mkdir -p build - - run: zip -r build/bindings.zip Autogenerated/Bindings - - - name: Archive bindings - uses: actions/upload-artifact@v2 - with: - name: bindings.zip - path: build/bindings.zip - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Docker Build - uses: docker/build-push-action@v5 - with: - context: . - file: ./CI/Dockerfile - platforms: linux/amd64 - tags: lib3mf_ubi8:latest - load: true - - name: Docker Extract - uses: shrink/actions-docker-extract@v3.0.0 - id: extract - with: - image: lib3mf_ubi8:latest - path: out.zip - destination: dist - - - run: unzip out.zip - working-directory: ./dist - - name: Upload Artifact - uses: actions/upload-artifact@v2 - with: - name: lib3mf.so - path: dist/lib3mf.so.2 - - build-macos: - runs-on: macos-latest - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - run: sh cmake/GenerateMake.sh "-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64" - - run: cmake --build . - working-directory: ./build - - run: ctest -V - working-directory: ./build - - name: Archive Mac binary - uses: actions/upload-artifact@v2 - with: - name: lib3mf.dylib - path: build/lib3mf.dylib - - build-macos-debug: - runs-on: macos-latest - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - run: sh cmake/GenerateMake.sh "-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64 -DCMAKE_BUILD_TYPE=Debug" - - run: cmake --build . - working-directory: ./build - - run: ctest -V - working-directory: ./build - - name: Archive Mac binary - uses: actions/upload-artifact@v2 - with: - name: lib3mf.debug.dylib - path: build/lib3mf.dylib - - codecoverage-macos: - runs-on: macos-latest - steps: - - uses: actions/checkout@v4 - with: - submodules: true - - name: Install Prerequisites - run: | - brew install lcov - brew install gcovr - - run: sh cmake/GenerateMake.sh -DBUILD_FOR_CODECOVERAGE=ON - - run: cmake --build . - working-directory: ./build - - run: ./Tests/codecoverage/run_codecoverage.sh - - name: Archive Code Coverage Results - uses: actions/upload-artifact@v2 - with: - name: codecoverage.zip - path: build/codecoverage.zip - - name: Upload code coverage to codecov - uses: codecov/codecov-action@v3 - with: - token: ${{ secrets.CODECOV_TOKEN }} - files: ./build/Test_CPP_Bindings_filtered.info - fail_ci_if_error: true # optional (default = false) - verbose: true # optional (default = false) - - build-windows-release: - runs-on: windows-2019 - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - run: ./cmake/GenerateVS2019.bat - - run: cmake --build . --config Release - working-directory: ./build - - run: ctest -V - working-directory: ./build - - name: Archive Windows Release binary - uses: actions/upload-artifact@v2 - with: - name: lib3mf.dll - path: build/Release/lib3mf.dll - - name: Archive Windows Release lib - uses: actions/upload-artifact@v2 - with: - name: lib3mf.lib - path: build/Release/lib3mf.lib - build-windows-debug: - runs-on: windows-2019 - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - run: ./cmake/GenerateVS2019.bat - - run: cmake --build . --config Debug - working-directory: ./build - - run: ctest -V - working-directory: ./build - - name: Archive Windows Debug binary - uses: actions/upload-artifact@v2 - with: - name: lib3mf.debug.dll - path: build/Debug/lib3mf.dll - - uses: actions/upload-artifact@v2 - with: - name: lib3mf.pdb - path: build/Debug/lib3mf.pdb - - uses: actions/upload-artifact@v2 - with: - name: lib3mf.debug.lib - path: build/Debug/lib3mf.lib - build-windows-32bit: - runs-on: windows-2019 - steps: - - uses: actions/checkout@v2 - with: - submodules: true - - run: ./cmake/GenerateVS2019_32bit.bat - - run: cmake --build . --config Release - working-directory: ./build_32bit - - run: ctest -V - working-directory: ./build_32bit - - name: Archive Windows 32 bit Release binary - uses: actions/upload-artifact@v2 - with: - name: lib3mf_32bit.dll - path: build_32bit/Release/lib3mf.dll - - name: Archive Windows 32 bit Release lib - uses: actions/upload-artifact@v2 - with: - name: lib3mf_32bit.lib - path: build_32bit/Release/lib3mf.lib - build-mingw-w64: - runs-on: windows-2019 - steps: - - run: choco install mingw -y - - uses: actions/checkout@v2 - with: - submodules: true - - run: ./cmake/GenerateMinGW.bat - - run: cmake --build . - working-directory: ./build - - run: ctest -V - working-directory: ./build - assemble-sdk: - runs-on: ubuntu-20.04 - needs: [ build-windows-release, build-macos, build-linux-ubi8-gcc12 ] - steps: - - run: sudo apt install -y zip unzip - - run: mkdir build - - uses: actions/checkout@v2 - with: - submodules: false - - name: Download all workflow run artifacts - uses: actions/download-artifact@v2 - with: - path: ./build - - run: ls -Rl ./build - - run: unzip bindings.zip/bindings.zip - working-directory: ./build - - run: bash SDK/GenerateSDK_github.sh - - name: Archive SDK artifact - uses: actions/upload-artifact@v2 - with: - name: lib3mf_sdk.zip - path: build/lib3mf_sdk.zip - deploy-linux: - runs-on: ubuntu-20.04 - needs: [ assemble-sdk ] - steps: - - run: sudo apt install -y zip unzip - - run: pwd - - run: ls -Rl . - - name: Download lib3mf_sdk artifact - uses: actions/download-artifact@v2 - with: - name: lib3mf_sdk.zip - path: lib3mf_sdk.zip - - run: ls -Rl . - - name: Unpack the SDK - run: | - unzip lib3mf_sdk.zip/lib3mf_sdk.zip - - name: Build CppDynamic - run: | - sh Examples/CppDynamic/GenerateMake.sh - cd Examples/CppDynamic/build - cmake --build . - ./Example_ExtractInfo ../../Files/Helix.3mf - - name: Build Cpp - run: | - sh Examples/Cpp/GenerateMake.sh - cd Examples/Cpp/build - cmake --build . - ./Example_ExtractInfo ../../Files/Helix.3mf - deploy-windows: - runs-on: windows-2019 - needs: [ assemble-sdk ] - steps: - - name: Download lib3mf_sdk artifact - uses: actions/download-artifact@v2 - with: - name: lib3mf_sdk.zip - path: lib3mf_sdk.zip - - name: Unpack the SDK - run: | - unzip lib3mf_sdk.zip/lib3mf_sdk.zip - - name: Build CppDynamic - run: | - ./Examples/CppDynamic/GenerateVS2019.bat - cd Examples/CppDynamic/build - cmake --build . --config Release - ./Release/Example_ExtractInfo.exe ../../Files/Helix.3mf - - name: Build Cpp - run: | - ./Examples/Cpp/GenerateVS2019.bat - cd Examples/Cpp/build - cmake --build . --config Release - ./Release/Example_ExtractInfo.exe ../../Files/Helix.3mf - deploy-macos: - runs-on: macos-latest - needs: [ assemble-sdk ] - steps: - - name: Download lib3mf_sdk artifact - uses: actions/download-artifact@v2 - with: - name: lib3mf_sdk.zip - path: lib3mf_sdk.zip - - name: Unpack the SDK - run: | - unzip lib3mf_sdk.zip/lib3mf_sdk.zip - - name: Build CppDynamic - run: | - sh Examples/CppDynamic/GenerateMake.sh - cd Examples/CppDynamic/build - cmake --build . - ./Example_ExtractInfo ../../Files/Helix.3mf - - name: Build Cpp - run: | - sh Examples/Cpp/GenerateMake.sh - cd Examples/Cpp/build - cmake --build . - ./Example_ExtractInfo ../../Files/Helix.3mf +# build-linux-memtest: +# runs-on: ubuntu-20.04 +# steps: +# - run: sudo apt update +# - run: sudo apt install -y valgrind uuid-dev +# - uses: actions/checkout@v2 +# with: +# submodules: true +# - run: sh cmake/GenerateMake.sh +# - run: cmake --build . --target lib3mf_memcheck +# working-directory: ./build +# +# build-linux-ubi8-gcc12: +# runs-on: ubuntu-20.04 +# steps: +# - run: sudo apt update +# - run: sudo apt install -y uuid-dev +# - uses: actions/checkout@v2 +# with: +# submodules: true +# - run: mkdir -p build +# - run: zip -r build/bindings.zip Autogenerated/Bindings +# +# - name: Archive bindings +# uses: actions/upload-artifact@v2 +# with: +# name: bindings.zip +# path: build/bindings.zip +# - name: Set up Docker Buildx +# uses: docker/setup-buildx-action@v3 +# - name: Docker Build +# uses: docker/build-push-action@v5 +# with: +# context: . +# file: ./CI/Dockerfile +# platforms: linux/amd64 +# tags: lib3mf_ubi8:latest +# load: true +# - name: Docker Extract +# uses: shrink/actions-docker-extract@v3.0.0 +# id: extract +# with: +# image: lib3mf_ubi8:latest +# path: out.zip +# destination: dist +# +# - run: unzip out.zip +# working-directory: ./dist +# - name: Upload Artifact +# uses: actions/upload-artifact@v2 +# with: +# name: lib3mf.so +# path: dist/lib3mf.so.2 +# +# build-macos: +# runs-on: macos-latest +# steps: +# - uses: actions/checkout@v2 +# with: +# submodules: true +# - run: sh cmake/GenerateMake.sh "-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64" +# - run: cmake --build . +# working-directory: ./build +# - run: ctest -V +# working-directory: ./build +# - name: Archive Mac binary +# uses: actions/upload-artifact@v2 +# with: +# name: lib3mf.dylib +# path: build/lib3mf.dylib +# +# build-macos-debug: +# runs-on: macos-latest +# steps: +# - uses: actions/checkout@v2 +# with: +# submodules: true +# - run: sh cmake/GenerateMake.sh "-DCMAKE_OSX_ARCHITECTURES=arm64;x86_64 -DCMAKE_BUILD_TYPE=Debug" +# - run: cmake --build . +# working-directory: ./build +# - run: ctest -V +# working-directory: ./build +# - name: Archive Mac binary +# uses: actions/upload-artifact@v2 +# with: +# name: lib3mf.debug.dylib +# path: build/lib3mf.dylib +# +# codecoverage-macos: +# runs-on: macos-latest +# steps: +# - uses: actions/checkout@v4 +# with: +# submodules: true +# - name: Install Prerequisites +# run: | +# brew install lcov +# brew install gcovr +# - run: sh cmake/GenerateMake.sh -DBUILD_FOR_CODECOVERAGE=ON +# - run: cmake --build . +# working-directory: ./build +# - run: ./Tests/codecoverage/run_codecoverage.sh +# - name: Archive Code Coverage Results +# uses: actions/upload-artifact@v2 +# with: +# name: codecoverage.zip +# path: build/codecoverage.zip +# - name: Upload code coverage to codecov +# uses: codecov/codecov-action@v3 +# with: +# token: ${{ secrets.CODECOV_TOKEN }} +# files: ./build/Test_CPP_Bindings_filtered.info +# fail_ci_if_error: true # optional (default = false) +# verbose: true # optional (default = false) +# +# build-windows-release: +# runs-on: windows-2019 +# steps: +# - uses: actions/checkout@v2 +# with: +# submodules: true +# - run: ./cmake/GenerateVS2019.bat +# - run: cmake --build . --config Release +# working-directory: ./build +# - run: ctest -V +# working-directory: ./build +# - name: Archive Windows Release binary +# uses: actions/upload-artifact@v2 +# with: +# name: lib3mf.dll +# path: build/Release/lib3mf.dll +# - name: Archive Windows Release lib +# uses: actions/upload-artifact@v2 +# with: +# name: lib3mf.lib +# path: build/Release/lib3mf.lib +# build-windows-debug: +# runs-on: windows-2019 +# steps: +# - uses: actions/checkout@v2 +# with: +# submodules: true +# - run: ./cmake/GenerateVS2019.bat +# - run: cmake --build . --config Debug +# working-directory: ./build +# - run: ctest -V +# working-directory: ./build +# - name: Archive Windows Debug binary +# uses: actions/upload-artifact@v2 +# with: +# name: lib3mf.debug.dll +# path: build/Debug/lib3mf.dll +# - uses: actions/upload-artifact@v2 +# with: +# name: lib3mf.pdb +# path: build/Debug/lib3mf.pdb +# - uses: actions/upload-artifact@v2 +# with: +# name: lib3mf.debug.lib +# path: build/Debug/lib3mf.lib +# build-windows-32bit: +# runs-on: windows-2019 +# steps: +# - uses: actions/checkout@v2 +# with: +# submodules: true +# - run: ./cmake/GenerateVS2019_32bit.bat +# - run: cmake --build . --config Release +# working-directory: ./build_32bit +# - run: ctest -V +# working-directory: ./build_32bit +# - name: Archive Windows 32 bit Release binary +# uses: actions/upload-artifact@v2 +# with: +# name: lib3mf_32bit.dll +# path: build_32bit/Release/lib3mf.dll +# - name: Archive Windows 32 bit Release lib +# uses: actions/upload-artifact@v2 +# with: +# name: lib3mf_32bit.lib +# path: build_32bit/Release/lib3mf.lib +# build-mingw-w64: +# runs-on: windows-2019 +# steps: +# - run: choco install mingw -y +# - uses: actions/checkout@v2 +# with: +# submodules: true +# - run: ./cmake/GenerateMinGW.bat +# - run: cmake --build . +# working-directory: ./build +# - run: ctest -V +# working-directory: ./build +# assemble-sdk: +# runs-on: ubuntu-20.04 +# needs: [ build-windows-release, build-macos, build-linux-ubi8-gcc12 ] +# steps: +# - run: sudo apt install -y zip unzip +# - run: mkdir build +# - uses: actions/checkout@v2 +# with: +# submodules: false +# - name: Download all workflow run artifacts +# uses: actions/download-artifact@v2 +# with: +# path: ./build +# - run: ls -Rl ./build +# - run: unzip bindings.zip/bindings.zip +# working-directory: ./build +# - run: bash SDK/GenerateSDK_github.sh +# - name: Archive SDK artifact +# uses: actions/upload-artifact@v2 +# with: +# name: lib3mf_sdk.zip +# path: build/lib3mf_sdk.zip +# deploy-linux: +# runs-on: ubuntu-20.04 +# needs: [ assemble-sdk ] +# steps: +# - run: sudo apt install -y zip unzip +# - run: pwd +# - run: ls -Rl . +# - name: Download lib3mf_sdk artifact +# uses: actions/download-artifact@v2 +# with: +# name: lib3mf_sdk.zip +# path: lib3mf_sdk.zip +# - run: ls -Rl . +# - name: Unpack the SDK +# run: | +# unzip lib3mf_sdk.zip/lib3mf_sdk.zip +# - name: Build CppDynamic +# run: | +# sh Examples/CppDynamic/GenerateMake.sh +# cd Examples/CppDynamic/build +# cmake --build . +# ./Example_ExtractInfo ../../Files/Helix.3mf +# - name: Build Cpp +# run: | +# sh Examples/Cpp/GenerateMake.sh +# cd Examples/Cpp/build +# cmake --build . +# ./Example_ExtractInfo ../../Files/Helix.3mf +# deploy-windows: +# runs-on: windows-2019 +# needs: [ assemble-sdk ] +# steps: +# - name: Download lib3mf_sdk artifact +# uses: actions/download-artifact@v2 +# with: +# name: lib3mf_sdk.zip +# path: lib3mf_sdk.zip +# - name: Unpack the SDK +# run: | +# unzip lib3mf_sdk.zip/lib3mf_sdk.zip +# - name: Build CppDynamic +# run: | +# ./Examples/CppDynamic/GenerateVS2019.bat +# cd Examples/CppDynamic/build +# cmake --build . --config Release +# ./Release/Example_ExtractInfo.exe ../../Files/Helix.3mf +# - name: Build Cpp +# run: | +# ./Examples/Cpp/GenerateVS2019.bat +# cd Examples/Cpp/build +# cmake --build . --config Release +# ./Release/Example_ExtractInfo.exe ../../Files/Helix.3mf +# deploy-macos: +# runs-on: macos-latest +# needs: [ assemble-sdk ] +# steps: +# - name: Download lib3mf_sdk artifact +# uses: actions/download-artifact@v2 +# with: +# name: lib3mf_sdk.zip +# path: lib3mf_sdk.zip +# - name: Unpack the SDK +# run: | +# unzip lib3mf_sdk.zip/lib3mf_sdk.zip +# - name: Build CppDynamic +# run: | +# sh Examples/CppDynamic/GenerateMake.sh +# cd Examples/CppDynamic/build +# cmake --build . +# ./Example_ExtractInfo ../../Files/Helix.3mf +# - name: Build Cpp +# run: | +# sh Examples/Cpp/GenerateMake.sh +# cd Examples/Cpp/build +# cmake --build . +# ./Example_ExtractInfo ../../Files/Helix.3mf integration-tests-latest-release: runs-on: ubuntu-20.04 @@ -437,10 +437,13 @@ jobs: run: | LATEST_TIME=$(grep "Elapsed (wall clock) time" test_suites/latest_sdk_test.log | awk '{print $8}') SECOND_LATEST_TIME=$(grep "Elapsed (wall clock) time" test_suites/second_latest_sdk_test.log | awk '{print $8}') - echo "Latest SDK execution time: ${LATEST_TIME}" - echo "Second Latest SDK execution time: ${SECOND_LATEST_TIME}" - if [ $(echo "$LATEST_TIME < $SECOND_LATEST_TIME" | bc) -eq 1 ]; then + LATEST_TOTAL_SECONDS=$(echo $LATEST_TIME | awk -F: '{ print ($1 * 60) + $2 }') + SECOND_LATEST_TOTAL_SECONDS=$(echo $SECOND_LATEST_TIME | awk -F: '{ print ($1 * 60) + $2 }') + echo "Latest SDK execution time in seconds: ${LATEST_TOTAL_SECONDS}" + echo "Second Latest SDK execution time in seconds: ${SECOND_LATEST_TOTAL_SECONDS}" + # Compare the total seconds + if (( $(echo "$LATEST_TOTAL_SECONDS < $SECOND_LATEST_TOTAL_SECONDS" | bc -l) )); then echo "New release is better" - else + else echo "New release is worse" - fi \ No newline at end of file + fi \ No newline at end of file