y-scope / clp

Compressed Log Processor (CLP) is a free log management tool capable of compressing logs and searching the compressed logs without decompression.
https://yscope.com
Apache License 2.0
871 stars 70 forks source link

ci: Switch GitHub macOS build workflow to use macos-13 (x86) and macos-14 (ARM) runners. #566

Closed kirkrodrigues closed 2 weeks ago

kirkrodrigues commented 2 weeks ago

Description

The GH macos-12 hosted runner image has begun to be deprecated leading to much longer build times for our macOS workflow.

This PR addresses the issue by:

Validation performed

Summary by CodeRabbit

coderabbitai[bot] commented 2 weeks ago

Walkthrough

The pull request introduces updates to the GitHub Actions workflows and documentation related to macOS builds. The workflow for building on macOS has been modified to support a wider range of macOS versions by implementing a matrix strategy and updating installation paths. Additionally, documentation has been revised to generalize macOS setup instructions, removing specific references to macOS 12. Changes include updates to exclusion patterns in workflow triggers and adjustments in the installation script paths across various documentation files.

Changes

File Path Change Summary
.github/workflows/clp-core-build-macos.yaml Updated runs-on directive to use a matrix for "macos-13" and "macos-14"; modified installation script path; adjusted paths monitored for changes.
.github/workflows/clp-core-build.yaml Changed exclusion pattern for macOS installation scripts in workflow triggers to include all macOS versions.
docs/src/dev-guide/components-core/index.md Updated references from "macOS 12" to "macOS" in requirements and setup instructions; modified table of contents.
docs/src/dev-guide/components-core/macos-deps-install.md Changed header from "macOS 12 setup" to "macOS setup"; updated installation script path to reflect broader applicability.

Possibly related PRs


📜 Recent review details **Configuration used: CodeRabbit UI** **Review profile: CHILL**
📥 Commits Files that changed from the base of the PR and between 829013bc94d87baf2a30ff28a5495de469a1d389 and 1a8f64eb3b83c0e4080b27a8046fb3c8079001e1.
📒 Files selected for processing (4) * .github/workflows/clp-core-build-macos.yaml (4 hunks) * .github/workflows/clp-core-build.yaml (2 hunks) * docs/src/dev-guide/components-core/index.md (2 hunks) * docs/src/dev-guide/components-core/macos-deps-install.md (2 hunks)
✅ Files skipped from review due to trivial changes (2) * .github/workflows/clp-core-build.yaml * docs/src/dev-guide/components-core/macos-deps-install.md
🔇 Additional comments (6)
.github/workflows/clp-core-build-macos.yaml (4) `11-11`: **Path pattern update looks good, eh!** The generalized path pattern for macOS installation scripts aligns well with the goal of supporting multiple macOS versions. --- `24-24`: **Same path pattern update as above** --- `59-59`: **Installation script path update looks good, but let's verify the script location.** The generalized path aligns with the version-agnostic approach. However, we should verify that the installation script exists at the new location and maintains compatibility across macOS versions. ```shell #!/bin/bash # Description: Verify installation script existence and contents # Check if the script exists echo "Checking for installation script..." if [ -f "./components/core/tools/scripts/lib_install/macos/install-all.sh" ]; then echo "Script found. Checking for version-specific commands..." # Look for any remaining version-specific references rg -i "macos-1[234]" "./components/core/tools/scripts/lib_install/macos/install-all.sh" else echo "Warning: Installation script not found at expected location" fi ``` --- `41-43`: **Matrix strategy implementation looks solid, but let's verify architecture coverage.** The matrix configuration with macos-13 and macos-14 runners is well-structured. However, we should verify that this covers both x86 and ARM architectures as intended.
✅ Verification successful **Architecture coverage is adequately handled by the matrix configuration** Based on the search results, we can confirm that: - The codebase primarily uses architecture-agnostic code - Build dependencies are properly configured for x86 through the dependency images - No explicit ARM-specific code or configurations that would require special handling - macOS-13 (Intel) and macOS-14 (Apple Silicon) runners will naturally build for their respective architectures The matrix strategy using both macos-13 and macos-14 will effectively cover both x86 and ARM architectures without requiring additional configuration.
🏁 Scripts executed The following scripts were executed for the analysis: Script: ```shell #!/bin/bash # Description: Check if there are any architecture-specific build configurations or tests # that might need adjustment for the new runners # Look for architecture-specific configurations echo "Checking for architecture-specific configurations..." rg -i "arch|x86|arm|aarch64" ./components/core/cmake/ rg -i "arch|x86|arm|aarch64" ./components/core/CMakeLists.txt # Check for potential architecture-dependent code echo "Checking for architecture-dependent code..." rg -i "arch|x86|arm|aarch64" ./components/core/src/ ``` Length of output: 438 --- Script: ```shell #!/bin/bash # Let's try a different approach to check for architecture-specific configurations # Check workflow files for architecture-specific settings echo "Checking workflow files for architecture configurations..." rg -i "arch|x86|arm|aarch64" .github/workflows/ # Check build scripts and installation files echo "Checking build and installation scripts..." fd -e sh -e bash . ./components/core/tools/scripts/ -x rg -i "arch|x86|arm|aarch64" {} # Check CMake files with different path approach echo "Checking CMake files..." fd CMakeLists.txt . -x rg -i "arch|x86|arm|aarch64" {} fd -e cmake . -x rg -i "arch|x86|arm|aarch64" {} ``` Length of output: 15371
docs/src/dev-guide/components-core/index.md (2) `57-57`: **LGTM! The generalized macOS reference improves maintainability.** The removal of the specific macOS version from the documentation link text aligns well with the PR's objective to support multiple macOS versions. --- `101-101`: **LGTM! Consistent update to the toctree entry.** The toctree entry has been appropriately updated to match the generalized macOS documentation structure.

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
🪧 Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit , please review it.` - `Generate unit testing code for this file.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (Invoked using PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. ### Other keywords and placeholders - Add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. - Add `@coderabbitai summary` to generate the high-level summary at a specific location in the PR description. - Add `@coderabbitai` anywhere in the PR title to generate the title automatically. ### CodeRabbit Configuration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information. - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json` ### Documentation and Community - Visit our [Documentation](https://coderabbit.ai/docs) for detailed information on how to use CodeRabbit. - Join our [Discord Community](http://discord.gg/coderabbit) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.
kirkrodrigues commented 2 weeks ago

If these two are unrelated to the changes then the PR should be good to be merged.

Thanks. Yeah, those are from submodules (external libraries).