70 lines
2.0 KiB
YAML
70 lines
2.0 KiB
YAML
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]
|
|
conf: [Release, Debug]
|
|
|
|
steps:
|
|
- name: Clone Repository
|
|
uses: actions/checkout@v2
|
|
|
|
# Setup build environment variables using vcvarsall.bat.
|
|
- name: Configure MSCV Compiler for ${{ matrix.arch }}
|
|
uses: ilammy/msvc-dev-cmd@v1
|
|
with:
|
|
arch: ${{ matrix.arch }}
|
|
|
|
- name: Initialize CodeQL for C++
|
|
uses: github/codeql-action/init@v1
|
|
if: ${{ matrix.os == 'windows-2019' && matrix.conf == 'Debug' }}
|
|
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 }}
|
|
DETOURS_CONFIG: ${{ matrix.conf }}
|
|
run: nmake
|
|
|
|
- name: Run unit tests for ${{ matrix.arch }} on ${{ matrix.os }}
|
|
id: run-unit-tests
|
|
env:
|
|
DETOURS_CONFIG: ${{ matrix.conf }}
|
|
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' && matrix.conf == 'Debug' }}
|