Skip to content

Merge pull request #280 from 3MFConsortium/release/2.2.0 #2

Merge pull request #280 from 3MFConsortium/release/2.2.0

Merge pull request #280 from 3MFConsortium/release/2.2.0 #2

Workflow file for this run

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