name: C/C++ CI on: push: branches: [ master ] pull_request: branches: [ master ] jobs: job: name: ${{ matrix.os }}-${{ matrix.cxx }}-build-and-test runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: name: [ubuntu-gcc, macos-clang, windows-msvc, ubuntu-clang] # For Windows msvc, for Linux and macOS let's use the clang compiler, use gcc for Linux. include: - name: windows-msvc os: windows-latest cxx: cl.exe cc: cl.exe - name: ubuntu-clang os: ubuntu-latest cxx: clang++ cc: clang - name: macos-clang os: macos-latest cxx: clang++ cc: clang - name: ubuntu-gcc os: ubuntu-latest cxx: g++ cc: gcc steps: - uses: actions/checkout@v2 - uses: lukka/get-cmake@latest - uses: ilammy/msvc-dev-cmd@v1 - uses: lukka/set-shell-env@v1 with: CXX: ${{ matrix.cxx }} CC: ${{ matrix.cc }} - name: Cache DX SDK id: dxcache if: matrix.name == 'windows-msvc' uses: actions/cache@v2 with: path: '${{ github.workspace }}/DX_SDK' key: ${{ runner.os }}-DX_SDK restore-keys: | ${{ runner.os }}-DX_SDK - name: Download DXSetup if: matrix.name == 'windows-msvc' && steps.dxcache.outputs.cache-hit != 'true' run: | curl -s -o DXSDK_Jun10.exe --location https://download.microsoft.com/download/A/E/7/AE743F1F-632B-4809-87A9-AA1BB3458E31/DXSDK_Jun10.exe cmd.exe /c start /wait .\DXSDK_Jun10.exe /U /O /F /S /P "${{ github.workspace }}\DX_SDK" - name: Set Windows specific CMake arguments if: matrix.name == 'windows-msvc' id: windows_extra_cmake_args run: echo "::set-output name=args::'-DASSIMP_BUILD_ASSIMP_TOOLS=1 -DASSIMP_BUILD_ASSIMP_VIEW=1'" - name: configure and build uses: lukka/run-cmake@v2 env: DXSDK_DIR: '${{ github.workspace }}/DX_SDK' with: cmakeListsOrSettingsJson: CMakeListsTxtAdvanced cmakeListsTxtPath: '${{ github.workspace }}/CMakeLists.txt' cmakeAppendedArgs: '-GNinja -DCMAKE_BUILD_TYPE=Release ${{ steps.windows_extra_cmake_args.outputs.args }}' buildWithCMakeArgs: '-- -v' buildDirectory: '${{ github.workspace }}/build/' - name: test run: cd build/bin && ./unit shell: bash - uses: actions/upload-artifact@v2 if: matrix.name == 'windows-msvc' with: name: 'assimp-bins-${{ matrix.name }}-${{ github.sha }}' path: build/bin