Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
091df40
Initial plan
Copilot Sep 4, 2025
ef562d6
Create reusable GitHub Actions workflows and update beta, alpha, and …
Copilot Sep 4, 2025
3ef87b5
Add documentation for consolidated GitHub Actions workflow structure
Copilot Sep 4, 2025
0dd9a0b
Further consolidate alpha and beta workflows by creating reusable com…
Copilot Sep 4, 2025
d201caf
Combine alpha and beta streams into consolidated prerelease workflows
Copilot Sep 4, 2025
fe60b6d
Further consolidate GitHub Actions workflows by extracting common pat…
Copilot Sep 4, 2025
67df554
Update reusable-build-package.yml to use optimized beta/alpha build p…
Copilot Sep 4, 2025
eb60daa
Consolidate stable workflow stages (1-5) into 2 unified workflows
Copilot Sep 4, 2025
2118e6a
refactor: use reusable-publish-npm workflow in stable release
Copilot Sep 4, 2025
a4b8c94
Consolidate cron schedule to single entry that processes both alpha a…
Copilot Sep 4, 2025
63abcad
Merge branch 'latest' into copilot/fix-190
NorthernMan54 Sep 4, 2025
54728ad
Enable homebridge-bot for stable releases and reduce workflow count b…
Copilot Sep 4, 2025
07a25cc
Resolve merge conflicts by removing obsolete workflows and updating u…
Copilot Sep 4, 2025
51c16c6
Update homebridge-stable-bot.json
NorthernMan54 Sep 4, 2025
7bcd104
Merge single-use reusable workflows and remove dependabot configuration
Copilot Sep 4, 2025
48cfb46
Implement unified release pipeline with consistent prerelease validat…
Copilot Sep 4, 2025
fcacec6
Merge branch 'latest' into copilot/fix-190
NorthernMan54 Sep 5, 2025
de1db31
Update release-stage-1_update_dependencies.yml
NorthernMan54 Sep 5, 2025
de82f27
Consolidate reusable-publish workflows into main release pipeline
Copilot Sep 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 0 additions & 37 deletions .github/dependabot.yml

This file was deleted.

43 changes: 43 additions & 0 deletions .github/homebridge-stable-bot.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{
"auto_merge": true,
"git_user": {
"name": "Homebridge Stable Bot",
"email": "actions@github.com"
},
"directories": [
{
"directory": "stable/32bit",
"packages": [
{
"name": "homebridge-config-ui-x",
"tag": "latest"
},
{
"name": "homebridge",
"tag": "latest"
},
{
"name": "node",
"tag": "^22.x.x"
}
]
},
{
"directory": "stable/64bit",
"packages": [
{
"name": "homebridge-config-ui-x",
"tag": "latest"
},
{
"name": "homebridge",
"tag": "latest"
},
{
"name": "node",
"tag": "^24.x.x"
}
]
}
]
}
69 changes: 69 additions & 0 deletions .github/workflows/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
# Consolidated GitHub Actions Workflows

This directory contains the GitHub Actions workflows for the Homebridge APT package repository. As of the consolidation effort (Issue #190), the workflows have been reorganized to reduce duplication and improve maintainability.

## Workflow Directory Structure

This directory contains GitHub Actions workflows organized by functionality:

### Core Release Workflows (2 files)
- `release-stage-1_update_dependencies.yml` - Bot-managed dependency updates for all release types (stable, beta, alpha)
- `release-stage-2_build_and_release.yml` - Unified build, validation and publishing pipeline for all releases

### Reusable Workflows (1 file)
- `reusable-validate-homebridge.yml` - Package installation validation (used 2+ times)

### Utility Workflows (7 files)
- `beta-backup_and_clean.yml` - Beta repository cleanup
- `pr-labeler.yml` - PR labeling automation
- `purge.yml` - CloudFlare cache purging
- `release_trigger_logger.yml` - Release event logging
- `stage-3_5_purge_cloudflare_cache.yml` - Post-release cache purging
- `stale.yml` - Stale issue management
- `README.md` - This documentation

## Release Pipeline Architecture

### Unified Process (All Release Types)
All release streams (stable, beta, alpha) follow the same 8-step pipeline:

1. **Bot Updates Dependencies** - `homebridge-beta-bot` updates package.json files daily
2. **Build Packages** - Cross-platform package builds for all architectures
3. **Create GitHub Prerelease** - Upload artifacts and create prerelease
4. **Validate Prerelease** - Download and test .deb packages from GitHub
5. **Promote to Release** - Convert prerelease to full release after validation
6. **Publish to APT** - Upload packages to repository
7. **Validate APT Installation** - Test installation from repository
8. **Publish to NPM** - Publish package with appropriate tags

### Configuration Files
- `.github/homebridge-stable-bot.json` - Bot configuration for stable releases
- `.github/homebridge-beta-bot.json` - Bot configuration for beta/alpha releases

### Workflow Triggers
- **Scheduled**: Daily at 8 AM UTC for dependency updates
- **Push**: Triggered by bot commits to package.json files
- **Manual**: workflow_dispatch for testing and manual releases

## Development and Maintenance

### Modifying Release Logic
Since all release types use unified workflows, changes only need to be made in 2 places:
1. **Dependency Updates**: Edit `release-stage-1_update_dependencies.yml`
2. **Build/Release Pipeline**: Edit `release-stage-2_build_and_release.yml`

### Adding Validation Steps
Edit the validation logic in `reusable-validate-homebridge.yml` which is used by both prerelease and APT validation steps.

### Managing Bot Configuration
- **Stable releases**: Update `.github/homebridge-stable-bot.json`
- **Beta/Alpha releases**: Update `.github/homebridge-beta-bot.json`

## Benefits of Consolidation

1. **Maximum Workflow Reduction**: 25 → 10 workflows (60% reduction)
2. **Unified Release Management**: All release streams use identical infrastructure
3. **Enhanced Quality Assurance**: Double validation (GitHub + APT) for every release
4. **Simplified Operations**: Single workflow to maintain instead of separate logic
5. **Automated Process**: Eliminates manual promotion steps with automatic validation gates
6. **Future-Proof Architecture**: Easy to add validation steps or extend to new release streams
77 changes: 0 additions & 77 deletions .github/workflows/Stage-4_post_release_validation.yml

This file was deleted.

40 changes: 0 additions & 40 deletions .github/workflows/alpha-stage-1_update_alpha_dependencies.yml

This file was deleted.

Loading
Loading