Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions .azure/OneBranch.Official.yml
Original file line number Diff line number Diff line change
Expand Up @@ -167,13 +167,11 @@ extends:
config: Release
kernel: "kernel6_8"
tls: quictls
xdp: "-UseXdp"
- template: .azure/obtemplates/build-linux.yml@self
parameters:
config: Debug
kernel: "kernel6_8"
tls: quictls
xdp: "-UseXdp"

- stage: package_linux
displayName: Package Linux
Expand Down
2 changes: 1 addition & 1 deletion .azure/OneBranch.Publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ parameters:
- microsoft-ubuntu-lunar-prod-apt # 23.04 6.2
- microsoft-ubuntu-mantic-prod-apt # 23.10 6.5
- microsoft-debian-bookworm-prod-apt # 12 6.1
# built on ubuntu 24.04 quictls XDP
# built on ubuntu 24.04 quictls
- name: kernel6_8
type: object
default:
Expand Down
2 changes: 0 additions & 2 deletions .azure/OneBranch.PullRequest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -163,13 +163,11 @@ extends:
config: Release
kernel: "kernel6_8"
tls: quictls
xdp: "-UseXdp"
- template: .azure/obtemplates/build-linux.yml@self
parameters:
config: Debug
kernel: "kernel6_8"
tls: quictls
xdp: "-UseXdp"

- stage: package_linux
displayName: Package Linux
Expand Down
3 changes: 1 addition & 2 deletions .azure/obtemplates/build-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ parameters:
tls: 'quictls'
platform: 'linux'
kernel: 'kernel5_15'
xdp: ''

jobs:
- job: ${{ parameters.kernel }}_${{ parameters.config }} # this job name becomes artifact suffix in the build pipeline
Expand Down Expand Up @@ -34,7 +33,7 @@ jobs:
inputs:
pwsh: true
filePath: scripts/build.ps1
arguments: -Tls ${{ parameters.tls }} -Config ${{ parameters.config }} -Platform ${{ parameters.platform }} ${{ parameters.xdp }} -Arch x64 -CI -UseSystemOpenSSLCrypto -OneBranch -OfficialRelease
arguments: -Tls ${{ parameters.tls }} -Config ${{ parameters.config }} -Platform ${{ parameters.platform }} -Arch x64 -CI -UseSystemOpenSSLCrypto -OneBranch -OfficialRelease
- task: PowerShell@2
displayName: arm64
${{ if eq(parameters.kernel, 'kernel5_15') }}:
Expand Down
22 changes: 1 addition & 21 deletions .docker/ubuntu-22.04/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -51,27 +51,7 @@ RUN wget -q https://packages.microsoft.com/config/ubuntu/22.04/packages-microsof

RUN git config --global safe.directory '*'

# Stage 2-1: dependencies for xdp-build
FROM base AS xdp-build

RUN apt-get update -y && apt-get install -y \
&& echo "deb [arch=amd64] http://us.archive.ubuntu.com/ubuntu noble main" > /etc/apt/sources.list.d/xdp.list \
&& apt-get update -y && apt-get install --no-install-recommends -y -t noble \
libnl-3-dev \
libnl-genl-3-dev \
libnl-route-3-dev \
zlib1g-dev \
zlib1g \
pkg-config \
m4 \
libpcap-dev \
libelf-dev \
libc6-dev-i386 \
libxdp-dev \
libbpf-dev \
&& rm -rf /var/lib/apt/lists/*

# Stage 2-2: dependencies for cross-build
# Stage 2: dependencies for cross-build
FROM base AS cross-build

RUN apt-get update && apt-get install -y \
Expand Down
16 changes: 0 additions & 16 deletions .docker/ubuntu-24.04/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -55,25 +55,9 @@ RUN wget -q https://launchpad.net/ubuntu/+archive/primary/+files/libicu72_72.1-3
RUN git config --global safe.directory '*'

# Stage 2: dependencies for cross-build.
# ubuntu 24.04 can install both xdp and arm dependencies
FROM base AS cross-build

RUN apt-get update -y && apt-get install --no-install-recommends -y \
libnl-3-dev \
libnl-genl-3-dev \
libnl-route-3-dev \
zlib1g-dev \
zlib1g \
pkg-config \
m4 \
libpcap-dev \
libelf-dev \
libc6-dev-i386 \
libxdp-dev \
libbpf-dev \
&& rm -rf /var/lib/apt/lists/*

RUN apt-get update && apt-get install -y \
gcc-arm-linux-gnueabihf \
g++-arm-linux-gnueabihf \
binutils-arm-linux-gnueabihf \
Expand Down
12 changes: 4 additions & 8 deletions .github/workflows/build-reuse-unix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,10 +69,6 @@ on:
required: false
default: ''
type: string
xdp:
required: false
default: ''
type: string
iouring:
required: false
default: ''
Expand Down Expand Up @@ -112,17 +108,17 @@ jobs:
- name: Build For Test
if: inputs.build == '-Test'
shell: pwsh
run: scripts/build.ps1 -Config ${{ inputs.config }} -Platform ${{ inputs.plat }} -Arch ${{ inputs.arch }} -Tls ${{ inputs.tls }} -DisablePerf ${{ inputs.static }} ${{ inputs.clang }} ${{ inputs.systemcrypto }} ${{ inputs.codecheck }} ${{ inputs.sanitize }} ${{ inputs.xdp }} ${{ inputs.iouring }} -OneBranch
run: scripts/build.ps1 -Config ${{ inputs.config }} -Platform ${{ inputs.plat }} -Arch ${{ inputs.arch }} -Tls ${{ inputs.tls }} -DisablePerf ${{ inputs.static }} ${{ inputs.clang }} ${{ inputs.systemcrypto }} ${{ inputs.codecheck }} ${{ inputs.sanitize }} ${{ inputs.iouring }} -OneBranch
- name: Build For Perf
if: inputs.build == '-Perf'
shell: pwsh
run: scripts/build.ps1 -Config ${{ inputs.config }} -Platform ${{ inputs.plat }} -Arch ${{ inputs.arch }} -Tls ${{ inputs.tls }} -DisableTools -DisableTest ${{ inputs.static }} ${{ inputs.clang }} ${{ inputs.systemcrypto }} ${{ inputs.codecheck }} ${{ inputs.sanitize }} ${{ inputs.xdp }} ${{ inputs.iouring }}
run: scripts/build.ps1 -Config ${{ inputs.config }} -Platform ${{ inputs.plat }} -Arch ${{ inputs.arch }} -Tls ${{ inputs.tls }} -DisableTools -DisableTest ${{ inputs.static }} ${{ inputs.clang }} ${{ inputs.systemcrypto }} ${{ inputs.codecheck }} ${{ inputs.sanitize }} ${{ inputs.iouring }}
- name: Build
if: inputs.build == ''
shell: pwsh
run: scripts/build.ps1 -Config ${{ inputs.config }} -Platform ${{ inputs.plat }} -Arch ${{ inputs.arch }} -Tls ${{ inputs.tls }} ${{ inputs.static }} ${{ inputs.clang }} ${{ inputs.systemcrypto }} ${{ inputs.codecheck }} ${{ inputs.sanitize }} ${{ inputs.xdp }} ${{ inputs.iouring }} -OneBranch
run: scripts/build.ps1 -Config ${{ inputs.config }} -Platform ${{ inputs.plat }} -Arch ${{ inputs.arch }} -Tls ${{ inputs.tls }} ${{ inputs.static }} ${{ inputs.clang }} ${{ inputs.systemcrypto }} ${{ inputs.codecheck }} ${{ inputs.sanitize }} ${{ inputs.iouring }} -OneBranch
- name: Upload build artifacts
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f
with:
name: ${{ inputs.config }}-${{ inputs.plat }}-${{ inputs.os }}-${{ inputs.arch }}-${{ inputs.tls }}${{ inputs.static }}${{ inputs.clang }}${{ inputs.systemcrypto }}${{ inputs.codecheck }}${{ inputs.sanitize }}${{ inputs.xdp }}${{ inputs.iouring }}${{ inputs.build }}
name: ${{ inputs.config }}-${{ inputs.plat }}-${{ inputs.os }}-${{ inputs.arch }}-${{ inputs.tls }}${{ inputs.static }}${{ inputs.clang }}${{ inputs.systemcrypto }}${{ inputs.codecheck }}${{ inputs.sanitize }}${{ inputs.iouring }}${{ inputs.build }}
path: artifacts
15 changes: 1 addition & 14 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -129,11 +129,10 @@ jobs:
static: ['', '-Static']
clang: ['', '-Clang']
codecheck: ['', '-CodeCheck']
xdp: ['', '-UseXdp']
iouring: ['', '-UseIoUring']

exclude:
# Android doesn't support x86, XDP, Clang, CodeCheck or SystemCrypto
# Android doesn't support x86, Clang, CodeCheck or SystemCrypto
- plat: android
arch: x86
- plat: android
Expand All @@ -154,9 +153,6 @@ jobs:
- os: 'ubuntu-24.04'
tls: 'openssl'
systemcrypto: '-UseSystemOpenSSLCrypto'
# linux xdp is for ubuntu24.04 only for now
- plat: android
xdp: "-UseXdp"
- plat: android
clang: '-Clang'
- plat: android
Expand All @@ -181,19 +177,11 @@ jobs:
systemcrypto: '-UseSystemOpenSSLCrypto'
- os: 'ubuntu-24.04'
systemcrypto: '-UseSystemOpenSSLCrypto'
# Linux xdp is for x64 ubuntu24.04 only for now
- xdp: "-UseXdp"
os: 'ubuntu-22.04'
- xdp: "-UseXdp"
arch: x86
# Linux io_uring is for x64 ubuntu24.04 only for now
- iouring: "-UseIoUring"
os: 'ubuntu-22.04'
- iouring: "-UseIoUring"
arch: x86
# Linux io_uring is incompatible with XDP for now
- iouring: "-UseIoUring"
xdp: "-UseXdp"
uses: ./.github/workflows/build-reuse-unix.yml
with:
config: ${{ matrix.config }}
Expand All @@ -205,7 +193,6 @@ jobs:
static: ${{ matrix.static }}
clang: ${{ matrix.clang }}
codecheck: ${{ matrix.codecheck }}
xdp: ${{ matrix.xdp }}
iouring: ${{ matrix.iouring }}
repo: ${{ github.repository }}

Expand Down
3 changes: 0 additions & 3 deletions .github/workflows/codeql-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,8 @@ jobs:
# Install dependencies and build submodules before starting analysis.
- run: |
sudo apt-add-repository ppa:lttng/stable-2.13
sudo apt-add-repository "deb http://mirrors.kernel.org/ubuntu noble main" -y
sudo apt-get update
sudo apt-get install -y liblttng-ust-dev libnuma-dev
sudo apt-get install -y libxdp-dev libbpf-dev libnl-3-dev libnl-genl-3-dev libnl-route-3-dev zlib1g-dev zlib1g pkg-config m4 clang libpcap-dev libelf-dev
sudo apt-get install -y --no-install-recommends libc6-dev-i386
sudo sh scripts/install-powershell-docker.sh
mkdir build
cd build
Expand Down
13 changes: 6 additions & 7 deletions .github/workflows/dotnet-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ jobs:
matrix:
vec: [
{ plat: "linux", os: "ubuntu-22.04", arch: "x64", tls: "quictls" },
{ plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "quictls", xdp: "-UseXdp" },
{ plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "quictls" },
{ plat: "linux", os: "ubuntu-22.04", arch: "x64", tls: "openssl" },
{ plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "openssl", xdp: "-UseXdp" },
{ plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "openssl" },
]
uses: ./.github/workflows/build-reuse-unix.yml
with:
Expand All @@ -50,7 +50,6 @@ jobs:
os: ${{ matrix.vec.os }}
arch: ${{ matrix.vec.arch }}
tls: ${{ matrix.vec.tls }}
xdp: ${{ matrix.vec.xdp }}
repo: ${{ github.repository }}

build-windows:
Expand Down Expand Up @@ -81,9 +80,9 @@ jobs:
vec: [
{ plat: "windows", os: "windows-2022", arch: "x64", tls: "quictls" },
{ plat: "linux", os: "ubuntu-22.04", arch: "x64", tls: "quictls" },
{ plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "quictls", xdp: "-UseXdp" },
{ plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "quictls" },
{ plat: "linux", os: "ubuntu-22.04", arch: "x64", tls: "openssl" },
{ plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "openssl", xdp: "-UseXdp" },
{ plat: "linux", os: "ubuntu-24.04", arch: "x64", tls: "openssl" },
{ plat: "macos", os: "macos-15", arch: "universal", tls: "quictls" },
{ plat: "macos", os: "macos-15", arch: "universal", tls: "openssl" },
]
Expand All @@ -93,11 +92,11 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Prepare Machine
shell: pwsh
run: scripts/prepare-machine.ps1 -ForTest ${{ matrix.vec.xdp }}
run: scripts/prepare-machine.ps1 -ForTest
- name: Download Build Artifacts
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
with:
name: Debug-${{ matrix.vec.plat }}-${{ matrix.vec.os }}-${{ matrix.vec.arch }}-${{ matrix.vec.tls }}${{ matrix.vec.xdp }}
name: Debug-${{ matrix.vec.plat }}-${{ matrix.vec.os }}-${{ matrix.vec.arch }}-${{ matrix.vec.tls }}
path: artifacts
- uses: actions/setup-dotnet@c2fa09f4bde5ebb9d1777cf28262a3eb3db3ced7
with:
Expand Down
17 changes: 8 additions & 9 deletions .github/workflows/package-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,14 @@ jobs:
{ config: "Release", os: "ubuntu-22.04", arch: "x64", tls: "quictls" },
{ config: "Release", os: "ubuntu-24.04", arch: "arm", tls: "quictls", time64: "-Time64Distro" },
{ config: "Release", os: "ubuntu-24.04", arch: "arm64", tls: "quictls", time64: "-Time64Distro" },
{ config: "Release", os: "ubuntu-24.04", arch: "x64", tls: "quictls", xdp: "-UseXdp", time64: "-Time64Distro" },
{ config: "Release", os: "ubuntu-24.04", arch: "x64", tls: "quictls", time64: "-Time64Distro" },
]
uses: ./.github/workflows/package-reuse-linux.yml
with:
config: ${{ matrix.vec.config }}
os: ${{ matrix.vec.os }}
arch: ${{ matrix.vec.arch }}
tls: ${{ matrix.vec.tls }}
xdp: ${{ matrix.vec.xdp }}
time64: ${{ matrix.vec.time64 }}

test-packages:
Expand All @@ -51,19 +50,19 @@ jobs:
matrix:
vec: [
{ config: "Release", os: "ubuntu-22.04", arch: "x64", tls: "quictls" },
{ config: "Release", os: "ubuntu-24.04", arch: "x64", tls: "quictls", xdp: "-UseXdp" },
{ config: "Release", os: "ubuntu-24.04", arch: "x64", tls: "quictls" },
]
runs-on: ${{ matrix.vec.os }}
steps:
- name: Download Package
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
with:
name: ${{ matrix.vec.config }}-linux-${{ matrix.vec.os }}-${{ matrix.vec.arch }}-${{ matrix.vec.tls }}-UseSystemOpenSSLCrypto${{ matrix.vec.xdp }}
name: ${{ matrix.vec.config }}-linux-${{ matrix.vec.os }}-${{ matrix.vec.arch }}-${{ matrix.vec.tls }}-UseSystemOpenSSLCrypto
path: artifacts
- name: Download Build Artifacts
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
with:
name: Package-${{ matrix.vec.config }}-linux-${{ matrix.vec.os }}-${{ matrix.vec.arch }}-${{ matrix.vec.tls }}-UseSystemOpenSSLCrypto${{ matrix.vec.xdp }}
name: Package-${{ matrix.vec.config }}-linux-${{ matrix.vec.os }}-${{ matrix.vec.arch }}-${{ matrix.vec.tls }}-UseSystemOpenSSLCrypto
path: artifacts
- name: Install Package
run: |
Expand All @@ -89,7 +88,7 @@ jobs:
{ friendlyName: "Ubuntu 22.04 ARM32", config: "Release", os: "ubuntu-22.04", arch: "arm", tls: "quictls", image: "ubuntu:22.04" },
{ friendlyName: "Ubuntu 22.04 ARM64", config: "Release", os: "ubuntu-22.04", arch: "arm64", tls: "quictls", image: "ubuntu:22.04" },
# Ubuntu 24.04 - DEB
{ friendlyName: "Ubuntu 24.04 x64", config: "Release", os: "ubuntu-24.04", arch: "x64", tls: "quictls", image: "ubuntu:24.04", xdp: "-UseXdp" },
{ friendlyName: "Ubuntu 24.04 x64", config: "Release", os: "ubuntu-24.04", arch: "x64", tls: "quictls", image: "ubuntu:24.04" },
{ friendlyName: "Ubuntu 24.04 ARM32", config: "Release", os: "ubuntu-24.04", arch: "arm", tls: "quictls", image: "ubuntu:24.04" },
{ friendlyName: "Ubuntu 24.04 ARM64", config: "Release", os: "ubuntu-24.04", arch: "arm64", tls: "quictls", image: "ubuntu:24.04" },
# Debian 12 - DEB
Expand All @@ -101,7 +100,7 @@ jobs:
{ friendlyName: "Debian 13 ARM32", config: "Release", os: "ubuntu-24.04", arch: "arm", tls: "quictls", image: "debian:trixie" },
{ friendlyName: "Debian 13 ARM64", config: "Release", os: "ubuntu-22.04", arch: "arm64", tls: "quictls", image: "debian:trixie" },
# Azure Linux 3.0 - RPM (no arm32)
{ friendlyName: "Azure Linux 3.0 x64", config: "Release", os: "ubuntu-24.04", arch: "x64", tls: "quictls", image: "mcr.microsoft.com/azurelinux/base/core:3.0", xdp: "-UseXdp" },
{ friendlyName: "Azure Linux 3.0 x64", config: "Release", os: "ubuntu-24.04", arch: "x64", tls: "quictls", image: "mcr.microsoft.com/azurelinux/base/core:3.0" },
{ friendlyName: "Azure Linux 3.0 ARM64", config: "Release", os: "ubuntu-24.04", arch: "arm64", tls: "quictls", image: "mcr.microsoft.com/azurelinux/base/core:3.0" },
# CentOS Stream 9 - RPM (no arm32)
{ friendlyName: "CentOS Stream 9 x64", config: "Release", os: "ubuntu-22.04", arch: "x64", tls: "quictls", image: "quay.io/centos/centos:stream9" },
Expand Down Expand Up @@ -141,12 +140,12 @@ jobs:
- name: Download Package
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
with:
name: Package-${{ matrix.vec.config }}-linux-${{ matrix.vec.os }}-${{ matrix.vec.arch }}-${{ matrix.vec.tls }}-UseSystemOpenSSLCrypto${{ matrix.vec.xdp }}
name: Package-${{ matrix.vec.config }}-linux-${{ matrix.vec.os }}-${{ matrix.vec.arch }}-${{ matrix.vec.tls }}-UseSystemOpenSSLCrypto
path: artifacts
- name: Download Build Artifacts
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
with:
name: ${{ matrix.vec.config }}-linux-${{ matrix.vec.os }}-${{ matrix.vec.arch }}-${{ matrix.vec.tls }}-UseSystemOpenSSLCrypto${{ matrix.vec.xdp }}
name: ${{ matrix.vec.config }}-linux-${{ matrix.vec.os }}-${{ matrix.vec.arch }}-${{ matrix.vec.tls }}-UseSystemOpenSSLCrypto
path: artifacts
- name: Set up QEMU
uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a
Expand Down
11 changes: 3 additions & 8 deletions .github/workflows/package-reuse-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,6 @@ on:
required: false
default: '' # Empty string means build all
type: string
xdp:
required: false
default: ''
type: string
time64:
required: false
default: ''
Expand All @@ -74,7 +70,6 @@ jobs:
systemcrypto: '-UseSystemOpenSSLCrypto' # packages must use libcrypto on system
clang: ${{ inputs.clang }}
build: ${{ inputs.build }}
xdp: ${{ inputs.xdp }}
repo: ${{ github.repository }}

package:
Expand All @@ -88,11 +83,11 @@ jobs:
fetch-depth: 0
- name: Prepare Machine
shell: pwsh
run: scripts/prepare-machine.ps1 -ForBuild ${{ inputs.xdp }}
run: scripts/prepare-machine.ps1 -ForBuild
- name: Download Build Artifacts
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
with:
name: ${{ inputs.config }}-linux-${{ inputs.os }}-${{ inputs.arch }}-${{ inputs.tls }}-UseSystemOpenSSLCrypto${{ inputs.sanitize }}${{ inputs.xdp }}${{ inputs.build }}
name: ${{ inputs.config }}-linux-${{ inputs.os }}-${{ inputs.arch }}-${{ inputs.tls }}-UseSystemOpenSSLCrypto${{ inputs.sanitize }}${{ inputs.build }}
path: artifacts
- name: Extract binaries # they are tar'd to preserve permissions and symlinks.
run: |
Expand All @@ -105,5 +100,5 @@ jobs:
- name: Upload build artifacts
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f
with:
name: Package-${{ inputs.config }}-linux-${{ inputs.os }}-${{ inputs.arch }}-${{ inputs.tls }}-UseSystemOpenSSLCrypto${{ inputs.sanitize }}${{ inputs.xdp }}${{ inputs.build }}
name: Package-${{ inputs.config }}-linux-${{ inputs.os }}-${{ inputs.arch }}-${{ inputs.tls }}-UseSystemOpenSSLCrypto${{ inputs.sanitize }}${{ inputs.build }}
path: artifacts/dist
Loading
Loading