| 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 = "" |