diff --git a/.github/workflows/lightless-tag-and-release.yml b/.github/workflows/lightless-tag-and-release.yml new file mode 100644 index 0000000..ba69c29 --- /dev/null +++ b/.github/workflows/lightless-tag-and-release.yml @@ -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 }} \ No newline at end of file