feat: add release-driven conda publish workflow#3
Conversation
Build and upload all conda variants on GitHub release. Derive package version from release tag via HYPRE_VERSION.
Summary of ChangesHello @Luohaothu, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request establishes an automated, release-driven process for building and publishing Highlights
Changelog
Ignored Files
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. 📝 WalkthroughWalkthroughA new GitHub Actions workflow automates publishing conda packages across multiple operating systems and MPI configurations upon release publication. The conda recipe configuration is updated to accept dynamic package versioning through environment variable templating. Changes
Sequence DiagramsequenceDiagram
participant GH as GitHub Release
participant WF as Workflow Runner
participant Build as Build Environment
participant Conda as Conda-Build
participant Anaconda as Anaconda Registry
GH->>WF: Trigger on release published
WF->>WF: Resolve version from release tag
WF->>Build: Setup Miniconda & tooling
Build->>Conda: Build conda packages (matrix: OS × MPI × OpenMP)
Conda->>Conda: Generate artifacts
Build->>WF: Collect built packages
WF->>WF: Validate packages exist
WF->>Anaconda: Upload to opflow-dev channel
Anaconda-->>WF: Confirm upload success
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Code Review
The pull request updates the Conda recipe to support dynamic versioning via the HYPRE_VERSION environment variable, which is a necessary step for the proposed release-driven workflow. However, the GitHub Actions workflow file described in the PR title and description is missing from the changes. This is a significant omission as the workflow contains the core logic for triggering builds and publishing artifacts. I have also suggested a minor refinement to the version string handling in meta.yaml to improve robustness against common git tagging conventions and empty environment variables.
Delete require-label job and run PR CI directly on open/reopen/synchronize events.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 8c535b21ce
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Fix all issues with AI agents
In @.github/workflows/conda-release.yml:
- Around line 70-78: The generated JSON for the conda-build --variants flag uses
strings instead of arrays; update the variant_json construction (the printf that
sets variant_json) so that mpi and openmp values are arrays (e.g.
{"mpi":["..."],"openmp":["..."]}) before passing it to conda build --variants;
keep using the same variable name variant_json and ensure the change preserves
the existing quoting/escaping around the --variants argument.
🧹 Nitpick comments (1)
.github/workflows/conda-release.yml (1)
51-58: Consider pinningauto-update-conda: falsefor reproducible release builds.In a release workflow,
auto-update-conda: truemeans the conda version can change between runs, potentially introducing inconsistencies. Pinning tofalse(and controlling the conda version explicitly) gives more reproducible release artifacts.
Align checkout with release tag, use array variants for conda-build, harden version parsing, and pin conda auto-update.
Satisfy AUTOTEST check-license gate for conda packaging files.
Summary
opflow-devusingANACONDA_API_TOKENTest Plan
Summary by CodeRabbit
New Features
Chores