mirror of
https://github.com/gwdevhub/gMod.git
synced 2026-07-24 20:12:15 +00:00
115 lines
2.9 KiB
YAML
115 lines
2.9 KiB
YAML
name: gMod CD Pipeline
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- master
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
|
|
build:
|
|
|
|
strategy:
|
|
matrix:
|
|
targetplatform: [x86]
|
|
|
|
runs-on: windows-latest
|
|
|
|
env:
|
|
Configuration: Release
|
|
Actions_Allow_Unsecure_Commands: true
|
|
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Config
|
|
run: echo "DXSDK_DIR=DXSDK" >> $GITHUB_ENV
|
|
shell: bash
|
|
|
|
- name: Cache
|
|
id: cache
|
|
uses: actions/cache@v1
|
|
with:
|
|
path: DXSDK
|
|
key: DXSDK
|
|
|
|
- name: Cache create
|
|
if: steps.cache.outputs.cache-hit != 'true'
|
|
run: |
|
|
curl -L https://download.microsoft.com/download/a/e/7/ae743f1f-632b-4809-87a9-aa1bb3458e31/DXSDK_Jun10.exe -o _DX2010_.exe
|
|
7z x _DX2010_.exe DXSDK/Include
|
|
7z x _DX2010_.exe DXSDK/Lib/x86
|
|
shell: bash
|
|
|
|
- name: Echo cache
|
|
run: echo ${{ env.DXSDK_DIR }}
|
|
|
|
- name: List dxsdk files
|
|
run: |
|
|
cd DXSDK
|
|
ls
|
|
cd Include
|
|
ls
|
|
cd ../Lib/x86
|
|
ls
|
|
|
|
- name: Copy DirectX headers to project include directory
|
|
run: Copy-Item -Path "${{ env.DXSDK_DIR }}/Include/*" -Destination header/ -Recurse -Force
|
|
env:
|
|
DXSDK_DIR: ${{ env.DXSDK_DIR }}
|
|
shell: pwsh
|
|
|
|
- name: Ensure Lib directory exists and copy DirectX libraries
|
|
run: |
|
|
$libDir = "Lib/"
|
|
if (-Not (Test-Path -Path $libDir)) {
|
|
New-Item -ItemType Directory -Path $libDir
|
|
}
|
|
Copy-Item -Path "${{ env.DXSDK_DIR }}/Lib/x86/*" -Destination $libDir -Recurse -Force
|
|
env:
|
|
DXSDK_DIR: ${{ env.DXSDK_DIR }}
|
|
shell: pwsh
|
|
|
|
- name: Setup MSBuild.exe
|
|
uses: microsoft/setup-msbuild@v1.3.1
|
|
|
|
- name: Build CMake Files
|
|
run: cmake -S . -B build -A Win32
|
|
env:
|
|
DXSDK_DIR: ${{ env.DXSDK_DIR }}
|
|
|
|
- name: Build binaries
|
|
run: cmake --build build --config Release
|
|
env:
|
|
DXSDK_DIR: ${{ env.DXSDK_DIR }}
|
|
|
|
- name: Retrieve version
|
|
id: set_version
|
|
run: |
|
|
$fileVersionInfo = (Get-Item -Path .\bin\Release\gMod.dll).VersionInfo.FileVersion
|
|
if ([string]::IsNullOrEmpty($fileVersionInfo)) {
|
|
Write-Host "The DLL file version information could not be retrieved."
|
|
exit 1
|
|
} else {
|
|
Write-Host "FileVersionInfo: $fileVersionInfo"
|
|
echo "::set-output name=version::$fileVersionInfo"
|
|
}
|
|
shell: pwsh
|
|
|
|
- name: Publish release
|
|
uses: Xotl/cool-github-releases@v1.1.8
|
|
with:
|
|
mode: update
|
|
tag_name: v${{ steps.set_version.outputs.version }}
|
|
release_name: gMod v${{ steps.set_version.outputs.version }}
|
|
assets: .\bin\Release\gMod.dll
|
|
github_token: ${{ env.GITHUB_TOKEN }}
|
|
replace_assets: true
|
|
body_mrkdwn: ${{ env.Changelog }}
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|