Skip to content

update bigbio openms - #27

Merged
daichengxin merged 1 commit into
bigbio:mainfrom
daichengxin:main
Jun 14, 2026
Merged

update bigbio openms#27
daichengxin merged 1 commit into
bigbio:mainfrom
daichengxin:main

Conversation

@daichengxin

@daichengxin daichengxin commented Jun 14, 2026

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • Chores
    • Updated container image synchronization to use pinned digests instead of latest tags, improving build reproducibility and supply chain security.

@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

@coderabbitai

coderabbitai Bot commented Jun 14, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

The sync-openms job in the GitHub Actions workflow is updated to pin the OpenMS third-party Docker image and Singularity SIF to specific SHA256 digests. New environment variables OPENMS_SHA256 and OPENMS_SIF_SHA256 are added, and pull commands switch from :latest tag references to digest-based references.

Changes

OpenMS digest pinning in sync-openms job

Layer / File(s) Summary
Digest env vars, Docker pull/tag/push, and Singularity pull by digest
.github/workflows/quantms-containers.yml
OPENMS_SHA256 and OPENMS_SIF_SHA256 env vars are added alongside an updated OPENMS_VERSION; the Docker sync step pulls openms-tools-thirdparty by OPENMS_SHA256 digest, tags/pushes under OPENMS_VERSION, and retags to :latest from the digest; the Singularity sync step pulls openms-tools-thirdparty-sif by OPENMS_SIF_SHA256 digest instead of :latest.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

  • bigbio/quantms-containers#9: Modifies the same sync-openms job in the same workflow file, adjusting authentication and Singularity artifact handling.
  • bigbio/quantms-containers#25: Modifies the same sync-openms job by adding a needs dependency, directly touching the same workflow section being changed here.

Poem

🐇 No more chasing :latest through the field,
I've pinned my carrots under SHA's seal!
A digest is a promise, crisp and true,
No surprise swaps when the pipeline runs through.
Reproducible hops — that's how I roll! 🥕

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'update bigbio openms' is vague and generic, lacking specificity about the actual changes made to the workflow (pinning OpenMS images to SHA256 digests). Use a more descriptive title that reflects the main change, such as 'Pin OpenMS third-party image and Singularity SIF to SHA256 digests' or 'Update OpenMS image pinning in quantms-containers workflow'.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (2)
.github/workflows/quantms-containers.yml (2)

444-452: ⚡ Quick win

Consider adding retry logic to the Singularity pull for consistency.

The Docker sync step (lines 423-431) uses nick-fields/retry@v2 to handle transient registry failures, but the Singularity pull lacks similar resilience. Adding retry logic would improve reliability and maintain consistency across both sync operations.

♻️ Proposed refactor to add retry wrapper
-      - name: Sync OpenMS Singularity
+      - name: Sync OpenMS Singularity  
+        uses: nick-fields/retry@v2
+        with:
+          timeout_minutes: 10
+          max_attempts: 3
+          retry_wait_seconds: 30
+          command: |
-        run: |
             echo ${{ secrets.GITHUB_TOKEN }} | singularity remote login -u ${{ github.actor }} --password-stdin oras://ghcr.io
 
             singularity pull --force openms.sif oras://ghcr.io/openms/openms-tools-thirdparty-sif@sha256:${{ env.OPENMS_SIF_SHA256 }}
             singularity push openms.sif oras://ghcr.io/${{ github.repository_owner }}/openms-tools-thirdparty-sif:${{ env.OPENMS_VERSION }}
             if [[ "${{ github.event_name }}" == "release" ]]; then
               singularity push openms.sif oras://ghcr.io/${{ github.repository_owner }}/openms-tools-thirdparty-sif:latest
             fi
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/quantms-containers.yml around lines 444 - 452, The
Singularity pull operation for the OpenMS container in the "Sync OpenMS
Singularity" step lacks retry logic that is already implemented in the Docker
sync step above it using the nick-fields/retry@v2 action. Add a retry wrapper
around the Singularity pull command to handle transient registry failures
consistently with the Docker sync operation. Apply the same retry action pattern
used in the Docker sync step to the singularity pull command that retrieves the
openms-tools-thirdparty-sif image.

408-410: Operational advice: Establish a process for updating pinned digests.

Digest pinning improves reproducibility by locking to specific upstream OpenMS images, but requires an operational process to periodically check for and adopt new upstream releases. Consider:

  • Monitoring the upstream ghcr.io/openms/openms-tools-thirdparty repository for new releases
  • Documenting the digest update process (verification, testing, version bump)
  • Setting a cadence for digest updates (e.g., monthly review of upstream releases)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/quantms-containers.yml around lines 408 - 410, The comment
advises establishing an operational process for keeping the pinned OpenMS digest
values (OPENMS_SHA256 and OPENMS_SIF_SHA256) up-to-date with upstream releases.
To address this, create or update documentation (such as in a README or
CONTRIBUTING file, or as comments in the workflow itself) that outlines the
process for: (1) monitoring the upstream ghcr.io/openms/openms-tools-thirdparty
repository for new releases, (2) verifying and testing new digest values before
committing them to the workflow, and (3) establishing a regular cadence (such as
monthly) for reviewing and updating these pinned values. This ensures the team
has a clear procedure to follow when new OpenMS versions are released.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In @.github/workflows/quantms-containers.yml:
- Around line 444-452: The Singularity pull operation for the OpenMS container
in the "Sync OpenMS Singularity" step lacks retry logic that is already
implemented in the Docker sync step above it using the nick-fields/retry@v2
action. Add a retry wrapper around the Singularity pull command to handle
transient registry failures consistently with the Docker sync operation. Apply
the same retry action pattern used in the Docker sync step to the singularity
pull command that retrieves the openms-tools-thirdparty-sif image.
- Around line 408-410: The comment advises establishing an operational process
for keeping the pinned OpenMS digest values (OPENMS_SHA256 and
OPENMS_SIF_SHA256) up-to-date with upstream releases. To address this, create or
update documentation (such as in a README or CONTRIBUTING file, or as comments
in the workflow itself) that outlines the process for: (1) monitoring the
upstream ghcr.io/openms/openms-tools-thirdparty repository for new releases, (2)
verifying and testing new digest values before committing them to the workflow,
and (3) establishing a regular cadence (such as monthly) for reviewing and
updating these pinned values. This ensures the team has a clear procedure to
follow when new OpenMS versions are released.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8a339716-ff82-434a-b373-9fd505857bd4

📥 Commits

Reviewing files that changed from the base of the PR and between fa467b1 and b0a4fa8.

📒 Files selected for processing (1)
  • .github/workflows/quantms-containers.yml

@daichengxin
daichengxin merged commit 09a36bc into bigbio:main Jun 14, 2026
11 checks passed
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