Adjust formatting of CrimeExecution
constructor
#392
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build | |
on: | |
push: | |
workflow_dispatch: | |
jobs: | |
windows: | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: [x86, x64] | |
runs-on: windows-latest | |
env: | |
PLATFORM: ${{ matrix.platform }} | |
BUILD_CONFIGURATION: Release | |
SOLUTION_FILE_PATH: . | |
VCPKG_BINARY_SOURCES: 'clear;x-gha,readwrite' | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Checkout NAS2D | |
run: git submodule update --init nas2d-core/ | |
- name: Add MSBuild to PATH | |
uses: microsoft/[email protected] | |
- name: Integrate vcpkg | |
run: vcpkg integrate install | |
- name: Export GitHub Actions cache environment variables | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || ''); | |
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || ''); | |
- name: Restore vcpkg dependency cache | |
uses: actions/cache/restore@v4 | |
id: cacheRestoreVcpkg | |
with: | |
path: vcpkg_installed | |
key: vcpkgCache-${{ runner.os }}-${{ matrix.platform }}-${{ hashFiles('vcpkg.json') }} | |
- name: Pre-install vcpkg dependencies - OPHD | |
run: | | |
vcpkg install | |
- name: Save vcpkg dependency cache | |
uses: actions/cache/save@v4 | |
if: steps.cacheRestoreVcpkg.outputs.cache-hit != 'true' | |
with: | |
path: vcpkg_installed | |
key: ${{ steps.cacheRestoreVcpkg.outputs.cache-primary-key }} | |
- name: Copy vcpkg cache to NAS2D folder | |
run: | | |
xcopy vcpkg_installed nas2d-core\vcpkg_installed\ /s /e | |
- name: Pre-install vcpkg dependencies - NAS2D | |
working-directory: nas2d-core | |
run: | | |
vcpkg install | |
- name: Set NAS2D modification time | |
shell: bash | |
run: | | |
nas2dSha=$(git submodule status -- nas2d-core/ | awk '{print $1}') | |
echo "nas2dSha=${nas2dSha}" >> $GITHUB_ENV | |
# Set last modification times to that of last build's committer time | |
# The committer time should pre-date any cached output modification time | |
commitTime=$(git -C nas2d-core/ log -1 --format="%cI") | |
echo "commitTime=${commitTime}" | |
find nas2d-core/ -type f -exec touch -d "${commitTime}" '{}' + | |
- name: Restore NAS2D cache | |
uses: actions/cache/restore@v4 | |
id: cacheRestoreNas2d | |
with: | |
path: nas2d-core/.build/ | |
key: nas2dCache-${{ runner.os }}-${{ matrix.platform }}-${{ env.nas2dSha }} | |
- name: Build NAS2D | |
# 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 /maxCpuCount /warnAsError /property:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}} /target:NAS2D | |
- name: Save build cache - NAS2D | |
uses: actions/cache/save@v4 | |
if: steps.cacheRestoreNas2d.outputs.cache-hit != 'true' | |
with: | |
path: nas2d-core/.build/ | |
key: ${{ steps.cacheRestoreNas2d.outputs.cache-primary-key }} | |
- name: Restore incremental build cache | |
uses: actions/cache/restore@v4 | |
id: cacheRestoreOphd | |
if: github.ref != format('refs/heads/{0}', github.event.repository.default_branch) | |
with: | |
path: .build | |
key: buildCache-${{ runner.os }}-${{ matrix.platform }}-${{ github.sha }} | |
restore-keys: buildCache-${{ runner.os }}-${{ matrix.platform }}- | |
- name: Set modification times | |
if: ${{ hashFiles('.build/lastBuildSha.txt') != '' }} | |
shell: bash | |
run: | | |
# Determine SHA of last cached build (ignore cache if not marked) | |
lastBuildSha=$(<.build/lastBuildSha.txt) || exit 0 | |
echo "Last build SHA: ${lastBuildSha}" | |
# Fetch source code for last build | |
# (exit successfully if not found, cache will be ignored) | |
git fetch --depth=1 origin "${lastBuildSha}" || exit 0 | |
git switch --detach "${lastBuildSha}" | |
# Set last modification times to that of last build's committer time | |
# The committer time should pre-date any cached output modification time | |
commitTime=$(git log -1 --format="%cI") | |
echo "commitTime=${commitTime}" | |
find . -type f -exec touch -d "${commitTime}" '{}' + | |
# Re-check out current branch, which updates last modification times of modified files | |
git switch - | |
- name: Set build SHA | |
shell: bash | |
run: | | |
# Save copy of current SHA to be cached, and used for reference in future builds | |
mkdir --parents .build/ | |
echo "${{ github.sha }}" > .build/lastBuildSha.txt | |
- name: Build OPHD | |
# 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 /maxCpuCount /warnAsError /property:Configuration=${{env.BUILD_CONFIGURATION}} ${{env.SOLUTION_FILE_PATH}} | |
- name: Save incremental build cache - OPHD | |
uses: actions/cache/save@v4 | |
if: steps.cacheRestoreOphd.outcome == 'skipped' || steps.cacheRestoreOphd.outputs.cache-hit != 'true' | |
with: | |
path: .build | |
key: buildCache-${{ runner.os }}-${{ matrix.platform }}-${{ github.sha }} |