Skip to content

ADFA-4085: Decouple plugin-api release from weekly-release workflow#1327

Closed
Daniel-ADFA wants to merge 196 commits into
stagefrom
ADFA-4085
Closed

ADFA-4085: Decouple plugin-api release from weekly-release workflow#1327
Daniel-ADFA wants to merge 196 commits into
stagefrom
ADFA-4085

Conversation

@Daniel-ADFA
Copy link
Copy Markdown
Contributor

No description provided.

@Daniel-ADFA Daniel-ADFA requested review from a team and itsaky-adfa May 21, 2026 23:05
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 21, 2026

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d7ef818b-792e-475a-b86a-b49de610bc55

📥 Commits

Reviewing files that changed from the base of the PR and between ffba855 and e526866.

⛔ Files ignored due to path filters (1)
  • flox/base/.flox/env/manifest.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • .github/workflows/release-plugin-api.yml
  • .github/workflows/weekly-release.yml
  • flox/base/.flox/env/manifest.toml

📝 Walkthrough

Release Notes

Workflow Decoupling

  • New workflow: release-plugin-api.yml - manual, on-demand workflow to build and publish plugin-api and plugin-builder jars with SHA256 checksums

    • Triggered via GitHub Actions UI, independent of weekly release schedule
    • Publishes to a plugin-api-latest GitHub Release targeting GITHUB_SHA
    • Uses flox activate environment for reproducible builds
    • Implements repository-scoped concurrency to prevent overlapping executions
  • Updated workflow: weekly-release.yml - decoupled from plugin-api release process

    • Removed release-plugin-api job entirely
    • Updated release-codeonthego job dependencies: now depends on [prepare, pull-apk] (removed release-plugin-api dependency)
    • Plugin-api and CodeOnTheGo releases now operate on independent schedules

Flox Environment Updates

  • Added gh (GitHub CLI) package to Flox manifest for reproducible release automation

Risk & Best Practice Violations

  • ⚠️ Breaking change (potential): The plugin-api-latest release is deleted and recreated on every run. Any consumers depending on static release URLs, asset URLs, or release metadata timestamps may experience instability. Consider using versioned releases alongside the -latest convenience release.

  • ⚠️ Loss of atomicity: Plugin-api and CodeOnTheGo releases are now decoupled and can be versioned independently. This increases operational complexity and potential for inconsistent versioned artifacts if workflows are not carefully orchestrated.

  • ⚠️ Flox dependency addition: Several workflow steps now require flox activate, adding a new external dependency. Ensure flox availability is maintained in runner environments and that flox activate failures are handled gracefully.

  • ⚠️ Missing error handling: The Replace plugin-api-latest release step deletes the release without validation that the build succeeded. If artifact staging fails silently, a stale release could be deleted without replacement.

  • ✓ Good: Uses GITHUB_SHA as release target for reproducible builds and auditability.

Walkthrough

The PR establishes a dedicated GitHub Actions workflow for publishing plugin artifacts decoupled from the main weekly release process. It provisions the GitHub CLI in the flox environment, creates a new release-plugin-api workflow for manual artifact builds and releases, and refactors the existing weekly release workflow by removing its inline plugin-api job and adding flox environment activation to steps that require external tools.

Changes

Release Workflow Updates

Layer / File(s) Summary
Flox environment setup for release workflows
flox/base/.flox/env/manifest.toml
The [install] section adds gh.pkg-path = "gh" to provision the GitHub CLI tool for both release workflows.
Standalone plugin-api release workflow
.github/workflows/release-plugin-api.yml
New workflow triggered by workflow_dispatch that builds the plugin-api and plugin-builder Gradle artifacts, stages them with checksums, and publishes or updates the plugin-api-latest GitHub Release. Uses repository concurrency to prevent overlapping runs.
Weekly release workflow refactoring
.github/workflows/weekly-release.yml
Removes the integrated release-plugin-api job, updates the release-codeonthego job to depend only on prepare and pull-apk, and adds flox activate shell wrappers to three environment-dependent steps: CalVer tag lookup, GitHub Release creation, and version variable configuration.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • appdevforall/CodeOnTheGo#1290: The changes to .github/workflows/weekly-release.yml remove the release-plugin-api job integration that was previously introduced in that PR, and refactor the workflow to use flox environment activation.

Suggested reviewers

  • hal-eisen-adfa

Poem

🐰 A plugin released, now standing tall and free,
From weekly workflows tangled, at last we decree,
With gh in the Flox box and steps wrapped in care,
Release pipelines flow through clean, fluxing air! ✨

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ADFA-4085

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.

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