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