浏览代码

Build viewer and publish artifacts on windows-msvc.

This commit introduces Github Actions support for building the tools and viewer and making
these available for download as a zip file in the artifacts area of the Github Actions page.
This allows for continuous validation that the viewer and tools build successfully, and
the download is useful for quick testing of the very latest assimp functionality without needing
to download and build it from source.

This only applies to windows-msvc, since the assimp viewer is only supported on that platform.
It downloads the June 2010 DirectX SDK from the Microsoft servers and installs it. It also
uses a cache to prevent having to perform this DX SDK download and installation repeatedly for every
commit.

Note, it's necessary install the older June 2010 DXSDK because assimp uses the now deprecated D3DX libraries,
and these libraries are not included in the stock Windows Server image provided by Github Actions.
Andrew Johnson 5 年之前
父节点
当前提交
a9a0c30932
共有 1 个文件被更改,包括 31 次插入1 次删除
  1. 31 1
      .github/workflows/ccpp.yml

+ 31 - 1
.github/workflows/ccpp.yml

@@ -44,16 +44,46 @@ jobs:
       with:
       with:
         CXX: ${{ matrix.cxx }}
         CXX: ${{ matrix.cxx }}
         CC: ${{ matrix.cc }}
         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
     - name: configure and build
       uses: lukka/run-cmake@v2
       uses: lukka/run-cmake@v2
+      env:
+        DXSDK_DIR: '${{ github.workspace }}/DX_SDK'
+
       with:
       with:
         cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
         cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
         cmakeListsTxtPath: '${{ github.workspace }}/CMakeLists.txt'
         cmakeListsTxtPath: '${{ github.workspace }}/CMakeLists.txt'
-        cmakeAppendedArgs: '-GNinja -DCMAKE_BUILD_TYPE=Release'
+        cmakeAppendedArgs: '-GNinja -DCMAKE_BUILD_TYPE=Release ${{ steps.windows_extra_cmake_args.outputs.args }}'
         buildWithCMakeArgs: '-- -v'
         buildWithCMakeArgs: '-- -v'
         buildDirectory: '${{ github.workspace }}/build/'
         buildDirectory: '${{ github.workspace }}/build/'
         
         
     - name: test
     - name: test
       run: cd build/bin && ./unit
       run: cd build/bin && ./unit
       shell: bash
       shell: bash
+
+    - uses: actions/upload-artifact@v2
+      if: matrix.name == 'windows-msvc'
+      with:
+        name: 'assimp-bins-${{ matrix.name }}-${{ github.sha }}'
+        path: build/bin