Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: Ensure cross-platform compatibility for sed command in CI script #5316

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

voronor
Copy link
Contributor

@voronor voronor commented Nov 23, 2024

Problem

In the CI script, the following command can cause issues on macOS:

sed -i '/,0/d' lcov.info

The sed -i flag directly edits a file in place, but its behavior differs across platforms:

  • On Linux, it works as expected.
  • On macOS, the -i option requires an argument for the extension of a backup file (even if it’s empty). Without this, the script fails.

Proposed Fix

To ensure compatibility across both Linux and macOS, we updated the script to detect the operating system and adjust the sed command accordingly.

Changes Made

  1. Added logic to check the operating system using $OSTYPE.
  2. Modified the sed command to use sed -i '' on macOS and sed -i on Linux.

Updated Code

if [ "${CI:-"false"}" == "true" ]; then
  # Foundry coverage
  forge coverage --report lcov --ir-minimum
  # Remove zero hits
  if [[ "$OSTYPE" == "darwin"* ]]; then
    sed -i '' '/,0/d' lcov.info
  else
    sed -i '/,0/d' lcov.info
  fi
fi

Importance of Fix

  1. Cross-platform Compatibility: Ensures the script runs successfully on both Linux and macOS environments.
  2. Robust CI/CD Process: Prevents test pipeline failures caused by platform-specific inconsistencies.
  3. Improved Developer Experience: Developers using macOS will no longer encounter errors when running the script locally or in macOS-based CI workflows.
  • Tests
  • Documentation
  • Changeset entry (run npx changeset add)

Copy link

changeset-bot bot commented Nov 23, 2024

⚠️ No Changeset found

Latest commit: b108834

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

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