Skip to content

Conversation

@mdelapenya
Copy link
Member

@mdelapenya mdelapenya commented Aug 25, 2025

What does this PR do?

Try Shipfox, basically just by changing the job runners for all the pipelines.

Why is it important?

They are sponsoring the development of the OSS libraries, so I think it's a great chance to demonstrate kindness with the project.

FYI, in case you want to use it, you have 3,000 free minutes each month!

@mdelapenya mdelapenya requested a review from a team as a code owner August 25, 2025 10:22
@netlify
Copy link

netlify bot commented Aug 25, 2025

Deploy Preview for testcontainers-go ready!

Name Link
🔨 Latest commit e06a456
🔍 Latest deploy log https://app.netlify.com/projects/testcontainers-go/deploys/69579988681ca50008a3d484
😎 Deploy Preview https://deploy-preview-3268--testcontainers-go.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@mdelapenya mdelapenya marked this pull request as draft August 25, 2025 10:35
@coderabbitai
Copy link

coderabbitai bot commented Oct 6, 2025

Summary by CodeRabbit

  • Chores
    • Updated GitHub Actions workflow runners across multiple CI/CD pipelines to use optimized infrastructure for build and test operations.

✏️ Tip: You can customize this high-level summary in your review settings.

Walkthrough

GitHub Actions workflows across the repository are updated to use a new custom runner image (shipfox-2vcpu-ubuntu-2404) in place of the default ubuntu-latest. The runner specification is changed consistently across 13 workflow files, with platform matrices and conditional checks adjusted accordingly. No functional logic or workflow steps are modified.

Changes

Cohort / File(s) Summary
GitHub Actions Workflow Runner Updates
.github/workflows/ci-lint-go.yml, ci-test-go.yml, ci-windows-trigger.yml, ci.yml, codeql.yml, conventions.yml, docker-projects-latest.yml, release-drafter.yml, scorecards.yml, sonar-bulk-operations.yml, sonar-create-project.yml, sonar-delete-project.yml, usage-metrics.yml
Runner image substituted from ubuntu-latest to shipfox-2vcpu-ubuntu-2404 across all jobs and platform matrices. Conditional checks updated to reference new runner value. No step logic or workflow behavior changes.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 Hop, hop, hooray! A brand new warren,
Where swift shipfox runners show no sorrow—
From ubuntu-latest we now depart,
To speedier workflows and faster art! ✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'chore(ci): try Shipfox' directly and clearly describes the main change: switching CI runners to Shipfox across all pipelines.
Description check ✅ Passed The description explains what the PR does (changing job runners to Shipfox) and why (sponsorship and goodwill), which aligns with the changeset modifications.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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.

@mdelapenya mdelapenya self-assigned this Jan 2, 2026
@mdelapenya mdelapenya added the dependencies Dependencies or external services label Jan 2, 2026
@mdelapenya mdelapenya marked this pull request as ready for review January 2, 2026 10:10
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

required: true
type: string
default: "ubuntu-latest"
default: "shipfox-2vcpu-ubuntu-2404"
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Remove either required: true or the default value.

The platforms input is marked as required: true but also has a default value. If an input is required, its default value will never be used since callers must always provide a value. This creates confusion about the intended behavior.

🔎 Recommended fix

Choose one approach:

Option 1: Remove the default if the value must always be explicitly provided:

       platforms:
         required: true
         type: string
-        default: "shipfox-2vcpu-ubuntu-2404"
         description: "The platforms in which the project will be run"

Option 2: Remove required: true if the default should be used when not specified:

       platforms:
-        required: true
+        required: false
         type: string
         default: "shipfox-2vcpu-ubuntu-2404"
         description: "The platforms in which the project will be run"

Based on the workflow design where callers explicitly provide platform matrices (see ci.yml lines 72, 95, 116, 137), Option 1 appears more appropriate.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
default: "shipfox-2vcpu-ubuntu-2404"
platforms:
required: true
type: string
description: "The platforms in which the project will be run"
🧰 Tools
🪛 actionlint (1.7.9)

14-14: input "platforms" of workflow_call event has the default value "shipfox-2vcpu-ubuntu-2404", but it is also required. if an input is marked as required, its default value will never be used

(events)

🤖 Prompt for AI Agents
In .github/workflows/ci-test-go.yml around line 14, the `platforms` input is
marked `required: true` while also providing a default value; remove this
contradiction by deleting the default value so callers must explicitly provide
platforms (Option 1), or alternatively remove `required: true` if you want the
default to be used; based on existing callers, remove the default value to
enforce explicit input.

jobs:
detect-modules:
runs-on: ubuntu-latest
runs-on: shipfox-2vcpu-ubuntu-2404
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

cat -n .github/workflows/ci.yml | head -160

Repository: testcontainers/testcontainers-go

Length of output: 6552


🏁 Script executed:

#!/bin/bash
# Check for Ubuntu version references in codebase
echo "=== Checking for Ubuntu version references ==="
rg "ubuntu-2[0-9]|jammy|noble" --type yaml --type sh --type toml --type md -n

echo -e "\n=== Checking for Docker version constraints ==="
rg "docker.*version|DOCKER_VERSION|DOCKER_BUILDKIT" -n --type yaml --type sh --type toml

echo -e "\n=== Checking for kernel version or system-specific constraints ==="
rg "uname|kernel.*version|lsb_release" -n --type yaml --type sh

Repository: testcontainers/testcontainers-go

Length of output: 444


🏁 Script executed:

# Check if there are any known issues or compatibility notes for Ubuntu 24.04 in docs
echo "=== Checking for compatibility notes or setup documentation ==="
find . -maxdepth 2 -type f \( -name "README*" -o -name "SETUP*" -o -name "*.md" \) | head -10 | xargs grep -l "ubuntu\|docker\|24.04\|noble" 2>/dev/null | head -5

Repository: testcontainers/testcontainers-go

Length of output: 147


🏁 Script executed:

#!/bin/bash
# Check for other CI workflow files
echo "=== Other workflow files ==="
find .github/workflows -type f -name "*.yml" -o -name "*.yaml" | sort

echo -e "\n=== Check for README or infrastructure docs ==="
find . -maxdepth 2 -type f \( -name "README*" -o -name "CONTRIBUTING*" -o -name "*INFRA*" \) | head -10

echo -e "\n=== Look for any documentation on runners or CI ==="
find . -type f -name "*.md" | xargs grep -l "shipfox\|runner\|ubuntu.*24" 2>/dev/null | head -5

Repository: testcontainers/testcontainers-go

Length of output: 953


🏁 Script executed:

# Check ci-test-go.yml to understand how the platform parameter is used
echo "=== Checking ci-test-go.yml for platform usage ==="
cat .github/workflows/ci-test-go.yml | head -100

Repository: testcontainers/testcontainers-go

Length of output: 3633


🏁 Script executed:

# Look for any fallback logic or GitHub runner configuration elsewhere
echo "=== Checking for github.io or other runner configurations ==="
rg "runs-on|ubuntu-latest|macos-latest|windows-latest" .github/workflows/ -A 2 -B 2

Repository: testcontainers/testcontainers-go

Length of output: 6218


Verify Ubuntu 24.04 compatibility for non-modulegen modules and ensure fallback strategy is documented.

The Shipfox runner is already established across the CI infrastructure. However, non-modulegen modules lack fallback runners. Before merging, verify:

  1. Ubuntu 24.04 compatibility: Confirm that testcontainers functionality works correctly with Ubuntu 24.04's Docker version and kernel behavior. The modulegen module already tests on macOS and Windows; consider extending cross-platform validation to other modules if applicable.

  2. Fallback strategy for standard modules: Unlike modulegen (which tests on shipfox-2vcpu-ubuntu-2404, macos-latest, and windows-latest), other modules test only on the Shipfox runner. Document whether this is intentional or whether a fallback to GitHub-hosted runners should be added.

🧰 Tools
🪛 actionlint (1.7.9)

15-15: label "shipfox-2vcpu-ubuntu-2404" is unknown. available labels are "windows-latest", "windows-latest-8-cores", "windows-2025", "windows-2022", "windows-11-arm", "ubuntu-slim", "ubuntu-latest", "ubuntu-latest-4-cores", "ubuntu-latest-8-cores", "ubuntu-latest-16-cores", "ubuntu-24.04", "ubuntu-24.04-arm", "ubuntu-22.04", "ubuntu-22.04-arm", "macos-latest", "macos-latest-xl", "macos-latest-xlarge", "macos-latest-large", "macos-26-xlarge", "macos-26", "macos-15-intel", "macos-15-xlarge", "macos-15-large", "macos-15", "macos-14-xl", "macos-14-xlarge", "macos-14-large", "macos-14", "macos-13-xl", "macos-13-xlarge", "macos-13-large", "macos-13", "self-hosted", "x64", "arm", "arm64", "linux", "macos", "windows". if it is a custom label for self-hosted runner, set list of labels in actionlint.yaml config file

(runner-label)

🤖 Prompt for AI Agents
In .github/workflows/ci.yml around line 15, the workflow pins runs-on to
shipfox-2vcpu-ubuntu-2404 but there is no verification or documented fallback
for non-modulegen modules; confirm testcontainers and all CI-dependent tooling
are compatible with Ubuntu 24.04 (Docker/kernel behavior) and either document
that compatibility check and rationale for using only the Shipfox runner, or add
a fallback matrix entry to run tests on GitHub-hosted runners (e.g.,
ubuntu-latest and/or macos-latest/windows-latest) for standard modules; update
the CI file and repository docs to reflect the chosen approach and the
verification steps performed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Dependencies or external services

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant