Skip to content

MOD-13779 | MOD-13574 | MOD-13811 Dockerize CI, add AL2023 and macos-…#1501

Merged
AvivDavid23 merged 2 commits into2.8from
2.8-ci
Feb 9, 2026
Merged

MOD-13779 | MOD-13574 | MOD-13811 Dockerize CI, add AL2023 and macos-…#1501
AvivDavid23 merged 2 commits into2.8from
2.8-ci

Conversation

@AvivDavid23
Copy link
Contributor

@AvivDavid23 AvivDavid23 commented Feb 8, 2026

…26 (#1494)

  • MOD-13779 Dockerize CI

  • MOD-13574 AL2023

  • MOD-13811 MACOS-26


Note

Medium Risk
CI execution is substantially refactored (new Docker-based Linux workflow, new OS/arch matrices, and new artifact upload path), so failures could block releases despite no runtime code changes.

Overview
Refactors GitHub Actions Linux CI to run builds/tests inside per-distro Docker images via a new reusable flow-linux.yml, replacing the previous per-arch/per-distro workflows (flow-linux-x86.yml, flow-linux-arm.yml, flow-alpine.yml, flow-azurelinux3-arm.yml). Event workflows (event-ci, event-nightly, event-tag, event-weekly) are updated to call the new workflow for both x64 and arm64, with expanded distro coverage (notably adding amazonlinux2023 and alpine) and updated nightly redis-ref handling.

Adds Dockerfiles for each supported distro and a shared .install/install_redis.sh used during image builds, plus a Docker-oriented sbin/upload-artifacts-s3 wrapper to push artifacts from inside containers (including optional beta uploads). Separately tightens Python tooling by pinning setuptools<81 in install scripts and test requirements, and updates macOS CI to build arm64 across macos-14/15/26 (dropping the previous macOS x64 job).

Written by Cursor Bugbot for commit 5e1ad49. This will update automatically on new commits. Configure here.

…26 (#1494)

* MOD-13779 Dockerize CI

* MOD-13574 AL2023

* MOD-13811 MACOS-26
needs: [prepare-values]
with:
os: jammy rocky9 amazonlinux2 azurelinux3
arch: x64
Copy link

Choose a reason for hiding this comment

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

CI builds missing os parameter, testing all platforms

High Severity

The os parameter was accidentally dropped from both build-linux-x64 and build-linux-arm64 CI jobs. Previously, CI specified os: jammy rocky9 amazonlinux2 azurelinux3 (4 platforms). Without os, the jobs fall through to the full defaults in flow-linux.yml — 11 platforms for x64 and 7 for arm64 — turning every PR build from ~5 jobs into ~18. The weekly and tag events both explicitly specify os lists, confirming this omission is unintentional.

Additional Locations (1)

Fix in Cursor Fix in Web

arch: x64
# os: jammy rocky9 amazonlinux2
os: bionic focal jammy rocky8 rocky9 bullseye amazonlinux2 mariner2 azurelinux3
os: bionic focal jammy rocky8 rocky9 bullseye amazonlinux2 mariner2 azurelinux3 alpine
Copy link

Choose a reason for hiding this comment

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

Weekly builds omit amazonlinux2023 from OS lists

Medium Severity

The weekly x64 os list and arm64 os list both omit amazonlinux2023, despite this PR specifically adding AL2023 support. The tag event includes amazonlinux2023 in its x64 list, and the default lists in flow-linux.yml include it for both architectures, making this inconsistency look like an oversight.

Additional Locations (1)

Fix in Cursor Fix in Web


# Install git and build tools first
RUN dnf install -y git make wget openssl openssl-devel which \
rsync unzip clang tar
Copy link

Choose a reason for hiding this comment

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

AL2023 Dockerfile missing gcc, Redis build will fail

High Severity

Dockerfile.amazonlinux2023 installs clang but not gcc. Every other Dockerfile installs gcc or an equivalent (e.g. build-essential, devtoolset-*-gcc). On the amazonlinux:2023 base image, gcc and cc are not available by default, and installing clang does not create a cc symlink. The install_redis.sh script runs make which invokes cc, so the Redis build step will fail during Docker image construction.

Fix in Cursor Fix in Web

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

--cap-add=SYS_PTRACE \
--security-opt seccomp=unconfined \
${{ env.DOCKER_IMAGE }} \
bash -c "cargo test && MODULE=\$(realpath ./target/release/rejson.so) RLTEST_ARGS='--no-progress' \$(realpath ./tests/pytest/tests.sh) VG=${{ inputs.run_valgrind && '1' || '0' }}"
Copy link

Choose a reason for hiding this comment

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

Valgrind flag passed as argument, not environment variable

High Severity

In the test step's bash -c command, VG=${{ inputs.run_valgrind && '1' || '0' }} is placed after the script path (tests.sh), making it a positional argument instead of an environment variable. The script checks if [[ $VG == 1 ]] to enable valgrind, but VG will never be set. The value becomes part of $@ and gets appended to RLTEST_ARGS as a garbage argument. VG=... needs to be placed before the command, alongside MODULE= and RLTEST_ARGS=.

Fix in Cursor Fix in Web

@AvivDavid23 AvivDavid23 merged commit 3d50da5 into 2.8 Feb 9, 2026
35 of 36 checks passed
@AvivDavid23 AvivDavid23 deleted the 2.8-ci branch February 9, 2026 08:33
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