Skip to content

Add transparent Docker fallback when CVMFS sandbox not found#30

Open
Copilot wants to merge 9 commits into
mainfrom
copilot/support-transparent-ghcr
Open

Add transparent Docker fallback when CVMFS sandbox not found#30
Copilot wants to merge 9 commits into
mainfrom
copilot/support-transparent-ghcr

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Jan 16, 2026

Summary

Updated Docker fallback implementation based on code review feedback.

Completed Tasks

  • Understand current codebase structure and flow
  • Modify run-linux.sh to detect when CVMFS path doesn't exist
  • Add Docker fallback logic to start container when CVMFS path not found
  • Ensure Docker container naming for persistence through cleanup
  • Generate Docker image name from organization/platform/release parameters
  • Execute user payload in Docker container when using fallback
  • Address code review feedback (container naming, user mapping, error handling)
  • Update documentation to explain Docker fallback feature
  • Add explicit error handling for Docker operations
  • Add explicit tests for Docker fallback functionality
  • Update tests to use ghcr.io/eic/eic_cvmfs:nightly
  • Remove workflow_dispatch restriction from reuse test
  • Run tests on all branches
  • Mount /cvmfs in Docker containers
  • Remove redundant CVMFS test
  • Remove diagnostic message step
  • Use handlebar variables for image name
  • All tasks completed

Latest Changes

  • Removed diagnostic message step that instructed users to check logs
  • Updated hard-coded image name to use handlebar variables for dynamic resolution
Original prompt

This section details on the original issue you should resolve

<issue_title>Support transparent running against ghcr.io</issue_title>
<issue_description>Is your feature request related to a problem? Please describe.
When building containers we are not able to publish the container sandbox image to cvmfs (the preferred and most efficient approach to loading containers in CI). In those cases we only have the full container as pushed to ghcr.io. In order to test the repositories that use this action with containers on ghcr.io we want to be able to transparently fall through from cvmfs to ghcr.io.

Describe the solution you'd like
When a release:platform is not found under the respective directory on cvmfs, we should start a docker container that is used to exec the specified commands in. As in the case of cvmfs containers, the docker containers should continue to exist through to the post cleanup.

Describe alternatives you've considered
The alternative of requiring changes in all places that use this action is imposing a large amount of responsibility on the downstream users.</issue_description>

Comments on the Issue (you are @copilot in this section)


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Copilot AI changed the title [WIP] Support transparent running against ghcr.io for containers Add transparent Docker fallback when CVMFS sandbox not found Jan 16, 2026
Copilot AI requested a review from wdconinc January 16, 2026 14:38
@wdconinc
Copy link
Copy Markdown
Contributor

@copilot Add explicit tests for the docker fall through functionality.

Copy link
Copy Markdown
Contributor Author

Copilot AI commented Jan 16, 2026

@copilot Add explicit tests for the docker fall through functionality.

Added comprehensive test workflow in commit 0281436. The workflow includes:

  1. Fallback Detection Test - Verifies Docker fallback is triggered when CVMFS path doesn't exist
  2. Container Reuse Test - Validates that containers persist and are reused across multiple action invocations (manual workflow_dispatch only)
  3. CVMFS Unchanged Test - Ensures existing Apptainer functionality still works correctly

The workflow supports both automatic testing (on PR/push for detection logic) and manual testing (workflow_dispatch with custom Docker images that exist on ghcr.io).

Copilot AI requested a review from wdconinc January 16, 2026 15:10
Comment thread .github/workflows/docker-fallback.yml Outdated
Comment thread .github/workflows/docker-fallback.yml Outdated
Comment thread .github/workflows/docker-fallback.yml Outdated
Comment thread run-linux.sh
Comment thread .github/workflows/docker-fallback.yml Outdated
Comment thread .github/workflows/docker-fallback.yml Outdated
Comment thread .github/workflows/docker-fallback.yml Outdated
@wdconinc wdconinc marked this pull request as ready for review January 16, 2026 16:32
Copilot AI review requested due to automatic review settings January 16, 2026 16:32
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds transparent Docker fallback functionality that automatically uses Docker containers from ghcr.io when the requested container image is not found on CVMFS. This enables testing of containers that haven't been published to CVMFS yet without requiring workflow changes.

Changes:

  • Modified run-linux.sh to detect when CVMFS sandbox path doesn't exist and fall back to Docker
  • Added Docker container management logic with persistent containers and error handling
  • Updated documentation to explain the Docker fallback feature

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
run-linux.sh Implements Docker fallback detection, container creation/reuse logic, and payload execution in Docker containers when CVMFS path is not found
README.md Documents the new Docker fallback feature, its capabilities, and how it works
.github/workflows/docker-fallback.yml Adds comprehensive tests for Docker fallback functionality including detection and container reuse

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread run-linux.sh Outdated
Comment thread .github/workflows/docker-fallback.yml Outdated
Comment thread run-linux.sh
Co-authored-by: wdconinc <4656391+wdconinc@users.noreply.github.com>
Copilot AI and others added 8 commits January 16, 2026 10:40
Co-authored-by: wdconinc <4656391+wdconinc@users.noreply.github.com>
Co-authored-by: wdconinc <4656391+wdconinc@users.noreply.github.com>
Co-authored-by: wdconinc <4656391+wdconinc@users.noreply.github.com>
Co-authored-by: wdconinc <4656391+wdconinc@users.noreply.github.com>
- Use ghcr.io/eic/eic_cvmfs:nightly as test image (exists on ghcr.io but not CVMFS)
- Remove workflow_dispatch restriction from reuse test
- Run tests on all branches (remove copilot/** restriction)
- Mount /cvmfs in Docker containers for consistency with Apptainer
- Remove redundant CVMFS unchanged test (covered by other workflows)

Co-authored-by: wdconinc <4656391+wdconinc@users.noreply.github.com>
…iables

- Remove diagnostic message step that prints check instructions
- Use handlebar variables instead of hard-coded image name in echo statement

Co-authored-by: wdconinc <4656391+wdconinc@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@wdconinc wdconinc enabled auto-merge (squash) January 16, 2026 16:40
@wdconinc wdconinc force-pushed the copilot/support-transparent-ghcr branch from d7d51ce to 323e4b7 Compare January 16, 2026 16:40
@wdconinc wdconinc requested a review from veprbl January 16, 2026 16:46
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.

Support transparent running against ghcr.io

3 participants