Merge pull request #280 from 3MFConsortium/release/2.2.0 #2
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
on: [push, pull_request] | |
name: Build | |
jobs: | |
build-linux: | |
runs-on: ubuntu-18.04 | |
steps: | |
- run: sudo apt install -y valgrind | |
- uses: actions/checkout@v2 | |
with: | |
submodules: true | |
- run: sh cmake/GenerateMake.sh | |
- run: cmake --build . --target lib3mf_memcheck | |
working-directory: ./build | |
- run: ctest -V | |
working-directory: ./build | |
- name: Archive Linux binary | |
uses: actions/upload-artifact@v2 | |
with: | |
name: lib3mf.so | |
path: build/lib3mf.so.2 | |
- run: zip -r build/bindings.zip Autogenerated/Bindings | |
- name: Archive bindings | |
uses: actions/upload-artifact@v2 | |
with: | |
name: bindings.zip | |
path: build/bindings.zip | |
build-macos: | |
runs-on: macos-10.15 | |
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 | |
codecoverage-macos: | |
runs-on: macos-10.15 | |
steps: | |
- uses: actions/checkout@v2 | |
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@v1 | |
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 | |
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-18.04 | |
needs: [build-windows-release, build-linux, build-macos] | |
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-18.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-10.15 | |
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 |