Skip to content

Add CI workflow to validate builds on PRs#13

Merged
kevingosse merged 1 commit intomasterfrom
add-ci-workflow
Mar 3, 2026
Merged

Add CI workflow to validate builds on PRs#13
kevingosse merged 1 commit intomasterfrom
add-ci-workflow

Conversation

@kevingosse
Copy link
Owner

Builds the solution and installer, then runs integration tests: installs silently, verifies the exe exists, checks the process starts, validates the single-instance mutex, and confirms a second instance exits immediately.

Builds the solution and installer, then runs integration tests:
installs silently, verifies the exe exists, checks the process
starts, validates the single-instance mutex, and confirms a
second instance exits immediately.
Copilot AI review requested due to automatic review settings March 3, 2026 20:21
@kevingosse kevingosse merged commit 2ce282e into master Mar 3, 2026
3 checks passed
@kevingosse kevingosse deleted the add-ci-workflow branch March 3, 2026 20:23
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a GitHub Actions CI workflow to validate ClipPing builds and basic runtime behavior on pull requests, complementing the existing release workflow.

Changes:

  • Build src\ClipPing.sln in Release/x64 on Windows runner.
  • Build the Inno Setup installer, perform a silent install, and validate the installed EXE exists.
  • Run lightweight integration checks: process launches, mutex exists, and single-instance behavior is enforced.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Write-Host "Single instance enforced: second instance exited (code $($proc.ExitCode)), 1 process running"

- name: Stop ClipPing
if: always()
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Stop ClipPing step is running under the default Windows shell (PowerShell), but the command uses cmd.exe-specific syntax (exit /b 0). In PowerShell this will error and can fail the job during cleanup. Set shell: cmd for this step or rewrite the command in PowerShell (e.g., ignore non-zero exit code explicitly).

Suggested change
if: always()
if: always()
shell: cmd

Copilot uses AI. Check for mistakes.
- name: Verify mutex exists
shell: pwsh
run: |
$mutexName = "Local\ClipPing_SingleInstance"
Copy link

Copilot AI Mar 3, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The mutex name being checked here (Local\ClipPing_SingleInstance) doesn’t match the name used by the app (CreateMutex(..., L"ClipPing_SingleInstance")). To avoid false negatives and keep the workflow coupled to the actual implementation, consider using the exact same name string as the app (or document why the Local\ prefix is required).

Suggested change
$mutexName = "Local\ClipPing_SingleInstance"
$mutexName = "ClipPing_SingleInstance"

Copilot uses AI. Check for mistakes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants