Files
oc-sentinel/.gitea/workflows/client-build.yml
OfficeCom Codex 3ea0baa147
All checks were successful
OfficeCom Sentinel Client / validate-client (push) Successful in 24s
OfficeCom Sentinel Client / build-client-windows (push) Has been skipped
Build Windows client packages on Linux runner
2026-07-25 03:06:31 +02:00

71 lines
2.0 KiB
YAML

name: OfficeCom Sentinel Client
on:
push:
branches:
- main
tags:
- "v*"
workflow_dispatch:
inputs:
build_windows:
description: "Build the Windows release package"
required: false
default: "false"
jobs:
validate-client:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: "10.0.x"
- name: Restore client
run: dotnet restore ./src/OCSentinelCli/OCSentinelCli.csproj
- name: Build client
run: dotnet build ./src/OCSentinelCli/OCSentinelCli.csproj -c Release --no-restore
build-client-windows:
needs: validate-client
if: startsWith(github.ref, 'refs/tags/v') || (github.event_name == 'workflow_dispatch' && inputs.build_windows == 'true')
# .NET can publish a self-contained Windows x64 client from Linux.
# This keeps releases independent of a Windows Gitea runner.
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: "10.0.x"
- name: Build client package
shell: pwsh
run: |
./build/build-client-package.ps1
- name: Build release manifest for tags
if: startsWith(github.ref, 'refs/tags/v')
shell: pwsh
run: |
$tag = "${{ github.ref_name }}"
$artifactUrl = "https://gitea.officecom.cloud/officecom/oc-sentinel/releases/download/$tag/OCSentinelClient-win-x64.zip"
./build/build-release-manifest.ps1 -ArtifactUrl $artifactUrl
- name: Upload package artifacts
uses: actions/upload-artifact@v4
with:
name: ocsentinel-client-${{ github.sha }}
path: |
artifacts/OCSentinelClient-win-x64.zip
artifacts/OCSentinelClient-win-x64.zip.sha256
artifacts/version.json
if-no-files-found: warn