CI/CD Pipeline Creation for C# Windows Service

Job ID: 40157427

Budget: ₹2,500 – ₹0 INR

Project Title

Design & Implement CI/CD Pipeline for Signed Windows Service (C#) with Safe Auto-Update & Rollback

Project Overview

I am building a Windows-based local client (agent) written in C#, which runs as a Windows Service with an optional system tray UI.
The client auto-starts at system boot, monitors network changes, resolves the active Wi-Fi IP address, and securely reports it to a backend service.

The application logic already exists or is under development.
What I need is professional infrastructure, build, packaging, and deployment automation.

This project is not about writing business logic.
It is about designing and implementing a robust, production-grade CI/CD pipeline for a Windows endpoint application.

Core Objective (Non-Negotiable)

Create a secure, reliable, automated pipeline that enables:

Local development in Cursor

Source control via GitHub (monorepo)

Automated build, signing, packaging (MSI) via CI

Safe client-side update checks (pull-based)

Fast rollback in case of broken releases

Zero reliance on manual steps in production

If an update fails, remote access must NOT be lost.

Application Context
Local Client Characteristics

Language: C#

Platform: Windows only

Runtime model:

Windows Service (core functionality)

Optional System Tray / GUI for user interaction

Startup: Auto-start on system boot

UI: Not a priority (functionality first)

What the App Does (High Level)

Detects network change events

Resolves active Wi-Fi interface IP

Authenticates the device/user

Reports IP updates to a backend portal

Scope of Work

The freelancer will be responsible for infrastructure & release engineering, including:

Development & Repo Workflow

Define a clean local dev → GitHub → CI workflow

Work within an existing GitHub monorepo

Establish branching and versioning strategy (simple but safe)

CI/CD Pipeline (GitHub Actions)

Automated Windows build pipeline

Deterministic builds (reproducible)

Versioned artifacts

Release tagging strategy

Secure handling of secrets (code signing)

Windows Packaging

Build enterprise-grade MSI installer

Support:

Clean install

Upgrade

Downgrade (rollback)

Ensure Windows Service lifecycle is handled correctly

Code Signing

Implement code signing for binaries and MSI

I do not currently have certificates

Guidance or setup help is welcome

Mock / placeholder signing during development is acceptable

Pipeline must support real certificates later without refactor

Update & Rollback Strategy

Pull-based update model (client checks for updates)

No forced push updates

Staged install with activation on restart

Clear rollback path if:

Update fails

App becomes unstable

Rollback must be client-side controlled

Documentation

Clear documentation covering:

Dev workflow

Release process

How updates are published

How rollback works

Documentation should allow future developers to maintain the system

Out of Scope

Writing business logic

Designing complex UI/UX

Multi-OS support (Windows only for now)

Backend feature development

Scale Expectations

Current usage: 1 user (personal)

Architecture must scale cleanly to ~100 users

Design should not block future growth

Required Skills

You should be comfortable with:

C# / .NET (Windows applications)

Windows Services

MSI installers (WiX or equivalent)

GitHub Actions (Windows runners)

Code signing on Windows

Release engineering / CI/CD

Secure update & rollback strategies

Nice-to-Have Skills

System tray apps (WPF / WinUI / WinForms)

Enterprise Windows deployment experience

Security-aware software distribution

Experience with endpoint/agent-style software

Red Flags (Please Read Carefully)

This project is not suitable if you:

Only know web CI/CD (Linux containers only)

Have never built or signed a Windows MSI

Suggest “just auto-update silently” without rollback

Cannot explain how rollback works

Propose manual deployment steps

Treat this like a hobby project

I am explicitly optimizing for reliability, safety, and long-term maintainability.

Deliverables

By the end of the project, I expect:

Working CI/CD pipeline in GitHub

Signed MSI build process (or fully ready for real certs)

Versioned release workflow

Documented update & rollback mechanism

Clear handover documentation

How Proposals Will Be Evaluated

Strong proposals will:

Explain how rollback is implemented

Show experience with Windows services + MSI

Demonstrate understanding of failure modes

Ask intelligent clarifying questions (not generic ones)