69 lines
1.9 KiB
YAML
69 lines
1.9 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')
|
|
runs-on: windows:host
|
|
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
|