From 14a3167bbb9baeb0c3d9332d1d4638cff63c9ed7 Mon Sep 17 00:00:00 2001 From: ami-GS <1991.daiki@gmail.com> Date: Tue, 4 Jun 2024 20:10:50 -0700 Subject: [PATCH] more ubuntu24.04 on yml files --- .github/workflows/build-reuse-unix.yml | 1 + .github/workflows/build.yml | 7 ++++++- .github/workflows/docker-publish-xcomp.yml | 4 +++- .github/workflows/dotnet-test.yml | 2 ++ .github/workflows/package-linux.yml | 4 ++++ .github/workflows/stress.yml | 1 + .github/workflows/test.yml | 2 ++ docs/BUILD.md | 2 +- scripts/prepare-machine.ps1 | 19 ++++++++++++------- 9 files changed, 32 insertions(+), 10 deletions(-) diff --git a/.github/workflows/build-reuse-unix.yml b/.github/workflows/build-reuse-unix.yml index 6e70fdb1679..8e1e0286afc 100644 --- a/.github/workflows/build-reuse-unix.yml +++ b/.github/workflows/build-reuse-unix.yml @@ -32,6 +32,7 @@ on: # options: # - ubuntu-20.04 # - ubuntu-22.04 + # - ubuntu-24.04 # - macos-12 arch: required: false diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9f98aa9d68e..58c3084b582 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -102,7 +102,7 @@ jobs: matrix: config: ['Debug', 'Release'] plat: [linux, android] - os: ['ubuntu-20.04', 'ubuntu-22.04'] + os: ['ubuntu-20.04', 'ubuntu-22.04', 'ubuntu-24.04'] arch: [x86, x64] tls: [openssl, openssl3] systemcrypto: ['', '-UseSystemOpenSSLCrypto'] @@ -127,6 +127,11 @@ jobs: os: 'ubuntu-22.04' tls: 'openssl' systemcrypto: '-UseSystemOpenSSLCrypto' + # No openssl system crypto on ubuntu-24.04 + - plat: linux + os: 'ubuntu-24.04' + tls: 'openssl' + systemcrypto: '-UseSystemOpenSSLCrypto' # linux xdp is for ubuntu22.04 only for now - plat: android xdp: "-UseXdp" diff --git a/.github/workflows/docker-publish-xcomp.yml b/.github/workflows/docker-publish-xcomp.yml index 75b20c367de..1d3936bdd27 100644 --- a/.github/workflows/docker-publish-xcomp.yml +++ b/.github/workflows/docker-publish-xcomp.yml @@ -7,12 +7,14 @@ on: - .github/workflows/docker-publish-xcomp.yml - .docker/ubuntu-20.04/* - .docker/ubuntu-22.04/* + - .docker/ubuntu-24.04/* pull_request: branches: [ main ] paths: - .github/workflows/docker-publish-xcomp.yml - .docker/ubuntu-20.04/* - .docker/ubuntu-22.04/* + - .docker/ubuntu-24.04/* permissions: read-all @@ -27,7 +29,7 @@ jobs: strategy: fail-fast: false matrix: - version: ['20.04', '22.04'] + version: ['20.04', '22.04', '24.04'] target: ['x86_64', 'arm'] name: Build diff --git a/.github/workflows/dotnet-test.yml b/.github/workflows/dotnet-test.yml index 9c9bde501b5..dc3eb9999d3 100644 --- a/.github/workflows/dotnet-test.yml +++ b/.github/workflows/dotnet-test.yml @@ -35,6 +35,7 @@ jobs: vec: [ { plat: "linux", os: "ubuntu-20.04", arch: "x64", tls: "openssl" }, { plat: "linux", os: "ubuntu-22.04", arch: "x64", tls: "openssl3", xdp: "-UseXdp" }, + { plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "openssl3", xdp: "-UseXdp" }, ] uses: ./.github/workflows/build-reuse-unix.yml with: @@ -74,6 +75,7 @@ jobs: { plat: "windows", os: "windows-2022", arch: "x64", tls: "openssl3" }, { plat: "linux", os: "ubuntu-20.04", arch: "x64", tls: "openssl" }, { plat: "linux", os: "ubuntu-22.04", arch: "x64", tls: "openssl3", xdp: "-UseXdp" }, + { plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "openssl3", xdp: "-UseXdp" }, { plat: "macos", os: "macos-12", arch: "universal", tls: "openssl" }, ] runs-on: ${{ matrix.vec.os }} diff --git a/.github/workflows/package-linux.yml b/.github/workflows/package-linux.yml index 658d587c507..3be5b14bd45 100644 --- a/.github/workflows/package-linux.yml +++ b/.github/workflows/package-linux.yml @@ -33,6 +33,9 @@ jobs: { config: "Release", os: "ubuntu-22.04", arch: "arm", tls: "openssl3" }, { config: "Release", os: "ubuntu-22.04", arch: "arm64", tls: "openssl3" }, { config: "Release", os: "ubuntu-22.04", arch: "x64", tls: "openssl3", xdp: "-UseXdp" }, + { config: "Release", os: "ubuntu-24.04", arch: "arm", tls: "openssl3" }, + { config: "Release", os: "ubuntu-24.04", arch: "arm64", tls: "openssl3" }, + { config: "Release", os: "ubuntu-24.04", arch: "x64", tls: "openssl3", xdp: "-UseXdp" }, ] uses: ./.github/workflows/package-reuse-linux.yml with: @@ -52,6 +55,7 @@ jobs: vec: [ { config: "Release", os: "ubuntu-20.04", arch: "x64", tls: "openssl" }, { config: "Release", os: "ubuntu-22.04", arch: "x64", tls: "openssl3", xdp: "-UseXdp" }, + { config: "Release", os: "ubuntu-24.04", arch: "x64", tls: "openssl3", xdp: "-UseXdp" }, ] steps: - name: Checkout repository diff --git a/.github/workflows/stress.yml b/.github/workflows/stress.yml index 02ec441ad7f..706d2274045 100644 --- a/.github/workflows/stress.yml +++ b/.github/workflows/stress.yml @@ -81,6 +81,7 @@ jobs: # TODO: I don't think this actually testing XDP, since there is no unix XDP builds above. # { config: "Debug", plat: "linux", os: "ubuntu-22.04", arch: "x64", tls: "openssl3", xdp: "-UseXdp", build: "-Test" }, { config: "Debug", plat: "linux", os: "ubuntu-24.04", arch: "x64", sanitize: "-Sanitize", build: "-Test" }, + { config: "Debug", plat: "linux", os: "ubuntu-24.04", arch: "x64", sanitize: "-Sanitize", build: "-Test", xdp: "-UseXdp" }, { config: "Debug", plat: "macos", os: "macos-12", arch: "x64", tls: "openssl", build: "-Test" }, { config: "Debug", plat: "macos", os: "macos-12", arch: "x64", tls: "openssl3", build: "-Test" }, { config: "Debug", plat: "windows", os: "windows-2022", arch: "x64", tls: "schannel", sanitize: "-Sanitize", build: "-Test" }, diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index cb637054122..636b8f8bc79 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -74,6 +74,7 @@ jobs: { config: "Debug", plat: "linux", os: "ubuntu-22.04", arch: "x64", tls: "openssl3", build: "-Test", xdp: "-UseXdp" }, { config: "Debug", plat: "linux", os: "ubuntu-22.04", arch: "x64", tls: "openssl3", systemcrypto: "-UseSystemOpenSSLCrypto", sanitize: "-Sanitize", build: "-Test" }, { config: "Debug", plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "openssl3", systemcrypto: "-UseSystemOpenSSLCrypto", sanitize: "-Sanitize", build: "-Test" }, + { config: "Debug", plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "openssl3", systemcrypto: "-UseSystemOpenSSLCrypto", sanitize: "-Sanitize", build: "-Test", xdp: "-UseXdp" }, ] uses: ./.github/workflows/build-reuse-unix.yml with: @@ -102,6 +103,7 @@ jobs: { config: "Debug", plat: "linux", os: "ubuntu-22.04", arch: "x64", tls: "openssl3", xdp: "-UseXdp", build: "-Test" }, { config: "Debug", plat: "linux", os: "ubuntu-22.04", arch: "x64", tls: "openssl3", systemcrypto: "-UseSystemOpenSSLCrypto", sanitize: "-Sanitize", build: "-Test" }, { config: "Debug", plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "openssl3", systemcrypto: "-UseSystemOpenSSLCrypto", sanitize: "-Sanitize", build: "-Test" }, + { config: "Debug", plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "openssl3", systemcrypto: "-UseSystemOpenSSLCrypto", sanitize: "-Sanitize", build: "-Test", xdp: "-UseXdp" }, { config: "Debug", plat: "windows", os: "windows-2019", arch: "x64", tls: "openssl", build: "-Test" }, { config: "Debug", plat: "windows", os: "windows-2019", arch: "x64", tls: "openssl3", build: "-Test" }, { config: "Debug", plat: "windows", os: "windows-2022", arch: "x64", tls: "schannel", sanitize: "-Sanitize", build: "-Test" }, diff --git a/docs/BUILD.md b/docs/BUILD.md index 47c417bbde9..6caa5164d15 100644 --- a/docs/BUILD.md +++ b/docs/BUILD.md @@ -200,7 +200,7 @@ $ pwsh ./scripts/build.ps1 -UseXdp `./scripts/prepare-machine.ps1` internally does the below commands. This might break your environment. ```sh -# for libxdp v1.4.2 +# for libxdp v1.4.2 on Ubuntu 22.04. Ubuntu 24.04 doesn't need this step sudo apt-add-repository "deb http://mirrors.kernel.org/ubuntu noble main" -y # install runtime dependencies diff --git a/scripts/prepare-machine.ps1 b/scripts/prepare-machine.ps1 index 1b5aa32ef6a..9bc706b1dac 100644 --- a/scripts/prepare-machine.ps1 +++ b/scripts/prepare-machine.ps1 @@ -100,9 +100,10 @@ Set-StrictMode -Version 'Latest' $PSDefaultParameterValues['*:ErrorAction'] = 'Stop' $ProgressPreference = 'SilentlyContinue' -if ($IsLinux -and $UseXdp) { - $IsUbuntu2404 = (Get-Content -Path /etc/os-release | Select-String -Pattern "24.04") -ne $null - if (!$IsUbuntu2404 -and !$ForceXdpInstall) { +$IsUbuntu2404 = $false +if ($IsLinux) { + $IsUbuntu2404 = (Get-Content -Path /etc/os-release | Select-String -Pattern "24.04") -ne $null + if ($UseXdp -and !$IsUbuntu2404 -and !$ForceXdpInstall) { Write-Host "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! WARN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" Write-Host "Linux XDP installs dependencies from Ubuntu 24.04 packages, which should affect your environment" Write-Host "You need to understand the impact of this on your environment before proceeding" @@ -530,8 +531,10 @@ if ($IsLinux) { # XDP dependencies if ($UseXdp) { sudo apt-get -y install --no-install-recommends libc6-dev-i386 # for building xdp programs - sudo apt-add-repository "deb http://mirrors.kernel.org/ubuntu noble main" -y - sudo apt-get update -y + if (!$IsUbuntu2404) { + sudo apt-add-repository "deb http://mirrors.kernel.org/ubuntu noble main" -y + sudo apt-get update -y + } sudo apt-get -y install libxdp-dev libbpf-dev sudo apt-get -y install libnl-3-dev libnl-genl-3-dev libnl-route-3-dev zlib1g-dev zlib1g pkg-config m4 clang libpcap-dev libelf-dev } @@ -544,8 +547,10 @@ if ($IsLinux) { sudo apt-get install -y liblttng-ust-dev sudo apt-get install -y gdb if ($UseXdp) { - sudo apt-add-repository "deb http://mirrors.kernel.org/ubuntu noble main" -y - sudo apt-get update -y + if (!$IsUbuntu2404) { + sudo apt-add-repository "deb http://mirrors.kernel.org/ubuntu noble main" -y + sudo apt-get update -y + } sudo apt-get install -y libxdp1 libbpf1 sudo apt-get install -y libnl-3-200 libnl-route-3-200 libnl-genl-3-200 sudo apt-get install -y iproute2 iptables