blob: 6dc629eb1735c7febf583af41de5ec0b5b62d06e [file] [log] [blame]
addons:
apt:
packages:
- libev-dev
- protobuf-compiler
- uthash-dev
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
# 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
- 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
# 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 cargo-lipo
script:
- RUSTFLAGS="-D warnings" cargo lipo --release --verbose
- language: rust
rust: stable
os: windows
before_install:
- choco install golang nasm
# Update $PATH
- export PATH="$(powershell -Command '("Process", "Machine" | % { [Environment]::GetEnvironmentVariable("PATH", $_) -Split ";" -Replace "\\$", "" } | Select -Unique | % { cygpath $_ }) -Join ":"')"
script:
- RUSTFLAGS="-D warnings" cargo build --release --verbose
- RUSTFLAGS="-D warnings" cargo test --verbose
- 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
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 = ""