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: - self-hosted - 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: - self-hosted - windows 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