-
Notifications
You must be signed in to change notification settings - Fork 180
Bump Rust to 1.87, Clang/LLVM to 20 #3926
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
Changes from 49 commits
e503b4b
e7581a2
5d23d5a
3bcc9c9
0a6fcaf
807b8f6
079e4d2
fcd0320
f07940a
8ed72a0
434d550
2e7b9d2
6db6faa
3b2f483
04ac8af
f3e85d6
846c5f0
2f18686
e06a566
34e219f
af9852b
a24cf8c
20ad988
2193635
080fff2
74600d5
84caf7c
0c19dda
725b1ac
e7bdebb
d9552a4
8880905
38fb860
3537e5d
9e99cc1
2644abe
a447f8f
de8ffe4
2674fa2
30a0eb8
751af9e
f31d128
0385edb
d83f701
743aafa
5569a2a
2fd9410
b3784e7
fd12b02
1a77524
a3e9464
438b465
7c680a3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -17,6 +17,8 @@ CentOS: | |
| tags: ["arch:amd64"] | ||
| timeout: 4h | ||
| image: 486234852809.dkr.ecr.us-east-1.amazonaws.com/docker:29.4.0-noble | ||
| variables: | ||
| DDCI_CONFIGURE_OTEL_EXPORTER: "true" | ||
| parallel: | ||
| matrix: | ||
| - PHP_VERSION: | ||
|
|
@@ -30,8 +32,6 @@ CentOS: | |
| - php-7.4 | ||
| - php-7.3 | ||
| - php-7.2 | ||
| - php-7.1 | ||
| - php-7.0 | ||
| script: | ||
| - cd dockerfiles/ci/centos/7 | ||
| - echo "$CI_REGISTRY_TOKEN" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY" | ||
|
|
@@ -46,6 +46,8 @@ Alpine: | |
| tags: ["arch:amd64"] | ||
| timeout: 4h | ||
| image: 486234852809.dkr.ecr.us-east-1.amazonaws.com/docker:29.4.0-noble | ||
| variables: | ||
| DDCI_CONFIGURE_OTEL_EXPORTER: "true" | ||
| parallel: | ||
| matrix: | ||
| - PHP_VERSION: | ||
|
|
@@ -59,8 +61,6 @@ Alpine: | |
| - 7.4-alpine | ||
| - 7.3-alpine | ||
| - 7.2-alpine | ||
| - 7.1-alpine | ||
| - 7.0-alpine | ||
| script: | ||
| - cd dockerfiles/ci/alpine_compile_extension | ||
| - echo "$CI_REGISTRY_TOKEN" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY" | ||
|
|
@@ -75,10 +75,13 @@ Bookworm: | |
| tags: ["arch:amd64"] | ||
| timeout: 4h | ||
| image: 486234852809.dkr.ecr.us-east-1.amazonaws.com/docker:29.4.0-noble | ||
| variables: | ||
| DDCI_CONFIGURE_OTEL_EXPORTER: "true" | ||
| parallel: | ||
| matrix: | ||
| - PHP_VERSION: | ||
| - base | ||
| - PHP_VERSION: | ||
| - php-8.5 | ||
| - php-8.4 | ||
| - php-8.3 | ||
|
|
@@ -90,40 +93,198 @@ Bookworm: | |
| - php-7.4-shared-ext | ||
| - php-7.3 | ||
| - php-7.2 | ||
| - php-7.1 | ||
| - php-7.0 | ||
| MAKE_JOBS: ["2"] | ||
| script: | ||
| - cd dockerfiles/ci/bookworm | ||
| - echo "$CI_REGISTRY_TOKEN" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY" | ||
| - docker buildx bake --no-cache --pull --push $PHP_VERSION | ||
|
|
||
| Buster: | ||
| .windows_image_build: | ||
| stage: ci-build | ||
| rules: | ||
| - when: manual | ||
| allow_failure: true | ||
| needs: [] | ||
| tags: ["arch:amd64"] | ||
| timeout: 4h | ||
| image: 486234852809.dkr.ecr.us-east-1.amazonaws.com/docker:29.4.0-noble | ||
| tags: ["windows-v2:2019"] | ||
| timeout: 6h | ||
| variables: | ||
| DDCI_CONFIGURE_OTEL_EXPORTER: "true" | ||
| GIT_STRATEGY: none | ||
| script: | | ||
| # Kill leftover containers; a previous run may still hold php_ddtrace.dll open. | ||
| $containers = docker ps -aq 2>$null | ||
| if ($containers) { docker rm -f $containers 2>$null } | ||
|
|
||
| # Use cmd.exe rd from the parent dir: handles junctions/symlinks that PS5.1 Remove-Item cannot. | ||
| Write-Host "Performing workspace cleanup..." | ||
| $workspace = $PWD.Path | ||
| Push-Location .. | ||
| cmd /c "rd /s /q ""$workspace""" | ||
| if (-not (Test-Path $workspace)) { | ||
| New-Item -ItemType Directory -Path $workspace -Force | Out-Null | ||
| } | ||
| Pop-Location | ||
| $remaining = Get-ChildItem -Path . -Force -ErrorAction SilentlyContinue | ||
| if ($remaining) { Write-Host "WARNING: could not remove: $($remaining.Name -join ', ')" } | ||
| Write-Host "Cleanup complete." | ||
|
|
||
| # PS 5.1 ignores $PSNativeCommandUseErrorActionPreference; use $LASTEXITCODE checks instead. | ||
| $ErrorActionPreference = 'Stop' | ||
|
|
||
| # Manual git clone with proper config. | ||
| Write-Host "Cloning repository..." | ||
| git config --global core.longpaths true | ||
| git config --global core.symlinks true | ||
| git clone --branch $env:CI_COMMIT_REF_NAME $env:CI_REPOSITORY_URL . | ||
| if ($LASTEXITCODE -ne 0) { | ||
| Write-Host "ERROR: git clone failed. Remaining workspace contents:" | ||
| Get-ChildItem -Force | Select-Object Name | ||
| exit $LASTEXITCODE | ||
| } | ||
| git checkout $env:CI_COMMIT_SHA | ||
| if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } | ||
|
|
||
| # Initialize submodules. | ||
| Write-Host "Initializing submodules..." | ||
| git submodule update --init --recursive | ||
| if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } | ||
| Write-Host "Git setup complete." | ||
|
|
||
| cd dockerfiles\ci\windows | ||
|
|
||
| $env:DOCKER_CONFIG = Join-Path $env:CI_PROJECT_DIR ".docker" | ||
| New-Item -ItemType Directory -Force -Path $env:DOCKER_CONFIG | Out-Null | ||
| Set-Content -Encoding ascii -Path (Join-Path $env:DOCKER_CONFIG "config.json") -Value '{"auths":{}}' | ||
|
|
||
| $env:CI_REGISTRY_TOKEN | docker login -u "$env:CI_REGISTRY_USER" --password-stdin "$env:CI_REGISTRY" | ||
| if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } | ||
|
|
||
| docker version | ||
| if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } | ||
|
|
||
| $targets = @{ | ||
| "vc14" = @{ | ||
| Image = "datadog/dd-trace-ci:windows-vc14" | ||
| Dockerfile = "basetools.Dockerfile" | ||
| BuildArgs = @("vsVersion=vc14", "sdkVersion=2.1.10") | ||
| } | ||
| "vc15" = @{ | ||
| Image = "datadog/dd-trace-ci:windows-vc15" | ||
| Dockerfile = "basetools.Dockerfile" | ||
| BuildArgs = @("vsVersion=vc15", "sdkVersion=2.2.0") | ||
| } | ||
| "vs16" = @{ | ||
| Image = "datadog/dd-trace-ci:windows-vs16" | ||
| Dockerfile = "basetools.Dockerfile" | ||
| BuildArgs = @("vsVersion=vs16", "sdkVersion=2.2.0") | ||
| } | ||
| "vs17" = @{ | ||
| Image = "datadog/dd-trace-ci:windows-vs17" | ||
| Dockerfile = "basetools.Dockerfile" | ||
| BuildArgs = @("vsVersion=vs17", "sdkVersion=2.3.0") | ||
| } | ||
| "php-8.5" = @{ | ||
| Image = "datadog/dd-trace-ci:php-8.5_windows" | ||
| Dockerfile = "Dockerfile" | ||
| BuildArgs = @("phpVersion=8.5.6", "vsVersion=vs17", "phpTarGzUrl=https://www.php.net/distributions/php-8.5.6.tar.gz", "phpSha256Hash=169aaa21c2834b38df8e39169f43bc5bea8d4059a816cfbc59be08fc2bae60cd") | ||
| } | ||
| "php-8.4" = @{ | ||
| Image = "datadog/dd-trace-ci:php-8.4_windows" | ||
| Dockerfile = "Dockerfile" | ||
| BuildArgs = @("phpVersion=8.4.21", "vsVersion=vs17", "phpTarGzUrl=https://www.php.net/distributions/php-8.4.21.tar.gz", "phpSha256Hash=db96ee0a8e5ee7b73a4913a2aeddc162ba2ef16cd34b9347b5b9a6150e1f8e48") | ||
| } | ||
| "php-8.3" = @{ | ||
| Image = "datadog/dd-trace-ci:php-8.3_windows" | ||
| Dockerfile = "Dockerfile" | ||
| BuildArgs = @("phpVersion=8.3.31", "vsVersion=vs16", "phpTarGzUrl=https://www.php.net/distributions/php-8.3.31.tar.gz", "phpSha256Hash=4e7baaf0a690e954a20e7ced3dd633ce8cb8094e2b6b612a55e703ecbbdcbf4f") | ||
| } | ||
| "php-8.2" = @{ | ||
| Image = "datadog/dd-trace-ci:php-8.2_windows" | ||
| Dockerfile = "Dockerfile" | ||
| BuildArgs = @("phpVersion=8.2.31", "vsVersion=vs16", "phpTarGzUrl=https://www.php.net/distributions/php-8.2.31.tar.gz", "phpSha256Hash=083c2f61cc5f527eb293c4c468a91af46a9678785957e023b2796a9db290d870") | ||
| } | ||
| "php-8.1" = @{ | ||
| Image = "datadog/dd-trace-ci:php-8.1_windows" | ||
| Dockerfile = "Dockerfile" | ||
| BuildArgs = @("phpVersion=8.1.32", "vsVersion=vs16", "phpTarGzUrl=https://www.php.net/distributions/php-8.1.32.tar.gz", "phpSha256Hash=4846836d1de27dbd28e89180f073531087029a77e98e8e019b7b2eddbdb1baff") | ||
| } | ||
| "php-8.0" = @{ | ||
| Image = "datadog/dd-trace-ci:php-8.0_windows" | ||
| Dockerfile = "Dockerfile" | ||
| BuildArgs = @("phpVersion=8.0.30", "vsVersion=vs16", "phpTarGzUrl=https://www.php.net/distributions/php-8.0.30.tar.gz", "phpSha256Hash=449d2048fcb20a314d8c218097c6d1047a9f1c5bb72aa54d5d3eba0a27a4c80c") | ||
| } | ||
| "php-7.4" = @{ | ||
| Image = "datadog/dd-trace-ci:php-7.4_windows" | ||
| Dockerfile = "Dockerfile" | ||
| BuildArgs = @("phpVersion=7.4.33", "vsVersion=vc15", "phpTarGzUrl=https://www.php.net/distributions/php-7.4.33.tar.gz", "phpSha256Hash=5a2337996f07c8a097e03d46263b5c98d2c8e355227756351421003bea8f463e") | ||
| } | ||
| "php-7.3" = @{ | ||
| Image = "datadog/dd-trace-ci:php-7.3_windows" | ||
| Dockerfile = "Dockerfile" | ||
| BuildArgs = @("phpVersion=7.3.33", "vsVersion=vc15", "phpTarGzUrl=https://www.php.net/distributions/php-7.3.33.tar.gz", "phpSha256Hash=9a369c32c6f52036b0a890f290327f148a1904ee66aa56e2c9a7546da6525ec8") | ||
| } | ||
| "php-7.2" = @{ | ||
| Image = "datadog/dd-trace-ci:php-7.2_windows" | ||
| Dockerfile = "Dockerfile" | ||
| BuildArgs = @("phpVersion=7.2.34", "vsVersion=vc15", "phpTarGzUrl=https://www.php.net/distributions/php-7.2.34.tar.gz", "phpSha256Hash=8b2777c741e83f188d3ca6d8e98ece7264acafee86787298fae57e05d0dddc78") | ||
| } | ||
| "php-7.1" = @{ | ||
| Image = "datadog/dd-trace-ci:php-7.1_windows" | ||
| Dockerfile = "Dockerfile" | ||
| BuildArgs = @("phpVersion=7.1.33", "vsVersion=vc14", "phpTarGzUrl=https://www.php.net/distributions/php-7.1.33.tar.gz", "phpSha256Hash=0055f368ffefe51d5a4483755bd17475e88e74302c08b727952831c5b2682ea2") | ||
| } | ||
| "php-7.0" = @{ | ||
| Image = "datadog/dd-trace-ci:php-7.0_windows" | ||
| Dockerfile = "Dockerfile" | ||
| BuildArgs = @("phpVersion=7.0.33", "vsVersion=vc14", "phpTarGzUrl=https://www.php.net/distributions/php-7.0.33.tar.gz", "phpSha256Hash=d71a6ecb6b13dc53fed7532a7f8f949c4044806f067502f8fb6f9facbb40452a") | ||
| } | ||
| } | ||
|
|
||
| foreach ($target in ($env:WINDOWS_IMAGE_TARGETS -split ' ')) { | ||
| if ([string]::IsNullOrWhiteSpace($target)) { continue } | ||
| if (-not $targets.ContainsKey($target)) { | ||
| Write-Host "ERROR: unknown Windows CI image target $target." | ||
| exit 1 | ||
| } | ||
|
|
||
| $config = $targets[$target] | ||
| $image = $config["Image"] | ||
| $dockerfile = $config["Dockerfile"] | ||
| $buildCommand = @("build", "--pull", "--no-cache", "-t", "$image", "-f", "$dockerfile") | ||
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Using docker-compose did not work? (not available or something?)
Collaborator
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Correct, no "docker compose" nor "docker-compose" at all, I checked both.
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. https://docs.docker.com/compose/install/standalone#on-windows-server that's apparently the instructions to manually install Trying. |
||
| foreach ($buildArg in $config["BuildArgs"]) { | ||
| $buildCommand += @("--build-arg", "$buildArg") | ||
| } | ||
| $buildCommand += "." | ||
|
|
||
| Write-Host "Building Windows CI image target $target..." | ||
| docker @buildCommand | ||
| if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } | ||
|
|
||
| Write-Host "Pushing Windows CI image target $target..." | ||
| docker push "$image" | ||
| if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE } | ||
| } | ||
|
|
||
| "Windows 1: Tool Images": | ||
| extends: .windows_image_build | ||
| parallel: | ||
| matrix: | ||
| - PHP_VERSION: | ||
| - base | ||
| - php-8.5 | ||
| - php-8.4 | ||
| - php-8.3 | ||
| - php-8.2 | ||
| - php-8.1 | ||
| - php-8.0 | ||
| - php-8.0-shared-ext | ||
| - php-7.4 | ||
| - php-7.4-shared-ext | ||
| - php-7.3 | ||
| - php-7.2 | ||
| - php-7.1 | ||
| - php-7.0 | ||
| script: | ||
| - cd dockerfiles/ci/buster | ||
| - echo "$CI_REGISTRY_TOKEN" | docker login -u "$CI_REGISTRY_USER" --password-stdin "$CI_REGISTRY" | ||
| - docker buildx bake --no-cache --pull --push $PHP_VERSION | ||
| - WINDOWS_IMAGE_TARGETS: | ||
| - "vc15" | ||
| - "vs16" | ||
| - "vs17" | ||
|
|
||
| "Windows 2: PHP Images": | ||
| extends: .windows_image_build | ||
| parallel: | ||
| matrix: | ||
| - WINDOWS_IMAGE_TARGETS: | ||
| - "php-8.5" | ||
| - "php-8.4" | ||
| - "php-8.3" | ||
| - "php-8.2" | ||
| - "php-8.1" | ||
| - "php-8.0" | ||
| - "php-7.4" | ||
| - "php-7.3" | ||
| - "php-7.2" | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I noticed 7.0 and 7.1 are dropped from testing above. I assume we are dropping support; if so are these needed?
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'll double check that I fixed them all, but we are not dropping any version support in this PR. What we are intentionally dropping is building 7.0/7.1 for Windows which isn't supported today, but we had various infrastructure around for it. So we are dropping that, because I wasted a nontrivial amount of time trying to get it to work, not realizing we didn't need it! I'm still pulling at the strings to delete everything related to 7.0/7.1, thanks for noticing this one!
However, an AI agent got too eager and deleted support from other platforms too and it slipped past initial review. I've at least partially fixed it, but I'll make sure that Alpine, CentOS, and our Bookworm images all have 7.0/7.1 support before merging.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good call!