Skip to content

RefactoringMSBuild

RefactoringMSBuild #16

name: RefactoringMSBuild
on:
workflow_dispatch:
pull_request:
branches: [ "refactoring" ]
permissions:
contents: read
jobs:
build:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
version: [ '2024' ]
steps:
- uses: actions/checkout@v5
with:
submodules: true
- name: Get submodules hash
id: submodules-hash
run: |
$commits = git submodule status | ForEach-Object { $_.Trim().Split(' ')[0].TrimStart(' +') }
$allCommits = ($commits | Sort-Object) -join ""
$bytes = [System.Text.Encoding]::UTF8.GetBytes($allCommits)
$hasher = [System.Security.Cryptography.SHA256]::Create()
$hashBytes = $hasher.ComputeHash($bytes)
$submoduleHash = ($hashBytes | ForEach-Object { $_.ToString("x2") }) -join ""
echo "hash=$submoduleHash" >> $env:GITHUB_OUTPUT
echo "Submodules hash: $submoduleHash"
echo "Individual commits: $($commits -join ', ')"
git submodule status
shell: powershell
- name: Cache SDK Frameworks
uses: actions/cache@v4
with:
path: sdk_${{matrix.version}}/frameworks
key: ${{ runner.os }}-sdk-${{ matrix.version }}-frameworks-${{ hashFiles('sdk_${{matrix.version}}/frameworks/**') }}
restore-keys: |
${{ runner.os }}-sdk-${{ matrix.version }}-frameworks
- name: Cache Dependency Build
id: cache-dependency
uses: actions/cache@v4
with:
path: |
dependency/install
key: ${{ runner.os }}-dependency-build-${{ steps.submodules-hash.outputs.hash }}
restore-keys: |
${{ runner.os }}-dependency-build
- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v2
- name: Build Dependency
if: steps.cache-dependency.outputs.cache-hit != 'true'
run: ./init.bat Release
shell: cmd
- name: Build
working-directory: ${{env.GITHUB_WORKSPACE}}
run: msbuild /m /p:Configuration=Release ./sdk_${{matrix.version}}/plugins/project/plugins.sln