Skip to content

Publish#39

Merged
newbe36524 merged 8 commits intomainfrom
publish
Mar 27, 2026
Merged

Publish#39
newbe36524 merged 8 commits intomainfrom
publish

Conversation

@newbe36524
Copy link
Copy Markdown
Contributor

@newbe36524 newbe36524 commented Mar 27, 2026

Summary by CodeRabbit

Release Notes

  • New Features

    • Development pre-release builds are now automatically published to the distribution channel whenever code is pushed to the publish branch or manually triggered.
  • Improvements

    • Download URLs now use standardized version naming conventions with consistent prefixes.
    • Artifact listings are cleaner, with GitHub-generated source archives automatically filtered out.
  • Chores

    • Enhanced the Azure storage publishing pipeline for improved deployment efficiency.

newbe36524 and others added 8 commits March 27, 2026 11:58
Add publish-dev workflow for automated dev releases and extend sync-azure-storage with version prefix parameter:

Changes:
- add publish-dev.yml workflow for building and publishing dev artifacts
- add release_version input parameter to sync-azure-storage.yml
- add release_version workflow_dispatch input to sync-azure-storage
- pass RELEASE_VERSION to Azure build environment

Co-Authored-By: Hagicode <noreply@hagicode.com>
Add ReleaseVersion parameter to support custom version prefix for Azure publishing:

Changes:
- add ReleaseVersion parameter to Build.cs
- use ReleaseVersion in Build.AzureStorage.cs for Azure version prefix
- default to versionTag when ReleaseVersion is not specified
- add logging for effective Azure publish version

Co-Authored-By: Hagicode <noreply@hagicode.com>
Fix missing checkout step and add repository context for release operations:

Changes:

- add Checkout code step before Compute dev release metadata

- add GH_REPO environment variable for gh CLI repository context

Co-Authored-By: Hagicode <noreply@hagicode.com>
Add 'v' prefix to release_version parameter to match version normalization.

Changes:
- add v prefix to release_version in publish-dev workflow

Co-Authored-By: Hagicode <noreply@hagicode.com>
… base URL

Add configuration constants for GitHub release repository and public CDN base URL.

Changes:
- add GitHubReleaseRepositoryName and DesktopPublicBaseUrl constants to BuildConfig
- add PublicBaseUrl property to AzureBlobPublishOptions
- add AzurePublicBaseUrl parameter to Build

Co-Authored-By: Hagicode <noreply@hagicode.com>
Add utilities for normalizing version prefixes and filtering GitHub-generated source archives.

Changes:
- add NormalizePublishedVersionPrefix method to ensure v prefix
- add ResolvePublicBaseUrl utility method for public URL resolution
- add IsGitHubGeneratedSourceArchive for detecting GitHub source archives
- filter out GitHub-generated .zip and .tar.gz source archives from downloads and index

Co-Authored-By: Hagicode <noreply@hagicode.com>
…ter source archives

Update Azure blob adapter and release orchestrator to use resolved public base URL.

Changes:
- update AzureBlobAdapter.BuildIndexResult to use ResolvePublicBaseUrl
- filter GitHub-generated source archives in BuildIndexResult
- update AzureReleasePublishOrchestrator to use ResolvePublicBaseUrl

Co-Authored-By: Hagicode <noreply@hagicode.com>
Update test expectations to match new version normalization with v prefix and public CDN URL.

Changes:
- update AzureBlobAdapterTests to use v-prefixed versions
- update AzureBlobAdapterTests to use desktop.dl.hagicode.com public URL
- add test data for GitHub-generated source archives filtering
- update ArtifactHybridMetadataBuilderTests for v-prefixed versions and public URL

Co-Authored-By: Hagicode <noreply@hagicode.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 27, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 822b00a7-b186-4ac4-8204-13a6b842dfe9

📥 Commits

Reviewing files that changed from the base of the PR and between 8e04f14 and fb36103.

📒 Files selected for processing (11)
  • .github/workflows/publish-dev.yml
  • .github/workflows/sync-azure-storage.yml
  • nukeBuild.Tests/ArtifactHybridMetadataBuilderTests.cs
  • nukeBuild.Tests/AzureBlobAdapterTests.cs
  • nukeBuild/Adapters/AzureBlobAdapter.cs
  • nukeBuild/Adapters/AzureReleasePublishOrchestrator.cs
  • nukeBuild/AzureStorageConfiguration.cs
  • nukeBuild/Build.AzureStorage.cs
  • nukeBuild/Build.cs
  • nukeBuild/BuildConfig.cs
  • nukeBuild/Utils/AzureBlobPathUtilities.cs

📝 Walkthrough

Walkthrough

A new "dev" prerelease publishing pipeline is introduced via GitHub Actions, automating builds across Windows, Linux, and macOS platforms, with supporting infrastructure to compute version prefixes, filter GitHub-generated source archives, and synchronize artifacts to Azure Storage with configurable public download URLs.

Changes

Cohort / File(s) Summary
Dev Release Publishing Workflow
.github/workflows/publish-dev.yml
Introduces a complete GitHub Actions workflow orchestrating platform-specific builds (Windows, Linux, macOS) on pushes to publish branch or manual dispatch. Computes dev.<run_number> version suffix, creates GitHub prerelease, stages platform artifacts, and triggers Azure sync on success.
Azure Sync Workflow Enhancement
.github/workflows/sync-azure-storage.yml
Adds optional release_version input across workflow_call and workflow_dispatch triggers, passing it to Nuke sync step via RELEASE_VERSION environment variable.
Build Configuration & Parameters
nukeBuild/Build.cs, nukeBuild/BuildConfig.cs
Introduces AzurePublicBaseUrl and ReleaseVersion build parameters; adds GitHubReleaseRepositoryName ("hagicode-desktop") and DesktopPublicBaseUrl ("https://desktop.dl.hagicode.com") constants.
Azure Storage Configuration
nukeBuild/AzureStorageConfiguration.cs
Adds PublicBaseUrl property to AzureBlobPublishOptions for specifying custom public download URL base, defaulting to empty string for SAS URL fallback.
Azure Publishing Logic
nukeBuild/Build.AzureStorage.cs, nukeBuild/Adapters/AzureReleasePublishOrchestrator.cs, nukeBuild/Adapters/AzureBlobAdapter.cs
Adds version-prefix normalization (ensures v prefix), filters downloaded GitHub-generated source archives, resolves public base URL (custom or SAS-derived), and passes resolved URL to metadata builders. Updates BuildIndexResult signature to accept public base URL parameter.
Blob Path Utilities
nukeBuild/Utils/AzureBlobPathUtilities.cs
Updates method signatures for non-nullable string parameters; adds ResolvePublicBaseUrl(sasUrl, publicBaseUrl) to select between custom or fallback public URL, and IsGitHubGeneratedSourceArchive(...) to filter source archives by repository and release tag pattern.
Test Updates
nukeBuild.Tests/ArtifactHybridMetadataBuilderTests.cs, nukeBuild.Tests/AzureBlobAdapterTests.cs
Updates expected URLs and paths from Azure blob host to desktop.dl.hagicode.com, adds v prefix to version paths (e.g., v1.0.0/...), and adds new asset entries reflecting new URL scheme.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

  • using nuke to run github action #20: Modifies the same core Azure sync and publish orchestrator code (AzureBlobAdapter, Build.AzureStorage, AzureBlobPathUtilities) for direct code-level continuity.
  • channel support #21: Updates AzureBlobAdapter with channel-based index structure and metadata handling, overlapping with adapter modifications in this PR.
  • sync-azure if release success #7: Modifies sync-azure-storage.yml workflow to handle input-driven release synchronization, directly related to the workflow enhancement here.

Poem

🐰 A dev release hops from branch to cloud,
With versions tagged and proud,
Azure awaits the artifacts so fine—
v1.2.3 prerelease to align!
Platform builds dance, then sync with glee,
Your downloads flow wild and free! 📦✨

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch publish

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@newbe36524 newbe36524 merged commit 1f48407 into main Mar 27, 2026
9 of 10 checks passed
@newbe36524 newbe36524 deleted the publish branch March 27, 2026 08:37
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.

1 participant