blob: 636c5746eae158a56e2539a0a2a756dff4ba32e6 [file] [log] [blame]
env:
global:
- secure: "Aa+7RLfRyfdH2ENH0fyjI7Waq7/9XSk1LP6sDwG0zG1uhmus/z0QaiaCd027mFY3V25Kzfd6TVzL92dp3U63+3Qn3hHle3oNdu1jqaSBHB1L7R+IS6tLW0Bny5Zd7mMRNbVO642qvmuZo8A5nuu/WHp3w91WI4rp1rhULm/uhQ/+7Sx7mDSR1vRJyIeB7mETzRpckz0cUiZU656AB1hRsMVzkm+no9urHcnEP6AcPukVlWGgsdcBloMoczwp8M/cnvrGg8SuroEnu82i3eY5TwmXBhtmFa06WUaiIafT8PcB+JVADwunS1nJ7tTGCjInVQY5qNogPJxdr97E9vuHJGMDpdCkDuvTFaF2FdnXuvli3nUr2w7mP3t991ocWQW9PMRUTJe+/pFJ935puy8zD797UKUR3d2GwZRHIpwbzmcP+QQ1wG3odoFk4i/tEUAHtKirh6VglQyp9BFIaIX7TuuqIyRqxcqHVsVfDVVouHBIYuy7uRDd7YjmoF3IqqIKsHEFBnMT9GSQeifjJAPYEOoPXfzoa1Ya8PbmSdYtVR9nyjIHHLv/xDYxG3ulBgmz1ieGe9pGNgqLmi6GSiyJ/Vj+5L+1bJGrVMDELHQR/bVdZMmoAp6y8f397hace2qHKDBVN4AVfDWeCiTs1NUtgrJVIpj3Xt788RrnIfvuhF4="
- secure: "CE2MWJZ+EtmaOheaGBd5XNgV7A/AGLpQ1Lct2R4v8BG3pXFFAM9uJEvpyTXBFx40gzD8HTBHbNRw1Ae+hP/Hz3M8o96jrdVsPlojKaShaOqoalYCghnfxDSd6WsstJdTYUk1iKhU3bSin/PHhDHe5i/dpwTay4DqSCX4MWaJPpItRIwiPpd8ekVGrHb/DkuTpEWY35Dg+9oao9KnB5c/D1oHLvInRMCivtpPpKRxNWkznOGprQALGIPmnHupBQ0zu6H7+K7TE/DT/HmocQd1h6HEba6DGkKqXU79NgS3uz2EFfgdhnIvTlxWTZFtkET9lym5mqjyuvwkIDsEDfGmk7dGjT0MFe2/9RRMxeNjINA1dlat4riUZ+a5dWqj/7uSvcOgTv0lqT5qitHbtqI0Id/TMaZlVE9r1x+vSTy/7ISzwhVPOwFa6SZJFwrHVBqnPZKP8gajpCcDJMKdFjfuLNZMF/NlDhj78S9Hyr0CUUoCKcPYiCxyCPfV7LzNMtlaynKJG2A+z0vLqZ8YSlTrqBfjuVzrq8EDJyJWMRuik3rkNe/GOFzUgQ+nBxgOzPT0Y5CPlEQNYW991pRz2r5gXhR+MSpjF3ytSrMCYYfIwymwqxb9oX4EvPCHCrWCqT4lebQyfPO8Pp8tDeV3XeRBM5a6KjOD0WfZ5pRlZ/REWrM="
addons:
apt:
packages: &linux_deps
- libev-dev
- uthash-dev
- protobuf-compiler
matrix:
include:
- name: "stable Linux x86_64/x86"
language: rust
rust: stable
env:
DEPLOY_BUILD=yes
TARGET_32=i686-unknown-linux-gnu
addons:
apt:
packages:
- [*linux_deps, gcc-multilib, g++-multilib]
install:
- rustup component add clippy
- rustup target add $TARGET_32
script:
- RUSTFLAGS="-D warnings" cargo test --verbose
- RUSTFLAGS="-D warnings" cargo package --verbose --allow-dirty
- cargo clippy --examples -- -D warnings
- cargo doc --no-deps
- make -C examples
# http3_test
- RUSTFLAGS="-D warnings" cargo test --no-run --verbose --manifest-path tools/http3_test/Cargo.toml
- cargo clippy --manifest-path tools/http3_test/Cargo.toml -- -D warnings
# qlog
- RUSTFLAGS="-D warnings" cargo test --verbose --manifest-path tools/qlog/Cargo.toml
- cargo clippy --manifest-path tools/qlog/Cargo.toml -- -D warnings
# quiche-apps
- RUSTFLAGS="-D warnings" cargo build --verbose --manifest-path tools/apps/Cargo.toml
- cargo clippy --manifest-path tools/apps/Cargo.toml -- -D warnings
# x86 cross build
- RUSTFLAGS="-D warnings" cargo build --target=$TARGET_32
# docker
- make docker-build
- name: "nightly Linux x86_64"
language: rust
rust: nightly
addons:
apt:
packages:
- [*linux_deps]
install:
- rustup component add rustfmt
- cargo install cargo-fuzz
script:
- RUSTFLAGS="-D warnings" cargo test --verbose
- RUSTFLAGS="-D warnings" cargo package --verbose --allow-dirty
- cargo fmt -- --check
- cargo doc --no-deps
- make -C examples
# fuzzers
- RUSTFLAGS="-D warnings" cargo fuzz run packet_recv_client -- -runs=1
- RUSTFLAGS="-D warnings" cargo fuzz run packet_recv_server -- -runs=1
- RUSTFLAGS="-D warnings" cargo fuzz run qpack_decode -- -runs=1
- cargo fmt --manifest-path fuzz/Cargo.toml -- --check
# http3_test
- RUSTFLAGS="-D warnings" cargo test --no-run --verbose --manifest-path tools/http3_test/Cargo.toml
- cargo fmt --manifest-path tools/http3_test/Cargo.toml -- --check
# qlog
- RUSTFLAGS="-D warnings" cargo test --verbose --manifest-path tools/qlog/Cargo.toml
- cargo fmt --manifest-path tools/qlog/Cargo.toml -- --check
# quiche-apps
- RUSTFLAGS="-D warnings" cargo build --verbose --manifest-path tools/apps/Cargo.toml
- cargo fmt --manifest-path tools/apps/Cargo.toml -- --check
- name: "stable macOS + iOS"
language: rust
rust: stable
os: osx
osx_image: xcode11.2
install:
- rustup target add aarch64-apple-ios x86_64-apple-ios
script:
# macOS
- RUSTFLAGS="-D warnings" cargo build --verbose
- RUSTFLAGS="-D warnings" cargo test --verbose
# iOS
- cargo install --force cargo-lipo
- RUSTFLAGS="-D warnings" cargo lipo --verbose
- name: "stable Windows x86_64/x86"
language: rust
rust: stable
os: windows
env:
TARGET_64=x86_64-pc-windows-msvc
TARGET_32=i686-pc-windows-msvc
before_install:
- choco install nasm
# Update $PATH
- export PATH="$(powershell -Command '("Process", "Machine" | % { [Environment]::GetEnvironmentVariable("PATH", $_) -Split ";" -Replace "\\$", "" } | Select -Unique | % { cygpath $_ }) -Join ":"')"
install:
- rustup target add $TARGET_32 $TARGET_64
script:
- RUSTFLAGS="-D warnings" cargo build --verbose --target=$TARGET_64
- RUSTFLAGS="-D warnings" cargo test --verbose --target=$TARGET_64
- RUSTFLAGS="-D warnings" cargo build --verbose --target=$TARGET_32
- RUSTFLAGS="-D warnings" cargo test --verbose --target=$TARGET_32
- name: "stable Android"
language: rust
rust: stable
env:
NDK_VER_OLD=r13b
NDK_VER=r21
install:
- rustup target add aarch64-linux-android arm-linux-androideabi armv7-linux-androideabi i686-linux-android
- cargo install cargo-ndk
script:
#
# Old NDK. Here we use 13b
#
- NDK_URL=https://dl.google.com/android/repository/android-ndk-%s-linux-x86_64.zip
- curl -ondk.zip -q $(printf $NDK_URL $NDK_VER_OLD)
- unzip -q ndk.zip -d $HOME
- export ANDROID_NDK_HOME=$HOME/android-ndk-$NDK_VER_OLD
# Setup android toolchain
- export TOOLCHAIN_DIR=$(pwd)/toolchain
- mkdir -p $TOOLCHAIN_DIR
- tools/android/setup_android.sh
- tools/android/build_android.sh --verbose --features ndk-old-gcc
- rm -fr $TOOLCHAIN_DIR && rm -f .cargo/config
- cargo clean
#
# NDK 19 or higher. Here we use 21 (long term support)
#
- curl -ondk.zip -q $(printf $NDK_URL $NDK_VER)
- unzip -q ndk.zip -d $HOME
- export ANDROID_NDK_HOME=$HOME/android-ndk-$NDK_VER
- tools/android/build_android_ndk19.sh --verbose
- name: "NGINX"
language: rust
rust: stable
env:
NGINX_VER=1.16.1
addons:
apt:
packages:
- [*linux_deps]
script:
- curl -O https://nginx.org/download/nginx-$NGINX_VER.tar.gz
- tar xzf nginx-$NGINX_VER.tar.gz
- |
cd nginx-$NGINX_VER &&
patch -p01 < ../extras/nginx/nginx-1.16.patch &&
./configure --with-http_ssl_module --with-http_v2_module --with-http_v3_module --with-openssl="../deps/boringssl" --with-quiche=".." --with-debug &&
make -j`nproc`
- objs/nginx -V
deploy:
# publish docs
- provider: pages
fqdn: docs.quic.tech
local-dir: target/doc
skip-cleanup: true
github-token: $GITHUB_TOKEN
on:
branch: master
condition: $DEPLOY_BUILD = yes
# publish Docker images
- provider: script
skip-cleanup: true
script: >-
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin &&
make docker-publish
on:
branch: master
condition: $DEPLOY_BUILD = yes