diff --git a/.github/workflows/actions/upload-artifact/action.yml b/.github/workflows/actions/upload-artifact/action.yml new file mode 100644 index 000000000..c3765f868 --- /dev/null +++ b/.github/workflows/actions/upload-artifact/action.yml @@ -0,0 +1,19 @@ +name: Upload Torque Test Report +description: Upload Torques unit test artifact. +inputs: + name: + description: The name of the unit test. + default: "${{github.job}}" + path: + description: The path to the upload. + required: true + default: "**/My Projects/Torque3D/game/test_detail.xml" +runs: + using: "composite" + steps: + name: Upload Torque Test Report + uses: actions/upload-artifact@v3 + with: + name: ${{inputs.name}} + path: ${{inputs.path}} + retention-days: 1 diff --git a/.github/workflows/build-windows-msvc.yml b/.github/workflows/build-windows-msvc.yml new file mode 100644 index 000000000..fceef28e8 --- /dev/null +++ b/.github/workflows/build-windows-msvc.yml @@ -0,0 +1,51 @@ +name: Windows Build MSVC +on: + push: + branches: [development] + pull_request: + branches: [development] + + concurrency: + group: ci-${{github.actor}}-${{github.head_ref || github.run_number}}-${{github.ref}}-windows + cancel-in-progress: true + jobs: + build-windows: + runs-on: "windows-latest" + name: ${{matrix.name}} + strategy: + fail-falst: false + matrix: + name: "TorqueWindows" + tests: true + build_type: "Release" + cc: "cl" + cxx: "cl" + bin: "./Torque3D.exe" + environment_script: "C:/Program Files (x86)/Microsoft Visual Studio/2022/Enterprise/VC/Auxiliary/Build/vcvars64.bat", + generators: "Visual Studio 17 2022" + steps: + - uses: actions/checkout@v3 + + - name: Print env + run: | + echo github.event.action: ${{ github.event.action }} + echo github.event_name: ${{ github.event_name }} + + - name: Setup MSVC problem matcher + uses: ammaraskar/msvc-problem-matcher@master + + - name: Install Windows MSVC Dependencies + run: | + choco install cmake + cmake --version + + - name: Configure + shell: bash + run: cmake \ + -B ${{github.workspace}}/build \ + -G "${{matrix.generators}}" \ + -DCMAKE_BUILD_TYPE=${{matrix.build_type}} \ + -DTORQUE_APP_NAME=Torque3D \ + -DTORQUE_TESTING=ON + + \ No newline at end of file diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml deleted file mode 100644 index f88eaca04..000000000 --- a/.github/workflows/cmake.yml +++ /dev/null @@ -1,94 +0,0 @@ -name: CMake - -on: - push: - branches: [ development ] - pull_request: - branches: [ development ] - -env: - # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.) - BUILD_TYPE: RelWithDebInfo - -jobs: - build: - if: github.repository == 'TorqueGameEngines/Torque3D' - # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac. - # You can convert this to a matrix build if you need cross-platform coverage. - # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix - runs-on: ${{matrix.os}} - strategy: - matrix: - os: [ windows-latest ] - - steps: - - uses: actions/checkout@v3 - - uses: seanmiddleditch/gha-setup-ninja@master - - uses: ilammy/msvc-dev-cmd@v1 - - name: Setup Environment - run: | - if [ "$RUNNER_OS" == "Linux" ]; then - sudo apt-get update && \ - sudo apt-get install -y \ - build-essential \ - nasm \ - libogg-dev \ - libxft-dev \ - libx11-dev \ - libxxf86vm-dev \ - libopenal-dev \ - libfreetype6-dev \ - libxcursor-dev \ - libxinerama-dev \ - libxi-dev \ - libxrandr-dev \ - libxss-dev \ - libglu1-mesa-dev \ - libgtk-3-dev - fi - shell: bash - - name: Configure CMake - # Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make. - # See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type - run: cmake -B ${{github.workspace}}/build -G Ninja -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DTORQUE_APP_NAME=Torque3D -DTORQUE_TESTING=ON - - - name: Build - # Build your program with the given configuration - run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}} --target install - - - name: Test - run: | - cd "${{github.workspace}}/My Projects/Torque3D/game" - if [ "$RUNNER_OS" == "macOS" ]; then - ./Torque3D.app/Contents/MacOS/Torque3D runTests.tscript - else - ./Torque3D_OPTIMIZEDDEBUG runTests.tscript - fi - shell: bash - - # Make all paths conform to the Unix runner setup: - - name: Replace Absolute Paths In Test Report - run: | - import os - dir = os.environ["WorkspaceDirectory"] - filePath = dir + "/My Projects/Torque3D/game/test_detail.xml" - f = open(filePath, 'r') - filedata = f.read() - f.close() - - filedata = filedata.replace(dir, "/home/runner/work/Torque3D/Torque3D").replace("\\", "/") - - f = open(filePath, 'w') - f.write(filedata) - f.close() - shell: python - env: - WorkspaceDirectory: ${{github.workspace}} - - - name: Upload Test Report - uses: actions/upload-artifact@v3 - if: always() # always run even if the previous step fails - with: - name: junit-test-results-${{ runner.os }} - path: '**/My Projects/Torque3D/game/test_detail.xml' - retention-days: 1