Skip to content

CI | Mint Integration with NooBaa #9123

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

Merged
merged 1 commit into from
Jul 6, 2025
Merged

Conversation

romayalon
Copy link
Contributor

@romayalon romayalon commented Jun 25, 2025

Describe the Problem

Mint is a tool used for S3 correctentss and benchmarking tests that runs different S3 sdks, we would like to run it as part of NooBaa CI actions.

Explain the Changes

  1. Created 2 new github actions that run make-mint and make-nc-mint targets.
  2. Created 2 new makefile targets called make-mint and make-nc-mint that build noobaa tester image and run mint on Containerized/Non Containerized setups.
  3. Added Containerized/Non Containerized setups, configurations mint runs.
  4. Added documentation.

Issues: Fixed #xxx / Gap #xxx

  1. https://issues.redhat.com/browse/MCGI-248

Testing Instructions:

  • Doc added/updated
  • Tests added

Summary by CodeRabbit

  • New Features

    • Added automated workflows for running Mint tests in both standard and non-containerized environments.
    • Introduced Makefile targets to simplify running Mint tests locally and in CI.
    • Added scripts and configuration files to streamline Mint test setup and execution.
    • Provided documentation for integrating and running Mint tests within the CI environment.
  • Bug Fixes

    • Updated an error message for S3 bucket errors to improve clarity.
  • Refactor

    • Generalized and renamed system test utility functions for broader test support.
    • Improved flexibility and maintainability in Makefile helper functions.
  • Style

    • Updated logging and naming conventions for better clarity in test scripts and utilities.

Copy link

coderabbitai bot commented Jun 25, 2025

## Walkthrough

This update integrates Mint system tests into the NooBaa CI pipeline by adding new GitHub Actions workflows, Makefile targets, scripts, and documentation. It generalizes system test utilities for broader reuse, introduces constant definitions for Mint testing, and provides automation for both containerized and non-containerized test environments.

## Changes

| File(s)                                                                                   | Change Summary                                                                                                               |
|------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|
| .github/workflows/mint-nc-tests.yaml, .github/workflows/mint-tests.yaml                  | Added new GitHub Actions workflows for Mint and NC Mint tests, triggered via workflow calls, automating test execution.     |
| .github/workflows/run-pr-tests.yaml                                                      | Added jobs to invoke the new Mint and NC Mint test workflows after building the NooBaa image.                               |
| Makefile                                                                                 | Added `test-mint` and `test-nc-mint` targets; introduced helper function for Docker network disconnect; refactored cleanup. |
| docs/CI & Tests/Mint.md                                                                  | New documentation describing Mint test integration, workflows, and local/manual execution instructions.                     |
| src/endpoint/s3/s3_errors.js                                                             | Minor change: removed trailing period from `NoSuchBucket` error message.                                                    |
| src/test/system_tests/external_tests_utils.js                                            | Refactored and generalized test utility functions for account/bucket creation and key retrieval; improved parameterization. |
| src/test/system_tests/mint/configure_mint.js                                             | New script to configure Mint test environment and create test accounts dynamically.                                         |
| src/test/system_tests/mint/mint_constants.js                                             | New module defining constants and credentials for Mint system tests.                                                        |
| src/test/system_tests/mint/run_mint_on_test_container.sh, run_nc_mint_on_test_container.sh | New shell scripts to automate Mint and NC Mint test setup and execution in test containers.                                 |
| src/test/system_tests/warp/configure_warp.js, run_warp.js                                | Updated to use generalized system test utilities and parameterized account/bucket setup.                                    |

## Sequence Diagram(s)

```mermaid
sequenceDiagram
    participant GitHub Actions
    participant NooBaa Core Repo
    participant Artifact Storage
    participant Test Container

    GitHub Actions->>NooBaa Core Repo: Checkout source code
    GitHub Actions->>Artifact Storage: Download noobaa-tester artifact
    GitHub Actions->>Test Container: Load Docker image from artifact
    GitHub Actions->>Test Container: Run Mint/NC Mint test script
    Test Container->>NooBaa Core Repo: Run Makefile target (test-mint/test-nc-mint)
    Test Container->>Test Container: Setup environment, configure accounts, run tests

Possibly related PRs

  • noobaa/noobaa-core#9051: Refactors CI workflows to use pre-built tester Docker images for test execution, aligning with this PR's approach for Mint and NC Mint tests.

Suggested labels

size/L

Suggested reviewers

  • liranmauda
  • nimrod-becker

<!-- walkthrough_end -->
<!-- This is an auto-generated comment: all tool run failures by coderabbit.ai -->

> [!WARNING]
> There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.
> 
> <details>
> <summary>🔧 ESLint</summary>
> 
> > If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.
> 
> npm error Exit handler never called!
> npm error This is an error with npm itself. Please report this error at:
> npm error   <https://github.com/npm/cli/issues>
> npm error A complete log of this run can be found in: /.npm/_logs/2025-07-06T07_21_33_710Z-debug-0.log
> 
> 
> 
> </details>

<!-- end of auto-generated comment: all tool run failures by coderabbit.ai -->
<!-- internal state start -->


<!-- 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 -->

<!-- internal state end -->
<!-- finishing_touch_checkbox_start -->

<details open="true">
<summary>✨ Finishing Touches</summary>

- [ ] <!-- {"checkboxId": "7962f53c-55bc-4827-bfbf-6a18da830691"} --> 📝 Generate Docstrings

</details>

<!-- finishing_touch_checkbox_end -->
<!-- tips_start -->

---

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.

<details>
<summary>❤️ Share</summary>

- [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)

</details>

<details>
<summary>🪧 Tips</summary>

### Chat

There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai?utm_source=oss&utm_medium=github&utm_campaign=noobaa/noobaa-core&utm_content=9123):

- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
  - `I pushed a fix in commit <commit_id>, please review it.`
  - `Explain this complex logic.`
  - `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 explain this code block.`
  -	`@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 explain its main purpose.`
  - `@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.`

### Support

Need help? Create a ticket on our [support page](https://www.coderabbit.ai/contact-us/support) for assistance with any issues or questions.

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 generate docstrings` to [generate docstrings](https://docs.coderabbit.ai/finishing-touches/docstrings) for this PR.
- `@coderabbitai generate sequence diagram` to generate a sequence diagram of the changes in this 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.

### Documentation and Community

- Visit our [Documentation](https://docs.coderabbit.ai) 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.

</details>

<!-- tips_end -->

@romayalon romayalon force-pushed the romy-ci-mint branch 11 times, most recently from f3b0ad3 to b2d01da Compare June 29, 2025 17:07
@romayalon romayalon marked this pull request as ready for review June 30, 2025 09:14
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: 5

🧹 Nitpick comments (5)
src/test/system_tests/mint/mint_constants.js (1)

1-2: Remove redundant 'use strict' directive.

Static analysis correctly identifies that the 'use strict' directive is redundant in ES modules, as they are automatically in strict mode.

Apply this fix:

-/* Copyright (C) 2022 NooBaa */
-'use strict';
+/* Copyright (C) 2022 NooBaa */
.github/workflows/run-pr-tests.yaml (1)

44-50: Fix indentation and approve mint test integration.

The new mint test jobs are properly integrated into the CI workflow, following the established pattern of depending on build-noobaa-image. However, static analysis correctly identifies indentation issues.

Apply this fix for proper YAML indentation:

-  mint-tests:
-    needs: build-noobaa-image
-    uses: ./.github/workflows/mint-tests.yaml
+    mint-tests:
+      needs: build-noobaa-image
+      uses: ./.github/workflows/mint-tests.yaml

-  mint-nc-tests:
-    needs: build-noobaa-image
-    uses: ./.github/workflows/mint-nc-tests.yaml
+    mint-nc-tests:
+      needs: build-noobaa-image
+      uses: ./.github/workflows/mint-nc-tests.yaml

The integration itself is well-designed and consistent with the existing test job patterns.

src/test/system_tests/mint/configure_mint.js (1)

2-2: Remove redundant "use strict" directive.

The "use strict" directive is redundant in JavaScript modules as they are automatically in strict mode.

-"use strict";
docs/CI & Tests/Mint.md (2)

34-35: Fix markdown list style consistency.

The markdown linter flags inconsistent list styles. Use dashes consistently for unordered lists.

-* [Mint Tests](../../.github/workflows/mint-tests.yaml) - Based on NooBaa Tester image, runs Mint on standard NooBaa (db configuration).
-* [Mint NC Tests](../../.github/workflows/mint-nc-tests.yaml) - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).
+- [Mint Tests](../../.github/workflows/mint-tests.yaml) - Based on NooBaa Tester image, runs Mint on standard NooBaa (db configuration).
+- [Mint NC Tests](../../.github/workflows/mint-nc-tests.yaml) - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).
-* `make run-mint` - Based on NooBaa Tester image, runs Mint on standard NooBaa (db configuration).
-* `make run-nc-mint` - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).
+- `make run-mint` - Based on NooBaa Tester image, runs Mint on standard NooBaa (db configuration).
+- `make run-nc-mint` - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).

Also applies to: 42-43


54-56: Add language specification to fenced code block.

The markdown linter flags missing language specification for the fenced code block.

-```
+```bash
 docker run -e SERVER_ENDPOINT=<noobaa-endpoint-address>:<noobaa-endpoint-port> -e ACCESS_KEY=<pre-existing-account-access-key> -e SECRET_KEY=<pre-existing-account-secret-key> -e ENABLE_HTTPS=0  minio/mint <sdk-or-tool-name>

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: .coderabbit.yaml**
**Review profile: CHILL**
**Plan: Pro**


<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between ec3d16c56c44882207c4fc28d4c6eff304a6def2 and a5774ef23ea7d1e4d766bbfd1b7cde0760fd24e1.

</details>

<details>
<summary>📒 Files selected for processing (13)</summary>

* `.github/workflows/mint-nc-tests.yaml` (1 hunks)
* `.github/workflows/mint-tests.yaml` (1 hunks)
* `.github/workflows/run-pr-tests.yaml` (1 hunks)
* `Makefile` (9 hunks)
* `docs/CI & Tests/Mint.md` (1 hunks)
* `src/endpoint/s3/s3_errors.js` (1 hunks)
* `src/test/system_tests/external_tests_utils.js` (4 hunks)
* `src/test/system_tests/mint/configure_mint.js` (1 hunks)
* `src/test/system_tests/mint/mint_constants.js` (1 hunks)
* `src/test/system_tests/mint/run_mint_on_test_container.sh` (1 hunks)
* `src/test/system_tests/mint/run_nc_mint_on_test_container.sh` (1 hunks)
* `src/test/system_tests/warp/configure_warp.js` (2 hunks)
* `src/test/system_tests/warp/run_warp.js` (2 hunks)

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>📓 Path-based instructions (1)</summary>

<details>
<summary>`src/test/**/*.*`: Ensure that the PR includes tests for the changes.
</summary>


> `src/test/**/*.*`: Ensure that the PR includes tests for the changes.
> 

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:
- `src/test/system_tests/warp/run_warp.js`
- `src/test/system_tests/mint/run_mint_on_test_container.sh`
- `src/test/system_tests/mint/configure_mint.js`
- `src/test/system_tests/mint/mint_constants.js`
- `src/test/system_tests/mint/run_nc_mint_on_test_container.sh`
- `src/test/system_tests/warp/configure_warp.js`
- `src/test/system_tests/external_tests_utils.js`

</details>

</details><details>
<summary>🧠 Learnings (5)</summary>

<details>
<summary>📓 Common learnings</summary>

Learnt from: nadavMiz
PR: #9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the make tester command also calls make noobaa due to makefile target dependencies, so running make tester will build both the noobaa and tester images.


</details>
<details>
<summary>.github/workflows/run-pr-tests.yaml (2)</summary>

Learnt from: nadavMiz
PR: #9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the make tester command also calls make noobaa due to makefile target dependencies, so running make tester will build both the noobaa and tester images.


Learnt from: nadavMiz
PR: #9099
File: .github/workflows/run-pr-tests.yaml:52-70
Timestamp: 2025-06-19T10:01:46.933Z
Learning: In the noobaa-core repository, branch names don't contain forward slashes, so Docker tag sanitization is not needed in GitHub Actions workflows. Manual full builds and automated builds should use consistent tag naming to avoid mismatches.


</details>
<details>
<summary>src/test/system_tests/mint/run_mint_on_test_container.sh (1)</summary>

Learnt from: nadavMiz
PR: #9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the make tester command also calls make noobaa due to makefile target dependencies, so running make tester will build both the noobaa and tester images.


</details>
<details>
<summary>src/test/system_tests/mint/run_nc_mint_on_test_container.sh (1)</summary>

Learnt from: nadavMiz
PR: #9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the make tester command also calls make noobaa due to makefile target dependencies, so running make tester will build both the noobaa and tester images.


</details>
<details>
<summary>Makefile (2)</summary>

Learnt from: nadavMiz
PR: #9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the make tester command also calls make noobaa due to makefile target dependencies, so running make tester will build both the noobaa and tester images.


Learnt from: nadavMiz
PR: #9099
File: .github/workflows/run-pr-tests.yaml:52-70
Timestamp: 2025-06-19T10:01:46.933Z
Learning: In the noobaa-core repository, branch names don't contain forward slashes, so Docker tag sanitization is not needed in GitHub Actions workflows. Manual full builds and automated builds should use consistent tag naming to avoid mismatches.


</details>

</details><details>
<summary>🧬 Code Graph Analysis (3)</summary>

<details>
<summary>src/test/system_tests/warp/run_warp.js (1)</summary><blockquote>

<details>
<summary>src/test/system_tests/external_tests_utils.js (1)</summary>

* `require` (6-6)

</details>

</blockquote></details>
<details>
<summary>src/test/system_tests/mint/mint_constants.js (2)</summary><blockquote>

<details>
<summary>src/test/system_tests/external_tests_utils.js (2)</summary>

* `SensitiveString` (5-5)
* `require` (6-6)

</details>
<details>
<summary>src/test/system_tests/mint/configure_mint.js (2)</summary>

* `require` (7-7)
* `require` (8-8)

</details>

</blockquote></details>
<details>
<summary>src/test/system_tests/warp/configure_warp.js (2)</summary><blockquote>

<details>
<summary>src/test/system_tests/external_tests_utils.js (2)</summary>

* `require` (6-6)
* `account_options` (129-129)

</details>
<details>
<summary>src/test/system_tests/warp/warp_constants.js (1)</summary>

* `WARP_TEST` (12-42)

</details>

</blockquote></details>

</details><details>
<summary>🪛 YAMLlint (1.37.1)</summary>

<details>
<summary>.github/workflows/run-pr-tests.yaml</summary>

[warning] 45-45: wrong indentation: expected 8 but found 4

(indentation)

---

[warning] 49-49: wrong indentation: expected 8 but found 4

(indentation)

</details>

</details>
<details>
<summary>🪛 GitHub Actions: Run PR Tests</summary>

<details>
<summary>src/test/system_tests/mint/run_mint_on_test_container.sh</summary>

[error] 1-1: Mint tests failed: AWS access key Id provided does not exist in records, causing aws-sdk-java tests to fail with AmazonS3Exception (InvalidAccessKeyId).

---

[error] 1-1: Mint tests failed: minio-go test 'MakeBucket' function failed with error 'The AWS access key Id you provided does not exist in our records.'

---

[error] 1-1: Mint tests failed: s3cmd test 'test_make_bucket' failed with S3 error 403 (InvalidAccessKeyId): The AWS access key Id you provided does not exist in our records.

</details>

</details>
<details>
<summary>🪛 Biome (1.9.4)</summary>

<details>
<summary>src/test/system_tests/mint/configure_mint.js</summary>

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.


(lint/suspicious/noRedundantUseStrict)

</details>
<details>
<summary>src/test/system_tests/mint/mint_constants.js</summary>

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.


(lint/suspicious/noRedundantUseStrict)

</details>

</details>
<details>
<summary>🪛 markdownlint-cli2 (0.17.2)</summary>

<details>
<summary>docs/CI & Tests/Mint.md</summary>

34-34: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)

---

35-35: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)

---

42-42: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)

---

43-43: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)

---

54-54: Fenced code blocks should have a language specified
null

(MD040, fenced-code-language)

</details>

</details>

</details>

<details>
<summary>🔇 Additional comments (19)</summary><blockquote>

<details>
<summary>src/test/system_tests/mint/mint_constants.js (1)</summary>

`24-27`: **Approve the use of SensitiveString for credentials.**

Excellent security practice wrapping access and secret keys in `SensitiveString` to prevent accidental logging or exposure of sensitive data.

</details>
<details>
<summary>src/endpoint/s3/s3_errors.js (1)</summary>

`335-335`: **Approve error message cleanup for S3 compatibility.**

Removing the trailing period from the NoSuchBucket error message improves compatibility with AWS S3 error responses, which is beneficial for Mint testing that validates S3 correctness.

</details>
<details>
<summary>src/test/system_tests/warp/run_warp.js (2)</summary>

`11-11`: **Approve import refactoring for code reuse.**

Good refactoring to use the generalized `external_tests_utils` module instead of warp-specific utilities, promoting code reuse across different test types.

---

`84-84`: **Approve function call update for consistency.**

The updated function call to `get_account_access_keys` maintains the same interface while using the generalized utility function, ensuring consistency across test modules.

</details>
<details>
<summary>src/test/system_tests/warp/configure_warp.js (2)</summary>

`8-8`: **Approve utility refactoring for deployment flexibility.**

Excellent refactoring to use generalized external test utilities that support both containerized and non-containerized deployments, enabling code reuse and consistent test setup patterns.

---

`22-26`: **Approve deployment-aware configuration selection.**

Well-implemented conditional logic that selects appropriate account and bucket parameters based on the deployment environment. This design enables the same configuration script to work seamlessly across different deployment types while using the generalized system test functions.

</details>
<details>
<summary>.github/workflows/mint-tests.yaml (1)</summary>

`1-33`: **LGTM: Well-structured Mint test workflow.**

The workflow correctly implements the Mint testing pipeline with proper artifact handling and Docker image loading. The use of `-o tester` override is appropriate to skip rebuilding the tester image since it's already loaded from the downloaded artifact.

</details>
<details>
<summary>src/test/system_tests/mint/configure_mint.js (1)</summary>

`10-26`: **LGTM: Proper error handling and configuration logic.**

The main function and mint_test_setup function are well-structured with appropriate error handling and logging. The conditional logic for containerized vs non-containerized deployment is correct.

</details>
<details>
<summary>.github/workflows/mint-nc-tests.yaml (1)</summary>

`2-34`: **LGTM: Consistent NC Mint test workflow.**

The workflow correctly implements the NC (Non-Containerized) Mint testing pipeline, maintaining consistency with the regular Mint tests workflow while using the appropriate `test-nc-mint` target.

</details>
<details>
<summary>src/test/system_tests/mint/run_nc_mint_on_test_container.sh (3)</summary>

`1-24`: **Well-structured script setup with proper error handling.**

The script follows good practices with error handling (`set -e`), verbose logging (`set -x`), and organized environment variable exports. The hardcoded test credentials are acceptable for this test environment context.

---

`27-44`: **Appropriate test environment configuration.**

The directory creation and permission setup is well-documented and necessary for allowing test accounts to create buckets. The open permissions (777) are appropriately justified for the test container environment.

---

`47-56`: **Dependency scripts exist and are correctly configured**

- `./src/deploy/NVA_build/standalone_deploy_nsfs.sh` is present and has executable permissions.
- `./src/test/system_tests/mint/configure_mint.js` is present and will be invoked via `node`, so no executability bit is required.

No further changes needed.

</details>
<details>
<summary>Makefile (4)</summary>

`106-112`: **Well-organized MINT variables section.**

The new MINT variables follow existing naming conventions and clearly contain test-only mock credentials. The organization with descriptive comments enhances maintainability.

---

`371-383`: **Comprehensive mint test target with proper container lifecycle management.**

The `test-mint` target follows established patterns with appropriate network creation, container orchestration, and cleanup. The 90-second sleep provides adequate time for NooBaa initialization before running tests.

---

`386-395`: **Appropriate NC mint test target for namespace client testing.**

The `test-nc-mint` target correctly omits database dependencies for namespace client testing and uses an appropriate 20-second initialization delay.

---

`455-462`: **Excellent refactoring that improves modularity and reusability.**

The addition of the `disconnect_container_from_noobaa_network` helper function eliminates code duplication, and the optional container name parameter in `stop_noobaa` enhances flexibility while maintaining backward compatibility.




Also applies to: 480-484

</details>
<details>
<summary>src/test/system_tests/external_tests_utils.js (3)</summary>

`57-87`: **Excellent refactoring that generalizes test utilities for broader reuse.**

The renaming from warp-specific to generic function names and the introduction of parameter objects significantly improves the flexibility and reusability of these utilities across different system test suites.




Also applies to: 110-120

---

`90-104`: **Consistent refactoring pattern for bucket creation functions.**

The bucket creation functions now accept flexible parameter objects and maintain clear separation between account and bucket options, improving the API design and usability.




Also applies to: 124-135

---

`141-143`: **Clean deployment type detection and properly updated exports.**

The `is_containerized_deployment` function provides a clear way to check deployment type, and the exports section correctly reflects all the refactored function names and new additions.




Also applies to: 146-151

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

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

🧹 Nitpick comments (1)
.github/workflows/mint-tests.yaml (1)

28-34: Over-permissive chmod 777 & trailing whitespace

  1. Setting 777 on a log directory inside the runner is unnecessary and violates the principle of least privilege. 755 (or even 700) is sufficient.
  2. YAML-lint flags trailing spaces on line 34 – easy cleanup.
-          mkdir -p logs/mint-test-logs
-          chmod 777 logs/mint-test-logs
+          mkdir -p logs/mint-test-logs
+          chmod 755 logs/mint-test-logs
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between a5774ef and 3192c49.

📒 Files selected for processing (5)
  • .github/workflows/mint-nc-tests.yaml (1 hunks)
  • .github/workflows/mint-tests.yaml (1 hunks)
  • Makefile (9 hunks)
  • src/test/system_tests/mint/run_mint_on_test_container.sh (1 hunks)
  • src/test/system_tests/mint/run_nc_mint_on_test_container.sh (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (4)
  • src/test/system_tests/mint/run_mint_on_test_container.sh
  • src/test/system_tests/mint/run_nc_mint_on_test_container.sh
  • .github/workflows/mint-nc-tests.yaml
  • Makefile
🧰 Additional context used
🧠 Learnings (1)
📓 Common learnings
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
🪛 YAMLlint (1.37.1)
.github/workflows/mint-tests.yaml

[error] 34-34: trailing spaces

(trailing-spaces)


[warning] 47-47: too many blank lines

(1 > 0) (empty-lines)

⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: run-package-lock-validation
  • GitHub Check: Build Noobaa Image
  • GitHub Check: run-jest-unit-tests

Comment on lines 19 to 27
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: noobaa-tester
path: /tmp

- name: Load image
run: docker load --input /tmp/noobaa-tester.tar

Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Artifact extraction path is wrong – docker load will fail
actions/download-artifact extracts the files into <path>/<artifact-name>/….
With path: /tmp, the tarball ends up at /tmp/noobaa-tester/noobaa-tester.tar, not /tmp/noobaa-tester.tar.
docker load therefore receives a non-existent file and the job will error out.

-      - name: Load image
-        run: docker load --input /tmp/noobaa-tester.tar
+      - name: Load image
+        run: docker load --input /tmp/noobaa-tester/noobaa-tester.tar
📝 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
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: noobaa-tester
path: /tmp
- name: Load image
run: docker load --input /tmp/noobaa-tester.tar
- name: Download artifact
uses: actions/download-artifact@v4
with:
name: noobaa-tester
path: /tmp
- name: Load image
run: docker load --input /tmp/noobaa-tester/noobaa-tester.tar
🤖 Prompt for AI Agents
In .github/workflows/mint-tests.yaml around lines 19 to 27, the artifact
extraction path is incorrect because the downloaded artifact is placed in a
subdirectory named after the artifact. Update the docker load command to use the
correct path /tmp/noobaa-tester/noobaa-tester.tar instead of
/tmp/noobaa-tester.tar, or change the download-artifact path to extract directly
to /tmp without the artifact name subfolder so that docker load can find the
tarball and run successfully.

@romayalon romayalon marked this pull request as draft June 30, 2025 10:41
@romayalon romayalon force-pushed the romy-ci-mint branch 2 times, most recently from dda4b73 to 1c7d728 Compare June 30, 2025 17:44
@romayalon romayalon marked this pull request as ready for review June 30, 2025 18:20
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: 1

♻️ Duplicate comments (3)
src/test/system_tests/mint/mint_constants.js (2)

9-10: Ensure hardcoded filesystem paths are created or made configurable.


31-33: Review hardcoded UID/GID values for portability.

.github/workflows/mint-tests.yaml (1)

25-26: Fix artifact extraction path for docker load.

🧹 Nitpick comments (11)
src/test/system_tests/mint/mint_constants.js (1)

1-2: Remove redundant 'use strict' directive.

JavaScript modules are automatically in strict mode, making this directive unnecessary.

-/* Copyright (C) 2022 NooBaa */
-'use strict';
+/* Copyright (C) 2022 NooBaa */
.github/workflows/run-pr-tests.yaml (1)

44-50: Fix indentation to match existing jobs.

The mint test jobs have incorrect indentation compared to other jobs in the workflow.

-  mint-tests:
-    needs: build-noobaa-image
-    uses: ./.github/workflows/mint-tests.yaml
-
-  mint-nc-tests:
-    needs: build-noobaa-image
-    uses: ./.github/workflows/mint-nc-tests.yaml
+    mint-tests:
+      needs: build-noobaa-image
+      uses: ./.github/workflows/mint-tests.yaml
+
+    mint-nc-tests:
+      needs: build-noobaa-image
+      uses: ./.github/workflows/mint-nc-tests.yaml
src/test/system_tests/mint/configure_mint.js (1)

1-2: Remove redundant 'use strict' directive.

JavaScript modules are automatically in strict mode.

-/* Copyright (C) 2016 NooBaa */
-"use strict";
+/* Copyright (C) 2016 NooBaa */
.github/workflows/mint-tests.yaml (2)

34-34: Remove trailing spaces.

-          chmod 777 logs/mint-test-logs
-    
+          chmod 777 logs/mint-test-logs
+

48-49: Remove extra blank line.

           retention-days: "1"
-
-
docs/CI & Tests/Mint.md (6)

12-14: Polish the introductory sentence for clarity & grammar

Minor language tweaks improve readability and eliminate a “missing determiner” lint warning.

-[Mint](https://github.com/minio/mint) is a testing framework for S3-compatible object storage systems, NooBaa CI runs Mint as correctness/benchmarking and stress tests for the NooBaa system on both containerized and Non Containerized flavors.
-Following are the SDKs/tools used in correctness tests.
+[Mint](https://github.com/minio/mint) is a testing framework for S3-compatible object-storage systems.  
+NooBaa CI runs Mint for correctness, benchmarking, and stress tests on both containerized and **non-containerized** deployments.  
+The following SDKs/tools are covered:

34-36: Align list markers with markdown-lint rules (MD004)

markdownlint-cli2 flags the asterisk style. Switching to dash keeps docs lint-clean and consistent with the rest of the repo.

-* [Mint Tests](../../.github/workflows/mint-tests.yaml) - Based on NooBaa Tester image, runs Mint on standard NooBaa (db configuration).
-* [Mint NC Tests](../../.github/workflows/mint-nc-tests.yaml) - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).
+- [Mint Tests](../../.github/workflows/mint-tests.yaml) - Based on NooBaa Tester image, runs Mint on standard NooBaa (DB configuration).
+- [Mint NC Tests](../../.github/workflows/mint-nc-tests.yaml) - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).

41-44: Use dash list markers here as well for consistency

-* `make test-mint` - Based on NooBaa Tester image, runs Mint on standard NooBaa (db configuration).
-* `make test-nc-mint` - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).
+- `make test-mint`   - Based on NooBaa Tester image, runs Mint on standard NooBaa (DB configuration).
+- `make test-nc-mint` - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).

54-57: Fix duplicate numbering & clarify step names

Two “Tab 2” bullets can confuse readers.

-1. Tab 1 - Install NooBaa
-2. Tab 2 - Create a NooBaa account.
-2. Tab 2 - Run Mint pointing to NooBaa endpoint -
+1. Terminal 1 – Install NooBaa
+2. Terminal 2 – Create a NooBaa account
+3. Terminal 2 – Run Mint pointing to the NooBaa endpoint –

57-60: Add language to fenced code block (MD040)

-```
+```bash
 docker run -e SERVER_ENDPOINT=<noobaa-endpoint-address>:<noobaa-endpoint-http-port> -e ACCESS_KEY=<pre-existing-account-access-key> -e SECRET_KEY=<pre-existing-account-secret-key> -e ENABLE_HTTPS=0 minio/mint <sdk-or-tool-name>

---

`68-71`: **Specify language for second code block & line-wrap for readability**

```diff
-```
-docker run -e SERVER_ENDPOINT=<noobaa-tester-container-id-or-name>:<noobaa-http-endpoint-port> -e ACCESS_KEY=<pre-existing-account-access-key> -e SECRET_KEY=<pre-existing-account-secret-key> -e ENABLE_HTTPS=0 --network noobaa-net minio/mint <sdk-or-tool-name>
-```
+```bash
+docker run \
+  -e SERVER_ENDPOINT=<noobaa-tester-container-id-or-name>:<noobaa-http-endpoint-port> \
+  -e ACCESS_KEY=<pre-existing-account-access-key> \
+  -e SECRET_KEY=<pre-existing-account-secret-key> \
+  -e ENABLE_HTTPS=0 \
+  --network noobaa-net \
+  minio/mint <sdk-or-tool-name>
+```
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 3192c49 and 1c7d728.

📒 Files selected for processing (13)
  • .github/workflows/mint-nc-tests.yaml (1 hunks)
  • .github/workflows/mint-tests.yaml (1 hunks)
  • .github/workflows/run-pr-tests.yaml (1 hunks)
  • Makefile (9 hunks)
  • docs/CI & Tests/Mint.md (1 hunks)
  • src/endpoint/s3/s3_errors.js (1 hunks)
  • src/test/system_tests/external_tests_utils.js (4 hunks)
  • src/test/system_tests/mint/configure_mint.js (1 hunks)
  • src/test/system_tests/mint/mint_constants.js (1 hunks)
  • src/test/system_tests/mint/run_mint_on_test_container.sh (1 hunks)
  • src/test/system_tests/mint/run_nc_mint_on_test_container.sh (1 hunks)
  • src/test/system_tests/warp/configure_warp.js (2 hunks)
  • src/test/system_tests/warp/run_warp.js (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (7)
  • src/endpoint/s3/s3_errors.js
  • src/test/system_tests/warp/configure_warp.js
  • src/test/system_tests/warp/run_warp.js
  • src/test/system_tests/mint/run_nc_mint_on_test_container.sh
  • .github/workflows/mint-nc-tests.yaml
  • src/test/system_tests/external_tests_utils.js
  • Makefile
🧰 Additional context used
📓 Path-based instructions (1)
`src/test/**/*.*`: Ensure that the PR includes tests for the changes.

src/test/**/*.*: Ensure that the PR includes tests for the changes.

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:

  • src/test/system_tests/mint/run_mint_on_test_container.sh
  • src/test/system_tests/mint/configure_mint.js
  • src/test/system_tests/mint/mint_constants.js
🧠 Learnings (4)
📓 Common learnings
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
.github/workflows/mint-tests.yaml (1)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:52-70
Timestamp: 2025-06-19T10:01:46.933Z
Learning: In the noobaa-core repository, branch names don't contain forward slashes, so Docker tag sanitization is not needed in GitHub Actions workflows. Manual full builds and automated builds should use consistent tag naming to avoid mismatches.
.github/workflows/run-pr-tests.yaml (2)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:52-70
Timestamp: 2025-06-19T10:01:46.933Z
Learning: In the noobaa-core repository, branch names don't contain forward slashes, so Docker tag sanitization is not needed in GitHub Actions workflows. Manual full builds and automated builds should use consistent tag naming to avoid mismatches.
docs/CI & Tests/Mint.md (1)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
🧬 Code Graph Analysis (1)
src/test/system_tests/mint/mint_constants.js (2)
src/test/system_tests/external_tests_utils.js (2)
  • SensitiveString (5-5)
  • require (6-6)
src/test/system_tests/mint/configure_mint.js (2)
  • require (7-7)
  • require (8-8)
🪛 YAMLlint (1.37.1)
.github/workflows/mint-tests.yaml

[error] 34-34: trailing spaces

(trailing-spaces)


[warning] 48-48: too many blank lines

(1 > 0) (empty-lines)

.github/workflows/run-pr-tests.yaml

[warning] 45-45: wrong indentation: expected 8 but found 4

(indentation)


[warning] 49-49: wrong indentation: expected 8 but found 4

(indentation)

🪛 LanguageTool
docs/CI & Tests/Mint.md

[uncategorized] ~12-~12: A determiner appears to be missing. Consider inserting it.
Context: ...inerized and Non Containerized flavors. Following are the SDKs/tools used in correctness ...

(AI_EN_LECTOR_MISSING_DETERMINER)

🪛 markdownlint-cli2 (0.17.2)
docs/CI & Tests/Mint.md

34-34: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


35-35: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


42-42: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


43-43: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


57-57: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


68-68: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🪛 Biome (1.9.4)
src/test/system_tests/mint/configure_mint.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/system_tests/mint/mint_constants.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

⏰ Context from checks skipped due to timeout of 90000ms (1)
  • GitHub Check: ceph-s3-tests / Ceph S3 Tests
🔇 Additional comments (3)
src/test/system_tests/mint/mint_constants.js (1)

24-27: LGTM: Proper use of SensitiveString for credentials.

The mock access and secret keys are correctly wrapped in SensitiveString to prevent accidental logging or exposure.

src/test/system_tests/mint/run_mint_on_test_container.sh (1)

1-54: LGTM: Well-structured environment setup script.

The script properly:

  • Sets up comprehensive environment variables for NooBaa services
  • Uses appropriate PostgreSQL connection limits
  • Creates necessary directories with correct permissions
  • Follows clear sectioning with descriptive comments
  • Uses set -e for proper error handling
.github/workflows/mint-tests.yaml (1)

41-47: LGTM: Correct log upload path.

The artifact upload correctly uses noobaa-core/logs/mint-test-logs path, which matches where the logs are created.

Comment on lines +20 to +26
async function mint_test_setup() {
console.info('MINT TEST CONFIGURATION:', JSON.stringify(MINT_TEST));
const is_containerized = is_containerized_deployment();
const account_options = is_containerized ? MINT_TEST.mint_account_params : MINT_TEST.nc_mint_account_params;
await create_system_test_account(account_options);
console.info('MINT TEST SETUP DONE');
}
Copy link

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Consider credential propagation for mint tests.

The script creates accounts using mock credentials from constants, but mint tests may need the actual generated credentials. Based on previous feedback, ensure that real AWS credentials are exported to environment variables after account creation.


🏁 Script executed:

#!/bin/bash
# Check if get_account_access_keys function is available in external_tests_utils.js
ast-grep --pattern 'function get_account_access_keys($_) {
  $$$
}'

# Check if configure_mint.js handles credential export
rg -A 5 -B 5 "AWS_ACCESS_KEY_ID|AWS_SECRET_ACCESS_KEY" src/test/system_tests/mint/configure_mint.js

Length of output: 1053


🏁 Script executed:

#!/bin/bash
# Locate definition and usage of create_system_test_account to check for credential export
rg -n "create_system_test_account" -A5 -B5 src

Length of output: 6247


🏁 Script executed:

#!/bin/bash
# Extract create_system_test_account implementation to inspect for credential export
sed -n '76,140p' src/test/system_tests/external_tests_utils.js

# Search for any AWS credential exports in external_tests_utils.js
rg -n 'process.env\.(AWS_ACCESS_KEY_ID|AWS_SECRET_ACCESS_KEY)' src/test/system_tests/external_tests_utils.js

Length of output: 2549


Export AWS credentials after account creation in mint tests

The mint_test_setup helper currently creates the test account but never propagates its AWS access keys into the environment, so downstream AWS SDK calls will fail. To fix this, import get_account_access_keys and set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY after create_system_test_account.

• In src/test/system_tests/mint/configure_mint.js, update imports and the mint_test_setup function.
• Verify that your account_options object has a property (e.g. name or email) that get_account_access_keys can use to look up the keys.

--- a/src/test/system_tests/mint/configure_mint.js
+++ b/src/test/system_tests/mint/configure_mint.js
@@ -7,6 +7,7 @@
 const { MINT_TEST } = require('./mint_constants');
-const { is_containerized_deployment, create_system_test_account } = require('../external_tests_utils.js');
+const {
+  is_containerized_deployment,
+  create_system_test_account,
+  get_account_access_keys
+} = require('../external_tests_utils.js');

 async function mint_test_setup() {
     console.info('MINT TEST CONFIGURATION:', JSON.stringify(MINT_TEST));
@@ -23,6 +24,12 @@ async function mint_test_setup() {
     const account_options = is_containerized
       ? MINT_TEST.mint_account_params
       : MINT_TEST.nc_mint_account_params;
-    await create_system_test_account(account_options);
+    await create_system_test_account(account_options);
+
+    // Propagate AWS credentials for subsequent SDK calls
+    const { access_key, secret_key } =
+      await get_account_access_keys(account_options.name || account_options.email);
+    process.env.AWS_ACCESS_KEY_ID = access_key;
+    process.env.AWS_SECRET_ACCESS_KEY = secret_key;

     console.info('MINT TEST SETUP DONE');
 }
📝 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
async function mint_test_setup() {
console.info('MINT TEST CONFIGURATION:', JSON.stringify(MINT_TEST));
const is_containerized = is_containerized_deployment();
const account_options = is_containerized ? MINT_TEST.mint_account_params : MINT_TEST.nc_mint_account_params;
await create_system_test_account(account_options);
console.info('MINT TEST SETUP DONE');
}
// src/test/system_tests/mint/configure_mint.js
const { MINT_TEST } = require('./mint_constants');
const {
is_containerized_deployment,
create_system_test_account,
get_account_access_keys
} = require('../external_tests_utils.js');
async function mint_test_setup() {
console.info('MINT TEST CONFIGURATION:', JSON.stringify(MINT_TEST));
const is_containerized = is_containerized_deployment();
const account_options = is_containerized
? MINT_TEST.mint_account_params
: MINT_TEST.nc_mint_account_params;
await create_system_test_account(account_options);
// Propagate AWS credentials for subsequent SDK calls
const { access_key, secret_key } =
await get_account_access_keys(account_options.name || account_options.email);
process.env.AWS_ACCESS_KEY_ID = access_key;
process.env.AWS_SECRET_ACCESS_KEY = secret_key;
console.info('MINT TEST SETUP DONE');
}
🤖 Prompt for AI Agents
In src/test/system_tests/mint/configure_mint.js around lines 20 to 26, the
mint_test_setup function creates the test account but does not export the AWS
credentials to the environment, causing downstream AWS SDK calls to fail. To fix
this, import get_account_access_keys at the top of the file, then after
create_system_test_account(account_options), call get_account_access_keys with a
suitable identifier from account_options (like name or email) to retrieve the
AWS keys. Finally, set process.env.AWS_ACCESS_KEY_ID and
process.env.AWS_SECRET_ACCESS_KEY with the retrieved keys to propagate them into
the environment.

@romayalon romayalon requested a review from nadavMiz July 1, 2025 06:11
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: 0

♻️ Duplicate comments (1)
.github/workflows/mint-tests.yaml (1)

19-26: Artifact is unpacked into a sub-directory – docker load path is still wrong

actions/download-artifact keeps the artifact inside a subfolder named after the artifact (/tmp/noobaa-tester/noobaa-tester.tar).
docker load --input /tmp/noobaa-tester.tar therefore fails with “file not found”.

-      - name: Load image
-        run: docker load --input /tmp/noobaa-tester.tar
+      - name: Load image
+        run: docker load --input /tmp/noobaa-tester/noobaa-tester.tar
🧹 Nitpick comments (5)
.github/workflows/mint-tests.yaml (1)

25-27: Trailing whitespace triggers YAML-lint error

Line 27 ends with a stray space – please trim it to keep the workflow YAML-lint-clean.

-        run: docker load --input /tmp/noobaa-tester/noobaa-tester.tar␣
+        run: docker load --input /tmp/noobaa-tester/noobaa-tester.tar
docs/CI & Tests/Mint.md (4)

12-14: Minor grammar – missing determiner before “containerized”

“…on both the containerized and non-containerized flavors.”


34-36: Bullet style violates project markdown-lint rule

Project lint expects dash-style unordered lists. Replace leading * with - to silence MD004.

-* [Mint Tests](../../.github/workflows/mint-tests.yaml) - Based on NooBaa Tester image, runs Mint on standard NooBaa (db configuration).
-* [Mint NC Tests](../../.github/workflows/mint-nc-tests.yaml) - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).
+- [Mint Tests](../../.github/workflows/mint-tests.yaml) - Based on NooBaa Tester image, runs Mint on standard NooBaa (db configuration).
+- [Mint NC Tests](../../.github/workflows/mint-nc-tests.yaml) - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).

42-44: Same markdown-lint issue for Makefile target list

-* `make test-mint` - Based on NooBaa Tester image, runs Mint on standard NooBaa (db configuration).
-* `make test-nc-mint` - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).
+- `make test-mint` - Based on NooBaa Tester image, runs Mint on standard NooBaa (db configuration).
+- `make test-nc-mint` - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).

57-60: Specify language for fenced code blocks to satisfy MD040

-```
+```bash
 docker run -e SERVER_ENDPOINT=<noobaa-endpoint-address>:<noobaa-endpoint-http-port> -e ACCESS_KEY=<pre-existing-account-access-key> -e SECRET_KEY=<pre-existing-account-secret-key> -e ENABLE_HTTPS=0 minio/mint <sdk-or-tool-name>

Apply the same to the block at lines 68-70.

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: .coderabbit.yaml**
**Review profile: CHILL**
**Plan: Pro**


<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between 1c7d728aee540435fba2a53af2d3eea681622896 and c204edb937b5270f1d8cf476e738b52bbf91e0e2.

</details>

<details>
<summary>📒 Files selected for processing (4)</summary>

* `.github/workflows/mint-nc-tests.yaml` (1 hunks)
* `.github/workflows/mint-tests.yaml` (1 hunks)
* `Makefile` (8 hunks)
* `docs/CI & Tests/Mint.md` (1 hunks)

</details>

<details>
<summary>🚧 Files skipped from review as they are similar to previous changes (2)</summary>

* .github/workflows/mint-nc-tests.yaml
* Makefile

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>🧠 Learnings (3)</summary>

<details>
<summary>📓 Common learnings</summary>

Learnt from: nadavMiz
PR: #9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the make tester command also calls make noobaa due to makefile target dependencies, so running make tester will build both the noobaa and tester images.


</details>
<details>
<summary>docs/CI & Tests/Mint.md (1)</summary>

Learnt from: nadavMiz
PR: #9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the make tester command also calls make noobaa due to makefile target dependencies, so running make tester will build both the noobaa and tester images.


</details>
<details>
<summary>.github/workflows/mint-tests.yaml (1)</summary>

Learnt from: nadavMiz
PR: #9099
File: .github/workflows/run-pr-tests.yaml:52-70
Timestamp: 2025-06-19T10:01:46.933Z
Learning: In the noobaa-core repository, branch names don't contain forward slashes, so Docker tag sanitization is not needed in GitHub Actions workflows. Manual full builds and automated builds should use consistent tag naming to avoid mismatches.


</details>

</details><details>
<summary>🪛 LanguageTool</summary>

<details>
<summary>docs/CI & Tests/Mint.md</summary>

[uncategorized] ~12-~12: A determiner appears to be missing. Consider inserting it.
Context: ...inerized and Non Containerized flavors. Following are the SDKs/tools used in correctness ...

(AI_EN_LECTOR_MISSING_DETERMINER)

</details>

</details>
<details>
<summary>🪛 markdownlint-cli2 (0.17.2)</summary>

<details>
<summary>docs/CI & Tests/Mint.md</summary>

34-34: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)

---

35-35: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)

---

42-42: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)

---

43-43: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)

---

57-57: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

---

68-68: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

</details>

</details>
<details>
<summary>🪛 YAMLlint (1.37.1)</summary>

<details>
<summary>.github/workflows/mint-tests.yaml</summary>

[error] 27-27: trailing spaces

(trailing-spaces)

---

[warning] 34-34: too many blank lines

(2 > 0) (empty-lines)

</details>

</details>

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (3)</summary>

* GitHub Check: run-package-lock-validation
* GitHub Check: Build Noobaa Image
* GitHub Check: run-jest-unit-tests

</details>

<details>
<summary>🔇 Additional comments (1)</summary><blockquote>

<details>
<summary>.github/workflows/mint-tests.yaml (1)</summary>

`30-33`: **`make … -o tester` likely does nothing useful**  

`make -o <file>` marks a *file* as up-to-date, not a target. Passing the phony target name `tester` has no effect and may hide real rebuilds.  
If the intention is to skip the `tester` prerequisite entirely, use the `--no-print-directory` flag or introduce a dedicated Makefile option. Otherwise just drop `-o tester`.

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

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

♻️ Duplicate comments (4)
.github/workflows/mint-tests.yaml (1)

25-26: Fix artifact path for docker load command.

The actions/download-artifact action extracts files to <path>/<artifact-name>/, so the tarball will be at /tmp/noobaa-tester/noobaa-tester.tar, not /tmp/noobaa-tester.tar. This will cause the docker load command to fail.

Apply this diff to fix the path:

-      - name: Load image
-        run: docker load --input /tmp/noobaa-tester.tar
+      - name: Load image
+        run: docker load --input /tmp/noobaa-tester/noobaa-tester.tar
src/test/system_tests/mint/configure_mint.js (1)

20-26: Export AWS credentials after account creation.

The script creates the test account but doesn't export the AWS credentials to environment variables, which will cause downstream AWS SDK calls to fail. The credentials need to be propagated to process.env after account creation.

Apply this diff to fix the credential propagation:

-const { is_containerized_deployment, create_system_test_account } = require('../external_tests_utils.js');
+const { is_containerized_deployment, create_system_test_account, get_account_access_keys } = require('../external_tests_utils.js');

 async function mint_test_setup() {
     console.info('MINT TEST CONFIGURATION:', JSON.stringify(MINT_TEST));
     const is_containerized = is_containerized_deployment();
     const account_options = is_containerized ? MINT_TEST.mint_account_params : MINT_TEST.nc_mint_account_params;
     await create_system_test_account(account_options);
+    
+    // Export AWS credentials for downstream SDK calls
+    const { access_key, secret_key } = await get_account_access_keys(account_options.name);
+    process.env.AWS_ACCESS_KEY_ID = access_key;
+    process.env.AWS_SECRET_ACCESS_KEY = secret_key;
+    
     console.info('MINT TEST SETUP DONE');
 }
src/test/system_tests/mint/mint_constants.js (2)

9-10: Ensure filesystem paths are created or made configurable.

The hardcoded filesystem paths /tmp/nsfs_root1/ and /tmp/nsfs_root2/ may not exist in all test environments and could cause test failures.

Consider making these paths configurable via environment variables with defaults:

-const FS_ROOT_1 = '/tmp/nsfs_root1/';
-const FS_ROOT_2 = '/tmp/nsfs_root2/';
+const FS_ROOT_1 = process.env.NSFS_ROOT1 || '/tmp/nsfs_root1/';
+const FS_ROOT_2 = process.env.NSFS_ROOT2 || '/tmp/nsfs_root2/';

Or ensure the directories are created during test setup by adding a setup hook in your test files.


31-33: Make UID/GID values configurable for better portability.

The hardcoded UID and GID values (1000) may cause conflicts or permission issues in different environments. Consider making them configurable.

Apply this diff to use dynamic values:

-        uid: 1000,
-        gid: 1000,
+        uid: Number(process.env.TEST_UID) || process.getuid(),
+        gid: Number(process.env.TEST_GID) || process.getgid(),

This will use the current process's UID/GID by default while allowing override via environment variables.

🧹 Nitpick comments (13)
.github/workflows/mint-tests.yaml (3)

27-27: Remove trailing spaces.

Line 27 has trailing spaces that should be removed.

-        run: docker load --input /tmp/noobaa-tester.tar
+        run: docker load --input /tmp/noobaa-tester.tar

34-34: Remove trailing spaces.

Line 34 has trailing spaces that should be removed.

-          chmod 777 logs/mint-test-logs
+          chmod 777 logs/mint-test-logs

41-42: Remove extra blank lines.

Remove the extra blank line at the end of the file.

-

+
src/test/system_tests/mint/configure_mint.js (1)

1-2: Remove redundant "use strict" directive.

The "use strict" directive is redundant in ES modules as they are automatically in strict mode.

-/* Copyright (C) 2016 NooBaa */
-"use strict";
+/* Copyright (C) 2016 NooBaa */
.github/workflows/mint-nc-tests.yaml (3)

1-1: Remove extra blank line at start.

Remove the extra blank line at the beginning of the file.

-
-name: Mint NC Tests
+name: Mint NC Tests

35-35: Remove trailing spaces.

Line 35 has trailing spaces that should be removed.

-          chmod 777 logs/mint-nc-test-logs
+          chmod 777 logs/mint-nc-test-logs

41-42: Remove extra blank lines.

Remove the extra blank line at the end of the file.

-

+
src/test/system_tests/mint/mint_constants.js (1)

1-2: Remove redundant "use strict" directive.

The "use strict" directive is redundant in ES modules as they are automatically in strict mode.

-/* Copyright (C) 2022 NooBaa */
-'use strict';
+/* Copyright (C) 2022 NooBaa */
docs/CI & Tests/Mint.md (5)

12-13: Lower-case “non-containerized” for consistency

The term is normally written “non-containerized”. Consider revising.


34-35: Use dash (-) list markers to satisfy markdown-lint MD004

Markdown-lint flags the asterisk style here. Switching to dashes keeps list style uniform with the rest of the repo.

-* [Mint Tests](../../.github/workflows/mint-tests.yaml) - Based on NooBaa Tester image, runs Mint on standard NooBaa (db configuration).
-* [Mint NC Tests](../../.github/workflows/mint-nc-tests.yaml) - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).
+- [Mint Tests](../../.github/workflows/mint-tests.yaml) - Based on NooBaa Tester image, runs Mint on standard NooBaa (db configuration).
+- [Mint NC Tests](../../.github/workflows/mint-nc-tests.yaml) - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).

42-43: List-marker style also triggers MD004 here

Same lint warning as above; swap * for -.

-* `make test-mint` - Based on NooBaa Tester image, runs Mint on standard NooBaa (db configuration).
-* `make test-nc-mint` - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).
+- `make test-mint`   - Based on NooBaa Tester image, runs Mint on standard NooBaa (db configuration).
+- `make test-nc-mint` - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).

54-56: Fix ordered-list numbering

Step “Run Mint” is numbered 2 again instead of 3.

-2. Tab 2 - Run Mint pointing to NooBaa endpoint -  
+3. Tab 3 - Run Mint pointing to NooBaa endpoint -

57-60: Add language identifier to fenced code blocks (MD040)

Explicit language hints improve rendering & syntax highlighting.

-```
+```bash
 docker run -e SERVER_ENDPOINT=<noobaa-endpoint-address>:<noobaa-endpoint-http-port> -e ACCESS_KEY=<pre-existing-account-access-key> -e SECRET_KEY=<pre-existing-account-secret-key> -e ENABLE_HTTPS=0 minio/mint <sdk-or-tool-name>

(and the same for the second block at lines 68-71)




Also applies to: 68-71

</blockquote></details>

</blockquote></details>

<details>
<summary>📜 Review details</summary>

**Configuration used: .coderabbit.yaml**
**Review profile: CHILL**
**Plan: Pro**


<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between c204edb937b5270f1d8cf476e738b52bbf91e0e2 and 1f2a8f636cde521a6f89038483235273389dd136.

</details>

<details>
<summary>📒 Files selected for processing (13)</summary>

* `.github/workflows/mint-nc-tests.yaml` (1 hunks)
* `.github/workflows/mint-tests.yaml` (1 hunks)
* `.github/workflows/run-pr-tests.yaml` (1 hunks)
* `Makefile` (8 hunks)
* `docs/CI & Tests/Mint.md` (1 hunks)
* `src/endpoint/s3/s3_errors.js` (1 hunks)
* `src/test/system_tests/external_tests_utils.js` (4 hunks)
* `src/test/system_tests/mint/configure_mint.js` (1 hunks)
* `src/test/system_tests/mint/mint_constants.js` (1 hunks)
* `src/test/system_tests/mint/run_mint_on_test_container.sh` (1 hunks)
* `src/test/system_tests/mint/run_nc_mint_on_test_container.sh` (1 hunks)
* `src/test/system_tests/warp/configure_warp.js` (2 hunks)
* `src/test/system_tests/warp/run_warp.js` (2 hunks)

</details>

<details>
<summary>🚧 Files skipped from review as they are similar to previous changes (7)</summary>

* src/endpoint/s3/s3_errors.js
* src/test/system_tests/warp/configure_warp.js
* src/test/system_tests/mint/run_mint_on_test_container.sh
* src/test/system_tests/warp/run_warp.js
* src/test/system_tests/mint/run_nc_mint_on_test_container.sh
* Makefile
* src/test/system_tests/external_tests_utils.js

</details>

<details>
<summary>🧰 Additional context used</summary>

<details>
<summary>📓 Path-based instructions (1)</summary>

<details>
<summary>`src/test/**/*.*`: Ensure that the PR includes tests for the changes.
</summary>


> `src/test/**/*.*`: Ensure that the PR includes tests for the changes.
> 

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:
- `src/test/system_tests/mint/configure_mint.js`
- `src/test/system_tests/mint/mint_constants.js`

</details>

</details><details>
<summary>🧠 Learnings (4)</summary>

<details>
<summary>📓 Common learnings</summary>

Learnt from: nadavMiz
PR: #9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the make tester command also calls make noobaa due to makefile target dependencies, so running make tester will build both the noobaa and tester images.


</details>
<details>
<summary>.github/workflows/mint-tests.yaml (1)</summary>

Learnt from: nadavMiz
PR: #9099
File: .github/workflows/run-pr-tests.yaml:52-70
Timestamp: 2025-06-19T10:01:46.933Z
Learning: In the noobaa-core repository, branch names don't contain forward slashes, so Docker tag sanitization is not needed in GitHub Actions workflows. Manual full builds and automated builds should use consistent tag naming to avoid mismatches.


</details>
<details>
<summary>.github/workflows/run-pr-tests.yaml (2)</summary>

Learnt from: nadavMiz
PR: #9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the make tester command also calls make noobaa due to makefile target dependencies, so running make tester will build both the noobaa and tester images.


Learnt from: nadavMiz
PR: #9099
File: .github/workflows/run-pr-tests.yaml:52-70
Timestamp: 2025-06-19T10:01:46.933Z
Learning: In the noobaa-core repository, branch names don't contain forward slashes, so Docker tag sanitization is not needed in GitHub Actions workflows. Manual full builds and automated builds should use consistent tag naming to avoid mismatches.


</details>
<details>
<summary>docs/CI & Tests/Mint.md (1)</summary>

Learnt from: nadavMiz
PR: #9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the make tester command also calls make noobaa due to makefile target dependencies, so running make tester will build both the noobaa and tester images.


</details>

</details><details>
<summary>🧬 Code Graph Analysis (2)</summary>

<details>
<summary>src/test/system_tests/mint/configure_mint.js (2)</summary><blockquote>

<details>
<summary>src/test/system_tests/external_tests_utils.js (1)</summary>

* `account_options` (129-129)

</details>
<details>
<summary>src/test/system_tests/mint/mint_constants.js (1)</summary>

* `MINT_TEST` (14-42)

</details>

</blockquote></details>
<details>
<summary>src/test/system_tests/mint/mint_constants.js (2)</summary><blockquote>

<details>
<summary>src/test/system_tests/external_tests_utils.js (2)</summary>

* `SensitiveString` (5-5)
* `require` (6-6)

</details>
<details>
<summary>src/test/system_tests/mint/configure_mint.js (2)</summary>

* `require` (7-7)
* `require` (8-8)

</details>

</blockquote></details>

</details><details>
<summary>🪛 YAMLlint (1.37.1)</summary>

<details>
<summary>.github/workflows/mint-nc-tests.yaml</summary>

[warning] 1-1: too many blank lines

(1 > 0) (empty-lines)

---

[error] 35-35: trailing spaces

(trailing-spaces)

---

[warning] 41-41: too many blank lines

(1 > 0) (empty-lines)

</details>
<details>
<summary>.github/workflows/mint-tests.yaml</summary>

[error] 27-27: trailing spaces

(trailing-spaces)

---

[error] 34-34: trailing spaces

(trailing-spaces)

---

[warning] 41-41: too many blank lines

(2 > 0) (empty-lines)

</details>
<details>
<summary>.github/workflows/run-pr-tests.yaml</summary>

[warning] 45-45: wrong indentation: expected 8 but found 4

(indentation)

---

[warning] 49-49: wrong indentation: expected 8 but found 4

(indentation)

</details>

</details>
<details>
<summary>🪛 LanguageTool</summary>

<details>
<summary>docs/CI & Tests/Mint.md</summary>

[uncategorized] ~12-~12: A determiner appears to be missing. Consider inserting it.
Context: ...inerized and Non Containerized flavors. Following are the SDKs/tools used in correctness ...

(AI_EN_LECTOR_MISSING_DETERMINER)

</details>

</details>
<details>
<summary>🪛 markdownlint-cli2 (0.17.2)</summary>

<details>
<summary>docs/CI & Tests/Mint.md</summary>

34-34: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)

---

35-35: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)

---

42-42: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)

---

43-43: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)

---

57-57: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

---

68-68: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

</details>

</details>
<details>
<summary>🪛 Biome (1.9.4)</summary>

<details>
<summary>src/test/system_tests/mint/configure_mint.js</summary>

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.


(lint/suspicious/noRedundantUseStrict)

</details>
<details>
<summary>src/test/system_tests/mint/mint_constants.js</summary>

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.


(lint/suspicious/noRedundantUseStrict)

</details>

</details>

</details>

<details>
<summary>⏰ Context from checks skipped due to timeout of 90000ms (3)</summary>

* GitHub Check: Build Noobaa Image
* GitHub Check: run-package-lock-validation
* GitHub Check: run-jest-unit-tests

</details>

<details>
<summary>🔇 Additional comments (1)</summary><blockquote>

<details>
<summary>docs/CI & Tests/Mint.md (1)</summary>

`80-88`: **Duplicate directory level in tree output**

`mint-test-logs` appears twice in the path, which is confusing:

├── mint-test-logs
│ ├── backingstore1.log


Verify the actual folder hierarchy and remove the extra level if it’s a copy-paste artefact.

</details>

</blockquote></details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Comment on lines +44 to +50
mint-tests:
needs: build-noobaa-image
uses: ./.github/workflows/mint-tests.yaml

mint-nc-tests:
needs: build-noobaa-image
uses: ./.github/workflows/mint-nc-tests.yaml
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue

Fix YAML indentation for new jobs.

The new mint-tests and mint-nc-tests jobs have incorrect indentation. In GitHub Actions YAML, jobs should be indented with 8 spaces under the jobs: key.

Apply this diff to fix the indentation:

-  mint-tests:
-    needs: build-noobaa-image
-    uses: ./.github/workflows/mint-tests.yaml
-
-  mint-nc-tests:
-    needs: build-noobaa-image
-    uses: ./.github/workflows/mint-nc-tests.yaml
+  mint-tests:
+    needs: build-noobaa-image
+    uses: ./.github/workflows/mint-tests.yaml
+
+  mint-nc-tests:
+    needs: build-noobaa-image
+    uses: ./.github/workflows/mint-nc-tests.yaml

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 YAMLlint (1.37.1)

[warning] 45-45: wrong indentation: expected 8 but found 4

(indentation)


[warning] 49-49: wrong indentation: expected 8 but found 4

(indentation)

🤖 Prompt for AI Agents
In .github/workflows/run-pr-tests.yaml around lines 44 to 50, the jobs
`mint-tests` and `mint-nc-tests` are incorrectly indented. To fix this, indent
both job definitions with 8 spaces under the `jobs:` key to comply with GitHub
Actions YAML syntax. Adjust the indentation of the entire job blocks
accordingly.

Copy link
Contributor

@nadavMiz nadavMiz left a comment

Choose a reason for hiding this comment

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

LGTM

Signed-off-by: Romy <35330373+romayalon@users.noreply.github.com>
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: 1

♻️ Duplicate comments (5)
src/test/system_tests/mint/mint_constants.js (2)

9-10: Ensure /tmp/nsfs_root1/ and /tmp/nsfs_root2/ are created or made configurable.


31-33: Review hardcoded UID/GID values in system tests.

src/test/system_tests/mint/configure_mint.js (1)

20-26: Export AWS credentials after account creation in mint tests.

.github/workflows/run-pr-tests.yaml (1)

44-50: Fix YAML indentation for new jobs.

.github/workflows/mint-nc-tests.yaml (1)

26-27: Fix artifact path for docker load command.

🧹 Nitpick comments (12)
src/test/system_tests/mint/mint_constants.js (1)

2-2: Remove redundant 'use strict' directive.

JavaScript modules are automatically in strict mode, making this directive unnecessary.

-'use strict';
src/test/system_tests/mint/configure_mint.js (1)

2-2: Remove redundant 'use strict' directive.

JavaScript modules are automatically in strict mode, making this directive unnecessary.

-"use strict";
.github/workflows/mint-tests.yaml (1)

27-27: Fix YAML formatting issues.

Remove trailing spaces and excessive blank lines to comply with YAML linting rules.

-        run: docker load --input /tmp/noobaa-tester.tar
+        run: docker load --input /tmp/noobaa-tester.tar
     
-          chmod 777 logs/mint-test-logs
+          chmod 777 logs/mint-test-logs
         
-

Also applies to: 34-34, 41-41

.github/workflows/mint-nc-tests.yaml (1)

1-1: Fix YAML formatting issues.

Remove unnecessary blank lines and trailing spaces to comply with YAML linting rules.

-
 name: Mint NC Tests
-          chmod 777 logs/mint-nc-test-logs
+          chmod 777 logs/mint-nc-test-logs
     
-

Also applies to: 35-35, 41-41

docs/CI & Tests/Mint.md (8)

1-1: Standardize title capitalization and plurality

GitHub’s brand name is camel-cased and there is more than one action.

-# Mint Github Action, Tests and Tool
+# Mint GitHub Actions, Tests and Tool

12-13: Tighten introduction grammar

The sentence is long, missing an article, and repeats “Containerized”. A crisper wording is easier to parse:

-[Mint](https://github.com/minio/mint) is a testing framework for S3-compatible object storage systems, NooBaa CI runs Mint as correctness/benchmarking and stress tests for the NooBaa system on both containerized and Non Containerized flavors.
+[Mint](https://github.com/minio/mint) is a testing framework for S3-compatible object-storage systems. NooBaa CI runs Mint as correctness, benchmarking, and stress tests on both containerized and non-containerized deployments.

34-35: Consistent bullet style (markdownlint MD004)

All other unordered lists use dashes. Switching from * to - silences the linter and keeps the style uniform.

-* [Mint Tests](../../.github/workflows/mint-tests.yaml) - Based on NooBaa Tester image, runs Mint on standard NooBaa (db configuration).
-* [Mint NC Tests](../../.github/workflows/mint-nc-tests.yaml) - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).
+- [Mint Tests](../../.github/workflows/mint-tests.yaml) - Based on NooBaa Tester image, runs Mint on standard NooBaa (DB configuration).
+- [Mint NC Tests](../../.github/workflows/mint-nc-tests.yaml) - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).

42-43: Same bullet-style issue for Makefile targets

-* `make test-mint` - Based on NooBaa Tester image, runs Mint on standard NooBaa (db configuration).
-* `make test-nc-mint` - Based on NooBaa Tester image, runs Mint on non-containerized NooBaa (ConfigFS configuration).
+- `make test-mint`  – Runs Mint on standard NooBaa (DB deployment) using the tester image.
+- `make test-nc-mint` – Runs Mint on non-containerized NooBaa (ConfigFS deployment) using the tester image.

54-56: Duplicate list index (“Tab 2”)

Two consecutive steps are numbered “2”. Renumber or convert to bullets to avoid confusion.

-2. Tab 2 - Create a NooBaa account.
-2. Tab 2 - Run Mint pointing to NooBaa endpoint -  
+2. Tab 2 – Create a NooBaa account.  
+3. Tab 3 – Run Mint pointing to the NooBaa endpoint:  

57-60: Add language hint to fenced code block (markdownlint MD040)

-```
+```bash
 docker run -e SERVER_ENDPOINT=<noobaa-endpoint-address>:<noobaa-endpoint-http-port> -e ACCESS_KEY=<pre-existing-account-access-key> -e SECRET_KEY=<pre-existing-account-secret-key> -e ENABLE_HTTPS=0 minio/mint <sdk-or-tool-name>

---

`68-71`: **Same fenced-block language issue**

```diff
-```
+```bash
 docker run -e SERVER_ENDPOINT=<noobaa-tester-container-id-or-name>:<noobaa-http-endpoint-port> -e ACCESS_KEY=<pre-existing-account-access-key> -e SECRET_KEY=<pre-existing-account-secret-key> -e ENABLE_HTTPS=0 --network noobaa-net minio/mint <sdk-or-tool-name>

---

`94-99`: **Path inconsistency in debug-log example**

Line 97 shows an absolute path (`/mint-nc-test-logs`) while the next line shows it under `logs/`. Stick to one path to prevent copy-paste errors.

```diff
-noobaa-core % tree /mint-nc-test-logs
-logs/mint-nc-test-logs
+noobaa-core % tree logs/mint-nc-test-logs
+logs/mint-nc-test-logs
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1f2a8f6 and f096fb5.

📒 Files selected for processing (13)
  • .github/workflows/mint-nc-tests.yaml (1 hunks)
  • .github/workflows/mint-tests.yaml (1 hunks)
  • .github/workflows/run-pr-tests.yaml (1 hunks)
  • Makefile (9 hunks)
  • docs/CI & Tests/Mint.md (1 hunks)
  • src/endpoint/s3/s3_errors.js (1 hunks)
  • src/test/system_tests/external_tests_utils.js (4 hunks)
  • src/test/system_tests/mint/configure_mint.js (1 hunks)
  • src/test/system_tests/mint/mint_constants.js (1 hunks)
  • src/test/system_tests/mint/run_mint_on_test_container.sh (1 hunks)
  • src/test/system_tests/mint/run_nc_mint_on_test_container.sh (1 hunks)
  • src/test/system_tests/warp/configure_warp.js (2 hunks)
  • src/test/system_tests/warp/run_warp.js (2 hunks)
✅ Files skipped from review due to trivial changes (1)
  • src/test/system_tests/mint/run_mint_on_test_container.sh
🚧 Files skipped from review as they are similar to previous changes (6)
  • src/endpoint/s3/s3_errors.js
  • src/test/system_tests/warp/run_warp.js
  • src/test/system_tests/mint/run_nc_mint_on_test_container.sh
  • src/test/system_tests/warp/configure_warp.js
  • Makefile
  • src/test/system_tests/external_tests_utils.js
🧰 Additional context used
📓 Path-based instructions (1)
`src/test/**/*.*`: Ensure that the PR includes tests for the changes.

src/test/**/*.*: Ensure that the PR includes tests for the changes.

⚙️ Source: CodeRabbit Configuration File

List of files the instruction was applied to:

  • src/test/system_tests/mint/configure_mint.js
  • src/test/system_tests/mint/mint_constants.js
🧠 Learnings (5)
📓 Common learnings
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
.github/workflows/mint-nc-tests.yaml (2)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:52-70
Timestamp: 2025-06-19T10:01:46.933Z
Learning: In the noobaa-core repository, branch names don't contain forward slashes, so Docker tag sanitization is not needed in GitHub Actions workflows. Manual full builds and automated builds should use consistent tag naming to avoid mismatches.
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
.github/workflows/mint-tests.yaml (1)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:52-70
Timestamp: 2025-06-19T10:01:46.933Z
Learning: In the noobaa-core repository, branch names don't contain forward slashes, so Docker tag sanitization is not needed in GitHub Actions workflows. Manual full builds and automated builds should use consistent tag naming to avoid mismatches.
.github/workflows/run-pr-tests.yaml (2)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:52-70
Timestamp: 2025-06-19T10:01:46.933Z
Learning: In the noobaa-core repository, branch names don't contain forward slashes, so Docker tag sanitization is not needed in GitHub Actions workflows. Manual full builds and automated builds should use consistent tag naming to avoid mismatches.
docs/CI & Tests/Mint.md (1)
Learnt from: nadavMiz
PR: noobaa/noobaa-core#9099
File: .github/workflows/run-pr-tests.yaml:135-136
Timestamp: 2025-06-19T11:03:49.934Z
Learning: In the noobaa-core project, the `make tester` command also calls `make noobaa` due to makefile target dependencies, so running `make tester` will build both the noobaa and tester images.
🧬 Code Graph Analysis (2)
src/test/system_tests/mint/configure_mint.js (2)
src/test/system_tests/external_tests_utils.js (1)
  • account_options (129-129)
src/test/system_tests/mint/mint_constants.js (1)
  • MINT_TEST (14-42)
src/test/system_tests/mint/mint_constants.js (2)
src/test/system_tests/external_tests_utils.js (2)
  • SensitiveString (5-5)
  • require (6-6)
src/test/system_tests/mint/configure_mint.js (2)
  • require (7-7)
  • require (8-8)
🪛 YAMLlint (1.37.1)
.github/workflows/mint-nc-tests.yaml

[warning] 1-1: too many blank lines (1 > 0)

(empty-lines)


[error] 35-35: trailing spaces

(trailing-spaces)


[warning] 41-41: too many blank lines (1 > 0)

(empty-lines)

.github/workflows/mint-tests.yaml

[error] 27-27: trailing spaces

(trailing-spaces)


[error] 34-34: trailing spaces

(trailing-spaces)


[warning] 41-41: too many blank lines (2 > 0)

(empty-lines)

.github/workflows/run-pr-tests.yaml

[warning] 45-45: wrong indentation: expected 8 but found 4

(indentation)


[warning] 49-49: wrong indentation: expected 8 but found 4

(indentation)

🪛 LanguageTool
docs/CI & Tests/Mint.md

[uncategorized] ~12-~12: A determiner appears to be missing. Consider inserting it.
Context: ...inerized and Non Containerized flavors. Following are the SDKs/tools used in correctness ...

(AI_EN_LECTOR_MISSING_DETERMINER)

🪛 markdownlint-cli2 (0.17.2)
docs/CI & Tests/Mint.md

34-34: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


35-35: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


42-42: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


43-43: Unordered list style
Expected: dash; Actual: asterisk

(MD004, ul-style)


57-57: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


68-68: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🪛 Biome (1.9.4)
src/test/system_tests/mint/configure_mint.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

src/test/system_tests/mint/mint_constants.js

[error] 1-2: Redundant use strict directive.

The entire contents of JavaScript modules are automatically in strict mode, with no statement needed to initiate it.
Safe fix: Remove the redundant use strict directive.

(lint/suspicious/noRedundantUseStrict)

⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: Build Noobaa Image
  • GitHub Check: run-package-lock-validation
  • GitHub Check: run-jest-unit-tests
🔇 Additional comments (5)
src/test/system_tests/mint/mint_constants.js (1)

14-42: Well-structured constants configuration.

The MINT_TEST object is well-organized with clear separation between containerized and non-containerized account parameters. The use of SensitiveString for access keys is appropriate for security.

src/test/system_tests/mint/configure_mint.js (1)

10-18: Good error handling and exit code management.

The main function properly handles errors with appropriate logging and exit codes, following best practices for CLI scripts.

.github/workflows/run-pr-tests.yaml (1)

44-50: LGTM: Proper job dependencies and workflow structure.

The new mint test jobs follow the established pattern of depending on build-noobaa-image and referencing separate workflow files. This maintains consistency with the existing test structure.

.github/workflows/mint-tests.yaml (1)

1-12: Well-structured workflow with appropriate permissions.

The workflow correctly defines permissions for artifact downloading and repository access. The timeout of 90 minutes is reasonable for system tests.

.github/workflows/mint-nc-tests.yaml (1)

2-12: Consistent workflow structure with mint-tests.yaml.

The workflow follows the same pattern as the standard mint tests workflow, maintaining consistency in the CI pipeline. The permissions and timeout settings are appropriate.

path: /tmp

- name: Load image
run: docker load --input /tmp/noobaa-tester.tar
Copy link

Choose a reason for hiding this comment

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

💡 Verification agent

🧩 Analysis chain

Verify artifact path is correct.

Based on past feedback, ensure the artifact path /tmp/noobaa-tester.tar is correct. If actions/download-artifact extracts to <path>/<artifact-name>/, the path should be /tmp/noobaa-tester/noobaa-tester.tar.


🏁 Script executed:

#!/bin/bash
# Description: Check how actions/download-artifact works with the specified path

# Search for other download-artifact usage patterns in the codebase
echo "=== Searching for download-artifact usage patterns ==="
rg -A 5 -B 2 "download-artifact" .github/workflows/

echo "=== Checking for docker load patterns ==="
rg -A 2 -B 2 "docker load" .github/workflows/

Length of output: 14634


Update docker load path to include artifact directory

The actions/download-artifact step with path: /tmp will place the downloaded files under /tmp/noobaa-tester/, so the tarball ends up at /tmp/noobaa-tester/noobaa-tester.tar, not /tmp/noobaa-tester.tar.

Please update the “Load image” step in .github/workflows/mint-tests.yaml:

  • File: .github/workflows/mint-tests.yaml
    Step: “Load image” (around line 26)
- run: docker load --input /tmp/noobaa-tester.tar
+ run: docker load --input /tmp/noobaa-tester/noobaa-tester.tar

(You may also want to apply the same fix across the other workflows that use download-artifact name: noobaa-tester path: /tmp.)

🤖 Prompt for AI Agents
In .github/workflows/mint-tests.yaml at line 26, the docker load command uses an
incorrect path for the tarball file. Update the path from /tmp/noobaa-tester.tar
to /tmp/noobaa-tester/noobaa-tester.tar to match the artifact download location.
Also, check other workflows using the same artifact download path and apply the
same fix if needed.

@romayalon romayalon merged commit 95034f6 into noobaa:master Jul 6, 2025
18 of 19 checks passed
@coderabbitai coderabbitai bot mentioned this pull request Jul 8, 2025
2 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants