Skip to content

Commit 8970a26

Browse files
jaredthirskclaude
andcommitted
Add CI/CD, multi-resolution icon, and update documentation
- Add GitHub Actions workflow for automated builds and releases - Create multi-resolution HudClock.ico from simplified SVG (16x16 to 256x256) - Update copyright year to 2025 - Add HudClock icon to README and GitHub Pages site - Create build scripts for local installer creation - Configure project for single-file publishing - Add build documentation and release instructions 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 8b22e8a commit 8970a26

File tree

14 files changed

+999
-1
lines changed

14 files changed

+999
-1
lines changed

.github/workflows/build.yml

Lines changed: 139 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
name: Build and Package
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
tags:
7+
- 'v*'
8+
pull_request:
9+
branches: [ main ]
10+
workflow_dispatch:
11+
12+
jobs:
13+
build:
14+
runs-on: windows-latest
15+
16+
steps:
17+
- name: Checkout code
18+
uses: actions/checkout@v4
19+
20+
- name: Setup .NET
21+
uses: actions/setup-dotnet@v4
22+
with:
23+
dotnet-version: 8.0.x
24+
25+
- name: Restore dependencies
26+
run: dotnet restore src/wpf/MetricClock.csproj
27+
28+
- name: Build
29+
run: dotnet build src/wpf/MetricClock.csproj --configuration Release --no-restore
30+
31+
# Create different build outputs
32+
- name: Create Build Outputs
33+
run: |
34+
# Create output directories
35+
New-Item -ItemType Directory -Force -Path artifacts
36+
37+
# 1. Framework-dependent single file
38+
Write-Host "Building framework-dependent single-file executable..."
39+
dotnet publish src/wpf/MetricClock.csproj `
40+
--configuration Release `
41+
--runtime win-x64 `
42+
--no-self-contained `
43+
--output artifacts/framework-dependent `
44+
-p:PublishSingleFile=true `
45+
-p:IncludeNativeLibrariesForSelfExtract=true `
46+
-p:EnableCompressionInSingleFile=true
47+
48+
# 2. Self-contained single file
49+
Write-Host "Building self-contained single-file executable..."
50+
dotnet publish src/wpf/MetricClock.csproj `
51+
--configuration Release `
52+
--runtime win-x64 `
53+
--self-contained true `
54+
--output artifacts/self-contained `
55+
-p:PublishSingleFile=true `
56+
-p:PublishTrimmed=false `
57+
-p:IncludeNativeLibrariesForSelfExtract=true `
58+
-p:EnableCompressionInSingleFile=true
59+
60+
# 3. Portable build (multiple files)
61+
Write-Host "Building portable version..."
62+
dotnet publish src/wpf/MetricClock.csproj `
63+
--configuration Release `
64+
--runtime win-x64 `
65+
--no-self-contained `
66+
--output artifacts/portable
67+
68+
# Create zip files
69+
Write-Host "Creating archives..."
70+
Compress-Archive -Path artifacts/framework-dependent/* -DestinationPath artifacts/HudClock-win-x64-framework-dependent.zip
71+
Compress-Archive -Path artifacts/self-contained/* -DestinationPath artifacts/HudClock-win-x64-self-contained.zip
72+
Compress-Archive -Path artifacts/portable/* -DestinationPath artifacts/HudClock-win-x64-portable.zip
73+
74+
# Clean up directories, keep only zips
75+
Remove-Item -Recurse -Force artifacts/framework-dependent
76+
Remove-Item -Recurse -Force artifacts/self-contained
77+
Remove-Item -Recurse -Force artifacts/portable
78+
79+
# Upload artifacts
80+
- name: Upload Build Artifacts
81+
uses: actions/upload-artifact@v4
82+
with:
83+
name: hudclock-builds
84+
path: artifacts/*.zip
85+
86+
release:
87+
needs: build
88+
runs-on: ubuntu-latest
89+
if: startsWith(github.ref, 'refs/tags/v')
90+
91+
steps:
92+
- name: Download artifacts
93+
uses: actions/download-artifact@v4
94+
with:
95+
name: hudclock-builds
96+
path: artifacts
97+
98+
- name: Create Release
99+
id: create_release
100+
uses: actions/create-release@v1
101+
env:
102+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
103+
with:
104+
tag_name: ${{ github.ref }}
105+
release_name: HudClock ${{ github.ref }}
106+
draft: false
107+
prerelease: false
108+
body: |
109+
## Download Options
110+
111+
### 🚀 Recommended: Self-Contained Version
112+
**[HudClock-win-x64-self-contained.zip]** - Single executable file that includes everything needed to run. No installation or .NET runtime required. Just download, extract, and run!
113+
114+
### 📦 Other Options
115+
- **[HudClock-win-x64-framework-dependent.zip]** - Smaller single executable (requires .NET 8 Desktop Runtime)
116+
- **[HudClock-win-x64-portable.zip]** - Traditional portable app with multiple files
117+
118+
## System Requirements
119+
- Windows 10 or later (64-bit)
120+
- .NET 8 Desktop Runtime (only for framework-dependent version)
121+
122+
## Installation
123+
1. Download your preferred version
124+
2. Extract the ZIP file to any location
125+
3. Run `HudClock.exe`
126+
4. (Optional) Create a shortcut for easy access
127+
128+
## What's New
129+
See [commits](https://github.com/lionfire/hudclock/commits/${{ github.ref }}) for details.
130+
131+
- name: Upload Release Assets
132+
run: |
133+
for file in artifacts/*.zip; do
134+
asset_name=$(basename "$file")
135+
echo "Uploading $asset_name..."
136+
gh release upload "${{ github.ref_name }}" "$file" --clobber
137+
done
138+
env:
139+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

README.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
# HudClock
22

3-
A transparent, always-on-top clock overlay for Windows that provides unique time visualization options including 24-hour analog, metric time, and minimalist designs.
3+
<p align="center">
4+
<img src="assets/icon/hud_clock_icon_small.svg" alt="HudClock Icon" width="128" height="128">
5+
</p>
6+
7+
<p align="center">
8+
A transparent, always-on-top clock overlay for Windows that provides unique time visualization options including 24-hour analog, metric time, and minimalist designs.
9+
</p>
410

511
## Overview
612

RELEASING.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
For Automated Releases:
2+
3+
1. Push your code to GitHub
4+
2. Create a tag: git tag v1.0.0 && git push origin v1.0.0
5+
3. GitHub Actions will automatically create a release with all packages
6+
7+
For Local Testing:
8+
9+
# Quick self-contained build
10+
dotnet publish src/wpf/MetricClock.csproj -c Release -r win-x64 --self-contained -p:PublishSingleFile=true
11+
12+
# Or use the installer script
13+
.\build\create-installer.ps1 -Version 1.0.0
14+

assets/icon/hud_clock_icon.svg

Lines changed: 130 additions & 0 deletions
Loading
Lines changed: 60 additions & 0 deletions
Loading

0 commit comments

Comments
 (0)