Merge pull request #3 from defnotken/master

Build and Release Workflow on Push to Master
This commit is contained in:
Zura
2025-08-27 17:18:20 +02:00
committed by GitHub

View File

@@ -0,0 +1,84 @@
name: Tag and Release Lightless
on:
push:
branches: [ master ]
env:
PLUGIN_NAME: LightlessSync
DOTNET_VERSION: 9.x
jobs:
tag-and-release:
runs-on: windows-2022
steps:
- name: Checkout Lightless
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: true
- name: Setup .NET 9 SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: 9.x
- name: Download Dalamud
run: |
Invoke-WebRequest -Uri https://goatcorp.github.io/dalamud-distrib/stg/latest.zip -OutFile latest.zip
Expand-Archive -Force latest.zip "$env:AppData\XIVLauncher\addon\Hooks\dev"
- name: Lets Build Lightless!
run: |
dotnet restore
dotnet build --configuration Release --no-restore
dotnet publish --configuration Release --no-build
- name: Get version
id: package_version
uses: KageKirin/get-csproj-version@v0
with:
file: LightlessSync/LightlessSync.csproj
- name: Display version
run: |
echo "Version: ${{ steps.package_version.outputs.version }}"
- name: Prepare Lightless Client
run: |
$publishPath = "${{ env.PLUGIN_NAME }}/bin/x64/Release/publish" # Clean up this folder if it exists
if (Test-Path $publishPath) {
Remove-Item -Recurse -Force $publishPath
Write-Host "Removed $publishPath"
} else {
Write-Host "$publishPath does not exist, nothing to remove."
}
mkdir output
Compress-Archive -Path ${{ env.PLUGIN_NAME }}/bin/x64/Release/* -DestinationPath output/LightlessClient.zip
- name: Create Git tag if not exists
shell: pwsh
run: |
$tag = "${{ steps.package_version.outputs.version }}"
git fetch --tags
if (-not (git tag -l $tag)) {
Write-Host "Tag $tag does not exist. Creating and pushing..."
git config user.name "GitHub Action"
git config user.email "action@github.com"
git tag $tag
git push origin $tag
} else {
Write-Host "Tag $tag already exists. Skipping tag creation."
}
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.package_version.outputs.version }}
name: ${{ steps.package_version.outputs.version }}
draft: false
prerelease: false
files: output/LightlessClient.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}