diff options
Diffstat (limited to '.github/workflows/main.yml')
-rw-r--r-- | .github/workflows/main.yml | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..c7fedcd --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,77 @@ +name: CI-Build + +env: + # Turn on msvc analysis during build, enable once warnings are clean. + DETOURS_ANALYZE: true + + # Compile in parallel where possible. + CL: /MP + +# Triggers the workflow on push or pull request events for the master branch. +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + build: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [windows-2019, windows-2016] + arch: [x86, x64, x64_arm, x64_arm64] + + steps: + - name: Clone Repository + uses: actions/checkout@v2 + with: + # Must fetch at least the immediate parents so that if this is + # a pull request then we can checkout the head of the pull request. + # Only include this option if you are running this workflow on pull requests. + fetch-depth: 2 + + # If this run was triggered by a pull request event then checkout + # the head of the pull request instead of the merge commit. + # Only include this step if you are running this workflow on pull requests. + - name: Checkout head of the pull request + run: git checkout HEAD^2 + if: ${{ github.event_name == 'pull_request' }} + + # Setup build environment variables using vcvarsall.bat. + - name: Configure MSCV Compiler for ${{ matrix.arch }} + uses: ilammy/[email protected] + with: + arch: ${{ matrix.arch }} + + - name: Initialize CodeQL for C++ + uses: github/codeql-action/init@v1 + if: ${{ matrix.os == 'windows-2019' }} + with: + languages: cpp + config-file: ./.github/codeql/codeql-config.yml + + - name: Build Detours for ${{ matrix.arch }} on ${{ matrix.os }} + env: + # Tell detours what process to target + DETOURS_TARGET_PROCESSOR: ${{ env.VSCMD_ARG_TGT_ARCH }} + run: nmake + + - name: Run unit tests for ${{ matrix.arch }} on ${{ matrix.os }} + id: run-unit-tests + run: cd tests && nmake test + if: ${{ matrix.arch == 'x86' || matrix.arch == 'x64' }} + + - name: Upload artifacts for ${{ matrix.arch }} on ${{ matrix.os }} + uses: actions/upload-artifact@v2 + with: + name: artifacts-${{ matrix.os }} + path: | + lib.*/ + bin.*/ + include/ + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v1 + if: ${{ matrix.os == 'windows-2019' }} |