Skip to content

Pin alpine 3 version to 3.22 [MOD-12913]#7651

Merged
meiravgri merged 5 commits intomasterfrom
dorer-pin-alpine3.22
Dec 4, 2025
Merged

Pin alpine 3 version to 3.22 [MOD-12913]#7651
meiravgri merged 5 commits intomasterfrom
dorer-pin-alpine3.22

Conversation

@dor-forer
Copy link
Collaborator

@dor-forer dor-forer commented Dec 4, 2025

Describe the changes in the pull request

In alpine container version 3.23, the gcc version was bumped to 15, which we dont support yet
As a temporary solution, we pin the container version to 3.22

Which additional issues this PR fixes

  1. MOD-...
  2. #...

Main objects this PR modified

  1. ...

Mark if applicable

  • This PR introduces API changes
  • This PR introduces serialization changes

Note

Pin CI Alpine platform to 3.22 and align matrices and conditionals accordingly across build/test workflows.

  • CI workflows:
    • Pin Alpine platform from alpine:3 to alpine:3.22 across workflow inputs, matrices, and config in flow-build-artifacts.yml, flow-test.yml, generate-matrix.yml, and task-get-config.yml.
    • Update conditional steps to match alpine:3.22 in task-build-artifacts.yml and task-test.yml (Alpine vs non-Alpine setup paths).
    • Ensure matrix includes alpine:3.22 for both x86_64 and aarch64.

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

@dor-forer dor-forer requested a review from meiravgri December 4, 2025 10:08
@github-actions github-actions bot added the size:S label Dec 4, 2025
'setup_script': 'apk add bash gcompat libstdc++ libgcc git',
'post_setup_script': 'echo RUST_DYN_CRT=1 >> $GITHUB_ENV',
'name': 'Alpine 3 ARM64'
'name': 'Alpine 3.22 ARM64'
Copy link

Choose a reason for hiding this comment

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

Bug: Incomplete identifier update breaks Alpine workflow conditionals

Changing the Alpine platform identifier from alpine:3 to alpine:3.22 in the matrix and config files breaks downstream workflow conditionals that still compare against alpine:3. In task-build-artifacts.yml and task-test.yml, the "Setup Dependencies (Alpine)" step checks if container == 'alpine:3', which will now be false for alpine:3.22. This causes Alpine builds to skip the required sh -l -eo pipefail shell and use the bash-based non-Alpine setup path instead, which will fail since Alpine uses ash/sh by default. The node20 support checks also fail to match, incorrectly treating Alpine as node20-compatible.

Additional Locations (1)

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.

Bug: Incomplete version update breaks node20 support detection

The node20 support check loops through platforms including alpine:3, but since the container is now alpine:3.22, the condition $CONTAINER == "$platform" will never match. This incorrectly marks node20 as supported for Alpine, causing the workflow to use actions/checkout@v4 instead of the manual checkout fallback required for platforms without node20 support.

.github/workflows/task-build-artifacts.yml#L110-L111

CONTAINER="${{ needs.get-config.outputs.container }}"
for platform in amazonlinux:2 alpine:3; do

.github/workflows/task-test.yml#L245-L246

CONTAINER="${{ needs.get-config.outputs.container }}"
for platform in amazonlinux:2 alpine:3; do

Fix in Cursor Fix in Web


Bug: Incomplete version update breaks manual checkout case statement

The case statement for manual checkout (node20 not supported) matches alpine:3 but the container is now alpine:3.22. If the node20 support check were fixed, this case statement would fail to match, potentially leaving the repository in an incorrectly configured state.

.github/workflows/task-build-artifacts.yml#L130-L131

case "$CONTAINER" in
amazonlinux:2 | alpine:3)

.github/workflows/task-test.yml#L275-L276

case "$CONTAINER" in
amazonlinux:2 | alpine:3)

Fix in Cursor Fix in Web


@codecov
Copy link

codecov bot commented Dec 4, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 84.72%. Comparing base (96f53b5) to head (fa7cb08).
⚠️ Report is 5 commits behind head on master.

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #7651   +/-   ##
=======================================
  Coverage   84.72%   84.72%           
=======================================
  Files         350      350           
  Lines       54184    54184           
  Branches    14500    14500           
=======================================
+ Hits        45909    45910    +1     
+ Misses       8082     8081    -1     
  Partials      193      193           
Flag Coverage Δ
flow 85.08% <ø> (-0.13%) ⬇️
unit 52.01% <ø> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@dor-forer dor-forer changed the title Pin alpine 3 version to 3.22 Pin alpine 3 version to 3.22 [MOD-12913] Dec 4, 2025
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.

Bug: node20 check still compares to `alpine:3`

The node20 compatibility check loop iterates over alpine:3 instead of alpine:3.22. Since the container is now alpine:3.22, this check will no longer detect Alpine as a platform requiring node20 fallback handling, potentially causing build/test failures if node20 isn't actually supported on Alpine 3.22.

.github/workflows/task-build-artifacts.yml#L110-L111

CONTAINER="${{ needs.get-config.outputs.container }}"
for platform in amazonlinux:2 alpine:3; do

.github/workflows/task-test.yml#L245-L246

CONTAINER="${{ needs.get-config.outputs.container }}"
for platform in amazonlinux:2 alpine:3; do

Fix in Cursor Fix in Web


Bug: Checkout fallback case matches old `alpine:3`

The case statement for node20 fallback checkout logic matches alpine:3 instead of alpine:3.22. If the node20 check were fixed and Alpine needed fallback handling, this case wouldn't match the new container name, causing the checkout step to fail with "Unsupported platform".

.github/workflows/task-build-artifacts.yml#L130-L131

case "$CONTAINER" in
amazonlinux:2 | alpine:3)

.github/workflows/task-test.yml#L275-L276

case "$CONTAINER" in
amazonlinux:2 | alpine:3)

Fix in Cursor Fix in Web


# Split to alpine and non-alpine due to different default shells, once the dependency installation is done, we can use the same shell in the rest of the flow
- name: Setup Dependencies (Alpine)
if: needs.build-image.outputs.succeeded != 'true' && needs.get-config.outputs.setup_script && needs.get-config.outputs.container == 'alpine:3'
if: needs.build-image.outputs.succeeded != 'true' && needs.get-config.outputs.setup_script && needs.get-config.outputs.container == 'alpine:3.22'
Copy link

Choose a reason for hiding this comment

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

Bug: Inconsistent Alpine version check after version update

The "Setup Dependencies (Non-Alpine)" step condition still checks for alpine:3 instead of alpine:3.22. Since the Alpine setup step at line 200 now checks for alpine:3.22, and the container will be alpine:3.22, this Non-Alpine step condition (!= 'alpine:3') will always be true for Alpine containers. This causes both the Alpine-specific setup (using sh shell) and the Non-Alpine setup (using bash shell) to run for Alpine containers, which was not the intended behavior. The condition at line 218 needs to match the updated version at line 200.

Fix in Cursor Fix in Web

@meiravgri meiravgri added this pull request to the merge queue Dec 4, 2025
Merged via the queue into master with commit ece1610 Dec 4, 2025
25 checks passed
@meiravgri meiravgri deleted the dorer-pin-alpine3.22 branch December 4, 2025 14:34
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