aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/main.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/main.yml')
-rw-r--r--.github/workflows/main.yml77
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' }}