AutoTrackR2/.github/workflows/build.yml
2025-04-14 13:17:18 +10:00

83 lines
3.5 KiB
YAML

name: Build and Package
on:
push:
branches: [default]
pull_request:
branches: [default]
jobs:
build:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- name: Get build number
id: buildnumber
run: |
$runNumber = $env:GITHUB_RUN_NUMBER
$version = "2.$runNumber"
echo "version=$version" >> $env:GITHUB_OUTPUT
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: "9.0.x"
- name: Restore dependencies
run: dotnet restore AutoTrackR2.sln
- name: Build
run: |
dotnet build AutoTrackR2.sln --configuration Release --no-restore -p:Version=${{ steps.buildnumber.outputs.version }}
- name: Create release directory
run: |
mkdir release
$releaseDir = Get-ChildItem -Recurse -Directory -Filter "Release" | Select-Object -First 1
if ($releaseDir) {
Write-Host "Release directory found at: $($releaseDir.FullName)"
# Copy main application files (excluding .pdb)
Copy-Item "$($releaseDir.FullName)\AutoTrackR2.exe" "release\" -ErrorAction SilentlyContinue
Copy-Item "$($releaseDir.FullName)\AutoTrackR2.dll" "release\" -ErrorAction SilentlyContinue
Copy-Item "$($releaseDir.FullName)\AutoTrackR2.runtimeconfig.json" "release\" -ErrorAction SilentlyContinue
Copy-Item "$($releaseDir.FullName)\AutoTrackR2.deps.json" "release\" -ErrorAction SilentlyContinue
# Copy resources
Copy-Item "$($releaseDir.FullName)\config.ini" "release\" -ErrorAction SilentlyContinue
Copy-Item "$($releaseDir.FullName)\themes.json" "release\" -ErrorAction SilentlyContinue
Copy-Item "$($releaseDir.FullName)\AutoTrackR2.ico" "release\" -ErrorAction SilentlyContinue
# Create directories
mkdir "release\Fonts" -ErrorAction SilentlyContinue
mkdir "release\Assets" -ErrorAction SilentlyContinue
mkdir "release\sounds" -ErrorAction SilentlyContinue
mkdir "release\scripts" -ErrorAction SilentlyContinue
# Copy directories
Copy-Item "$($releaseDir.FullName)\Fonts\*" "release\Fonts\" -Recurse -ErrorAction SilentlyContinue
Copy-Item "$($releaseDir.FullName)\Assets\*" "release\Assets\" -Recurse -ErrorAction SilentlyContinue
Copy-Item "$($releaseDir.FullName)\sounds\*" "release\sounds\" -Recurse -ErrorAction SilentlyContinue
Copy-Item "AutoTrackR2\scripts\*" "release\scripts\" -Recurse -ErrorAction SilentlyContinue
# List contents of release directory for verification
Write-Host "Contents of release directory:"
Get-ChildItem -Path "release" -Recurse | ForEach-Object { Write-Host $_.FullName }
} else {
Write-Host "No Release directory found"
Get-ChildItem -Recurse -Directory | ForEach-Object { Write-Host $_.FullName }
exit 1
}
- name: Create zip file
run: |
Compress-Archive -Path "release\*" -DestinationPath "AutoTrackR2-${{ steps.buildnumber.outputs.version }}.zip" -Force
- name: Upload release artifact
uses: actions/upload-artifact@v4
with:
name: AutoTrackR2-${{ steps.buildnumber.outputs.version }}
path: AutoTrackR2-${{ steps.buildnumber.outputs.version }}.zip
retention-days: 5