Skip to content

💚(ci) fix check-changelog, mongo tests, tray and test-helm#634

Merged
MYilFun00 merged 4 commits into
mainfrom
fix/ci-green
Jul 6, 2026
Merged

💚(ci) fix check-changelog, mongo tests, tray and test-helm#634
MYilFun00 merged 4 commits into
mainfrom
fix/ci-green

Conversation

@MYilFun00

@MYilFun00 MYilFun00 commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Purpose

The CI pipeline is currently red for reasons unrelated to any feature change:

  1. The check-changelog job runs git whatchanged, which recent Git versions
    (>= 2.47) refuse to run (fatal: refusing to run without --i-still-use-this),
    so the job fails on every branch.
  2. The MongoDB delete-failure tests assert on the exact pymongo/bson error
    string. That wording changed across pymongo versions, so the tests fail
    depending on the resolved pymongo version.
  3. The tray job runs Arnold from the unpinned master image tag. master
    moved to 6.24.0 (ansible-core 2.14.18), whose stricter vault handling breaks
    the "Decrypt vaulted credentials" step (green->red on unrelated PRs).
  4. The test-helm job installs the ECK operator from an unpinned chart and then
    waits on pods with a short sleep. The freshly installed operator is not
    ready yet, so no pods exist and kubectl wait fails immediately
    (no matching resources found, then status is not found).

This PR restores a green pipeline so functional PRs can be validated on a
reliable CI signal.

Proposal

  • Replace git whatchanged --name-only --pretty="" origin..HEAD with
    git log --name-only --pretty=format: origin..HEAD in the
    check-changelog job (.circleci/config.yml).
  • Make test_backends_data_mongo_write_with_delete_operation_failure and its
    async counterpart assert only on the stable, Ralph-controlled prefix
    "Failed to delete document chunk: " instead of the full pymongo/bson
    message.
  • Pin Arnold to 6.23.0 (the last release before the ansible-core 2.14.18
    regression) in Makefile and .k3d-cluster.env.sh, and fetch the
    bin/arnold / bin/init-cluster wrappers from the v6.23.0 tag.
  • Harden the test-helm Elasticsearch deployment: pin eck-operator to
    2.16.1, wait for the operator to be ready before applying the
    Elasticsearch resource, and poll .status.phase until Ready instead
    of racing on pods.
  • Update CHANGELOG.md.

Testing

  • Full suite (Docker, Python 3.12 + MongoDB): 1793 passed, 6 skipped
    (previously 2 failed, 1791 passed).
  • Verified the new check-changelog command detects a CHANGELOG.md change.
  • Reproduced the tray failure locally and confirmed the ansible-core
    2.14.17 -> 2.14.18 bump (Arnold 6.23.0 -> 6.24.0) is the trigger.
  • tray and test-helm are now green on CircleCI.

- Replace removed `git whatchanged` (refused by git >= 2.47) with
  `git log --name-only` in the check-changelog CI job.
- Assert only on the stable "Failed to delete document chunk: " prefix
  in the mongo delete-failure tests, instead of the exact pymongo/bson
  error string which varies across pymongo versions.
@MYilFun00 MYilFun00 requested a review from kenza244 July 3, 2026 15:23
MYilFun00 added 3 commits July 3, 2026 18:32
The tray job runs Arnold with an unpinned `master` image tag. Arnold's
`latest`/`master` moved to 6.24.0 (ansible-core 2.14.18), whose vault
handling breaks the "Decrypt vaulted credentials" step, turning tray red
without any code change (green->red on unrelated PRs).

Pin the Arnold image (Makefile + .k3d-cluster.env.sh) and the downloaded
`bin/arnold` / `bin/init-cluster` wrappers to 6.23.0 (ansible-core
2.14.17), the last release before the regression.
The test-helm job installed the ECK operator from an unpinned chart and
then waited on pods with a 5s sleep. The freshly installed operator was
not ready yet, so no pods existed and `kubectl wait` failed immediately
with "no matching resources found".

Pin eck-operator to 2.16.1, wait for the operator to be ready before
applying the Elasticsearch CR, and wait on the Elasticsearch resource
status (which exists right after apply) instead of racing on pods.
`kubectl wait --for=jsonpath` fails immediately with "status is not
found" when the ECK operator has not written the Elasticsearch `.status`
subresource yet (it does so asynchronously after apply).

Replace it with a polling loop that waits until `.status.phase` reaches
`Ready`, logging the phase on each iteration for easier debugging.
@MYilFun00 MYilFun00 changed the title 💚(ci) fix check-changelog and pymongo-brittle mongo tests 💚(ci) fix check-changelog, mongo tests, tray and test-helm Jul 3, 2026
@MYilFun00 MYilFun00 merged commit 4a5e1b0 into main Jul 6, 2026
22 checks passed
@MYilFun00 MYilFun00 deleted the fix/ci-green branch July 6, 2026 07:33
MYilFun00 added a commit to piptouque/ralph that referenced this pull request Jul 6, 2026
Reconcile with main (openfun#632, openfun#634, openfun#635) and resolve CHANGELOG conflict.

Co-authored-by: Cursor <cursoragent@cursor.com>
MYilFun00 added a commit to piptouque/ralph that referenced this pull request Jul 6, 2026
Reconcile with main (openfun#632, openfun#634, openfun#635) and resolve CHANGELOG conflict.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants