Skip to content

Publish

Publish #4

Workflow file for this run

name: Publish
on:
workflow_dispatch:
jobs:
build-windows:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
- name: Publish
run: >
dotnet publish src/GeneralUpdate.Tools.csproj
-c Release -r win-x64
-p:PublishSingleFile=true --self-contained
-p:IncludeNativeLibrariesForSelfExtract=true
-p:IncludeAllContentForSelfExtract=true
-o publish/win-x64
- name: Upload
uses: actions/upload-artifact@v4
with:
name: win-x64
path: publish/win-x64/GeneralUpdate.Tools.exe
build-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
- name: Publish
run: >
dotnet publish src/GeneralUpdate.Tools.csproj
-c Release -r linux-x64
-p:PublishSingleFile=true --self-contained
-p:IncludeNativeLibrariesForSelfExtract=true
-p:IncludeAllContentForSelfExtract=true
-o publish/linux-x64
- name: Upload
uses: actions/upload-artifact@v4
with:
name: linux-x64
path: publish/linux-x64/GeneralUpdate.Tools
release:
needs: [build-windows, build-linux]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/download-artifact@v4
- name: Show structure (debug)
run: find . -type f
- name: Get timestamp
id: ts
run: echo "timestamp=$(date -u '+%Y%m%d%H%M%S')" >> $GITHUB_OUTPUT
- name: Build
working-directory: win-x64
run: zip ../GeneralUpdate.Tools_${{ steps.ts.outputs.timestamp }}_win-x64.zip *
- name: Build
working-directory: linux-x64
run: |
chmod +x *
zip ../GeneralUpdate.Tools_${{ steps.ts.outputs.timestamp }}_linux-x64.zip *
- name: Create Release
uses: softprops/action-gh-release@v2
with:
tag_name: v${{ steps.ts.outputs.timestamp }}
name: GeneralUpdate.Tools ${{ steps.ts.outputs.timestamp }}
files: |
GeneralUpdate.Tools_${{ steps.ts.outputs.timestamp }}_win-x64.zip
GeneralUpdate.Tools_${{ steps.ts.outputs.timestamp }}_linux-x64.zip