mirror of
https://github.com/goatcorp/Dalamud.git
synced 2025-12-12 18:27:23 +01:00
93 lines
3.1 KiB
YAML
93 lines
3.1 KiB
YAML
name: Build Dalamud
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
build:
|
|
name: Build on Windows
|
|
runs-on: windows-2019
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
submodules: recursive
|
|
- name: Setup Nuget
|
|
uses: nuget/setup-nuget@v1
|
|
with:
|
|
nuget-version: latest
|
|
- name: Restore Nuget Packages
|
|
run: nuget restore Dalamud.sln
|
|
- name: Define VERSION
|
|
run: |
|
|
$env:COMMIT = $env:GITHUB_SHA.Substring(0, 7)
|
|
$env:REPO_NAME = $env:GITHUB_REPOSITORY -replace '.*/'
|
|
$env:BRANCH = $env:GITHUB_REF -replace '.*/'
|
|
|
|
($env:REPO_NAME) >> VERSION
|
|
($env:BRANCH) >> VERSION
|
|
($env:COMMIT) >> VERSION
|
|
- name: Build DotNet4
|
|
run: |
|
|
cd "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\"
|
|
.\MSBuild.exe $Env:GITHUB_WORKSPACE\Dalamud.sln /t:Build /p:Configuration=Release /p:DefineConstants=XL_NOAUTOUPDATE
|
|
- name: Run xUnit Tests
|
|
run: |
|
|
${{github.workspace}}\packages\xunit.runner.console.2.4.1\tools\net472\xunit.console.exe ${{github.workspace}}\Dalamud.Test\bin\Release\Dalamud.Test.dll
|
|
- name: Upload artifact
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
name: dalamud-artifact
|
|
path: bin\
|
|
|
|
deploy_stg:
|
|
name: Deploy dalamud-distrib staging
|
|
if: ${{ github.ref == 'refs/heads/master' && github.event_name == 'push' }}
|
|
needs: build
|
|
runs-on: windows-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
repository: goatcorp/dalamud-distrib
|
|
ssh-key: ${{ secrets.DEPLOY_SSH }}
|
|
- uses: actions/download-artifact@v2
|
|
with:
|
|
name: dalamud-artifact
|
|
path: .\scratch
|
|
|
|
- name: Generate dalamud-distrib version file
|
|
shell: powershell
|
|
run: |
|
|
Compress-Archive .\scratch\* .\canary.zip # Recreate the release zip
|
|
|
|
$dllBytes = [System.IO.File]::ReadAllBytes("$(Get-Location)\scratch\Dalamud.dll")
|
|
$assembly = [System.Reflection.Assembly]::Load($dllBytes)
|
|
$newVersion = $assembly.GetName().Version.ToString()
|
|
Remove-Item -Force -Recurse .\scratch
|
|
|
|
$versionData = Get-Content .\stg\version | ConvertFrom-Json
|
|
$oldVersion = $versionData.AssemblyVersion
|
|
if ($oldVersion -eq $newVersion) {
|
|
Remove-Item .\canary.zip
|
|
} else {
|
|
Move-Item -Force .\canary.zip .\stg\latest.zip
|
|
$versionData.AssemblyVersion = $newVersion
|
|
$versionData | ConvertTo-Json -Compress | Out-File .\stg\version
|
|
|
|
$env:DVER = $newVersion
|
|
}
|
|
|
|
- name: Commit changes
|
|
shell: bash
|
|
env:
|
|
DEPLOY_SSH: ${{ secrets.DEPLOY_SSH }}
|
|
GIT_SSH_COMMAND: "ssh -o StrictHostKeyChecking=no"
|
|
DVER: ${{ env.DVER }}
|
|
run: |
|
|
eval "$(ssh-agent -s)"
|
|
ssh-add - <<< "${DEPLOY_SSH}"
|
|
|
|
git config --global user.name "Actions User"
|
|
git config --global user.email "actions@github.com"
|
|
|
|
git add .
|
|
git commit -m "[CI] Update staging for ${DVER}" || true
|
|
|
|
git push origin main || true
|