Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add MSBuild CI #1

Merged
merged 8 commits into from
Nov 9, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 62 additions & 0 deletions .github/workflows/msbuild.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
name: MSBuild

on: [push, pull_request]

env:
# Path to the solution file relative to the root of the project.
SOLUTION_FILE_PATH: .\Pseudo3DCLIGame\Pseudo3DCLIGame.vcxproj

# Configuration type to build.
# You can convert this to a build matrix if you need coverage of multiple configuration types.
# https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
BUILD_CONFIGURATION: Release

permissions:
contents: read

jobs:
build:
strategy:
matrix:
os: [windows-latest, windows-2022, windows-2019]
configuration: [Release, Debug]
platform: [x64, Win32]

runs-on: ${{ matrix.os }}

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v1.3.1

- name: Restore NuGet packages
working-directory: ${{ env.GITHUB_WORKSPACE }}
run: nuget restore ${{ env.SOLUTION_FILE_PATH }}

- name: Build
working-directory: ${{ env.GITHUB_WORKSPACE }}
# Add additional options to the MSBuild command line here (like platform or verbosity level).
# See https://docs.microsoft.com/visualstudio/msbuild/msbuild-command-line-reference
run: msbuild /m /p:Configuration=${{ matrix.configuration }} /p:Platform=${{ matrix.platform }} /p:PlatformToolset=${{ (matrix.os == 'windows-latest' || matrix.os == 'windows-2022') && '"v143"' || '"v142"' }} ${{ env.SOLUTION_FILE_PATH }}

- name: Upload a Build Artifact
uses: actions/upload-artifact@v3
with:
# Artifact name
name: ${{ vars.REPOSITORY_NAME }}-build-${{ matrix.os }}-${{ matrix.configuration }}-${{ matrix.platform }}-${{ github.sha }} # optional, default is artifact

# A file, directory or wildcard pattern that describes what to upload
path: Pseudo3DCLIGame\${{ matrix.platform == 'x64' && 'x64\' || '' }}${{ matrix.configuration }}

# The desired behavior if no files are found using the provided path.
# Available Options:
# warn: Output a warning but do not fail the action
# error: Fail the action with an error message
# ignore: Do not output any warnings or errors, the action does not fail
if-no-files-found: warn # optional, default is warn

# Duration after which artifact will expire in days. 0 means using default retention.
# Minimum 1 day. Maximum 90 days unless changed from the repository settings page.
retention-days: 90 # optional