blob: 012dc2344d4fea270e8990f88407314d543567f1 [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:
- libev-dev
- protobuf-compiler
- uthash-dev
cache: cargo
matrix:
include:
- language: rust
rust: stable
before_install:
# Install and use the current stable release of Go
- gimme --list
- eval "$(gimme stable)"
- gimme --list
install:
- rustup component add clippy
script:
- RUSTFLAGS="-D warnings" cargo build --release --verbose
- 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
# quic-trace-log
- RUSTFLAGS="-D warnings" cargo build --release --verbose --manifest-path tools/quic-trace-log/Cargo.toml
- cargo clippy --manifest-path tools/quic-trace-log/Cargo.toml -- -D warnings
- name: "Docker images"
env:
DOCKER_BUILD=YES
script:
- make -C extras/docker
- language: rust
rust: nightly
before_install:
# Install and use the current stable release of Go
- gimme --list
- eval "$(gimme stable)"
- gimme --list
install:
- rustup component add rustfmt
- cargo install cargo-fuzz
script:
- RUSTFLAGS="-D warnings" cargo build --release --verbose
- 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
# quic-trace-log
- RUSTFLAGS="-D warnings" cargo build --release --verbose --manifest-path tools/quic-trace-log/Cargo.toml
- cargo fmt --manifest-path tools/quic-trace-log/Cargo.toml -- --check
- language: rust
rust: stable
os: osx
script:
- RUSTFLAGS="-D warnings" cargo build --release --verbose
- RUSTFLAGS="-D warnings" cargo test --verbose
- language: rust
rust: stable
os: osx
osx_image: xcode11.2
install:
- rustup target add aarch64-apple-ios x86_64-apple-ios
- cargo install --force cargo-lipo
script:
- RUSTFLAGS="-D warnings" cargo lipo --release --verbose
- language: rust
rust: stable
os: windows
env:
TARGET=x86_64-pc-windows-msvc
before_install:
- choco install golang nasm
# Update $PATH
- export PATH="$(powershell -Command '("Process", "Machine" | % { [Environment]::GetEnvironmentVariable("PATH", $_) -Split ";" -Replace "\\$", "" } | Select -Unique | % { cygpath $_ }) -Join ":"')"
- rustup target add $TARGET
script:
- RUSTFLAGS="-D warnings" cargo build --release --verbose --target=$TARGET
- RUSTFLAGS="-D warnings" cargo test --verbose --target=$TARGET
- language: rust
rust: stable
os: windows
env:
TARGET=i686-pc-windows-msvc
before_install:
- choco install golang nasm
# Update $PATH
- export PATH="$(powershell -Command '("Process", "Machine" | % { [Environment]::GetEnvironmentVariable("PATH", $_) -Split ";" -Replace "\\$", "" } | Select -Unique | % { cygpath $_ }) -Join ":"')"
- rustup target add $TARGET
script:
- RUSTFLAGS="-D warnings" cargo build --release --verbose --target=$TARGET
- RUSTFLAGS="-D warnings" cargo test --verbose --target=$TARGET
- language: rust
rust: stable
env:
NGINX_VER=1.16.1
before_install:
# Install and use the current stable release of Go
- gimme --list
- eval "$(gimme stable)"
- gimme --list
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=".." &&
make -j`nproc`
- language: android
dist: trusty
env:
NDK_VER=r13b
CMAKE_VER=3.6.4111459
android:
components:
- build-tools-26.0.1
# Minimum API level supported
- android-21
install:
# Install rust manually
- curl https://build.travis-ci.org/files/rustup-init.sh -sSf | sh -s -- -y --default-toolchain stable
- export PATH=$HOME/.cargo/bin:$PATH
- rustup default stable
- rustup target add aarch64-linux-android arm-linux-androideabi armv7-linux-androideabi i686-linux-android
# Additional Android components
- echo y | sdkmanager "cmake;$CMAKE_VER"
- export PATH=$ANDROID_HOME/cmake/$CMAKE_VER/bin/:$PATH
# NDK download and install
- NDK_URL=https://dl.google.com/android/repository/android-ndk-%s-linux-x86_64.zip
- curl -ondk.zip -q $(printf $NDK_URL $NDK_VER)
- unzip -q ndk.zip -d $HOME
- export ANDROID_NDK_HOME=$HOME/android-ndk-$NDK_VER
# Setup android toolchain
- export TOOLCHAIN_DIR=$(pwd)/toolchain
- mkdir -p $TOOLCHAIN_DIR
- tools/setup_android.sh
script:
- tools/build_android.sh --release --verbose
- name: "x86 cross-build"
language: rust
rust: stable
env:
TARGET=i686-unknown-linux-gnu
before_install:
# Install and use the current stable release of Go
- gimme --list
- eval "$(gimme stable)"
- gimme --list
# Install x86 Rust target for cross-building
- rustup target add $TARGET
addons:
apt:
packages:
- gcc-multilib
- g++-multilib
script:
- RUSTFLAGS="-D warnings" cargo build --target=$TARGET
deploy:
- provider: pages
fqdn: docs.quic.tech
local-dir: target/doc
skip-cleanup: true
github-token: $GITHUB_TOKEN
on:
branch: master
condition: $TRAVIS_RUST_VERSION = stable && $TRAVIS_OS_NAME = linux && $NGINX_VER = "" && TARGET = ""
# publish docker images on master
- provider: script
skip-cleanup: true
script: >-
echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USERNAME" --password-stdin &&
make -C extras/docker publish
on:
branch: master
condition: $DOCKER_BUILD = "YES"