| on: [push, pull_request] |
| |
| name: Stable |
| |
| env: |
| RUSTFLAGS: "-D warnings" |
| TOOLCHAIN: "stable" |
| |
| jobs: |
| quiche: |
| runs-on: ubuntu-latest |
| # Only run on "pull_request" event for external PRs. This is to avoid |
| # duplicate builds for PRs created from internal branches. |
| if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository |
| steps: |
| - name: Checkout sources |
| uses: actions/checkout@v2 |
| with: |
| submodules: 'recursive' |
| |
| - name: Install stable toolchain |
| uses: actions-rs/toolchain@v1 |
| with: |
| profile: minimal |
| toolchain: ${{ env.TOOLCHAIN }} |
| components: clippy |
| override: true |
| |
| - name: Install dependencies |
| run: sudo apt-get install libev-dev uthash-dev |
| |
| - name: Run cargo test |
| uses: actions-rs/cargo@v1 |
| with: |
| command: test |
| args: --tests --examples --verbose --features ffi,qlog |
| |
| - name: Run cargo package |
| uses: actions-rs/cargo@v1 |
| with: |
| command: package |
| args: --verbose --allow-dirty |
| |
| - name: Run cargo clippy |
| uses: actions-rs/cargo@v1 |
| with: |
| command: clippy |
| args: --examples -- -D warnings |
| |
| - name: Run cargo doc |
| uses: actions-rs/cargo@v1 |
| with: |
| command: doc |
| args: --no-deps |
| |
| - name: Build C examples |
| run: make -C examples |
| |
| quiche_macos: |
| runs-on: macos-latest |
| # Only run on "pull_request" event for external PRs. This is to avoid |
| # duplicate builds for PRs created from internal branches. |
| if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository |
| steps: |
| - name: Checkout sources |
| uses: actions/checkout@v2 |
| with: |
| submodules: 'recursive' |
| |
| - name: Install stable toolchain |
| uses: actions-rs/toolchain@v1 |
| with: |
| profile: minimal |
| toolchain: ${{ env.TOOLCHAIN }} |
| override: true |
| |
| - name: Run cargo test |
| uses: actions-rs/cargo@v1 |
| with: |
| command: test |
| args: --tests --examples --verbose --features ffi,qlog |
| |
| quiche_ios: |
| runs-on: macos-latest |
| strategy: |
| matrix: |
| target: ["x86_64-apple-ios", "aarch64-apple-ios"] |
| # Only run on "pull_request" event for external PRs. This is to avoid |
| # duplicate builds for PRs created from internal branches. |
| if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository |
| steps: |
| - name: Checkout sources |
| uses: actions/checkout@v2 |
| with: |
| submodules: 'recursive' |
| |
| - name: Install stable toolchain |
| uses: actions-rs/toolchain@v1 |
| with: |
| profile: minimal |
| toolchain: ${{ env.TOOLCHAIN }} |
| target: ${{ matrix.target }} |
| override: true |
| |
| - name: Run cargo build |
| uses: actions-rs/cargo@v1 |
| with: |
| command: build |
| args: --target=${{ matrix.target }} --verbose |
| |
| quiche_windows: |
| runs-on: windows-latest |
| strategy: |
| matrix: |
| target: ["x86_64-pc-windows-msvc", "i686-pc-windows-msvc"] |
| # Only run on "pull_request" event for external PRs. This is to avoid |
| # duplicate builds for PRs created from internal branches. |
| if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository |
| steps: |
| - name: Checkout sources |
| uses: actions/checkout@v2 |
| with: |
| submodules: 'recursive' |
| |
| - name: Install stable toolchain |
| uses: actions-rs/toolchain@v1 |
| with: |
| profile: minimal |
| toolchain: ${{ env.TOOLCHAIN }} |
| target: ${{ matrix.target }} |
| override: true |
| |
| - name: Install dependencies |
| uses: crazy-max/ghaction-chocolatey@v1 |
| with: |
| args: install nasm |
| |
| - name: Run cargo test |
| uses: actions-rs/cargo@v1 |
| with: |
| command: test |
| args: --target=${{ matrix.target }} --tests --examples --verbose --features ffi,qlog |
| |
| quiche_multiarch: |
| runs-on: ubuntu-latest |
| strategy: |
| matrix: |
| target: ["aarch64-unknown-linux-gnu","armv7-unknown-linux-gnueabihf","i686-unknown-linux-gnu"] |
| # Only run on "pull_request" event for external PRs. This is to avoid |
| # duplicate builds for PRs created from internal branches. |
| if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository |
| steps: |
| - name: Checkout sources |
| uses: actions/checkout@v2 |
| with: |
| submodules: 'recursive' |
| |
| - name: Install stable toolchain |
| uses: actions-rs/toolchain@v1 |
| with: |
| profile: minimal |
| toolchain: ${{ env.TOOLCHAIN }} |
| target: ${{ matrix.target }} |
| override: true |
| |
| - name: Run cargo test |
| uses: actions-rs/cargo@v1 |
| with: |
| command: test |
| args: --target=${{ matrix.target }} --tests --examples --verbose --features ffi,qlog |
| use-cross: true |
| |
| apps: |
| runs-on: ubuntu-latest |
| # Only run on "pull_request" event for external PRs. This is to avoid |
| # duplicate builds for PRs created from internal branches. |
| if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository |
| steps: |
| - name: Checkout sources |
| uses: actions/checkout@v2 |
| with: |
| submodules: 'recursive' |
| |
| - name: Install stable toolchain |
| uses: actions-rs/toolchain@v1 |
| with: |
| profile: minimal |
| toolchain: ${{ env.TOOLCHAIN }} |
| override: true |
| |
| - name: Run cargo build |
| uses: actions-rs/cargo@v1 |
| with: |
| command: build |
| args: --verbose --manifest-path=tools/apps/Cargo.toml |
| |
| - name: Run cargo clippy |
| uses: actions-rs/cargo@v1 |
| with: |
| command: clippy |
| args: --manifest-path=tools/apps/Cargo.toml -- -D warnings |
| |
| qlog: |
| runs-on: ubuntu-latest |
| # Only run on "pull_request" event for external PRs. This is to avoid |
| # duplicate builds for PRs created from internal branches. |
| if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository |
| steps: |
| - name: Checkout sources |
| uses: actions/checkout@v2 |
| with: |
| submodules: 'recursive' |
| |
| - name: Install stable toolchain |
| uses: actions-rs/toolchain@v1 |
| with: |
| profile: minimal |
| toolchain: ${{ env.TOOLCHAIN }} |
| override: true |
| |
| - name: Run cargo test |
| uses: actions-rs/cargo@v1 |
| with: |
| command: test |
| args: --verbose --manifest-path=tools/qlog/Cargo.toml |
| |
| - name: Run cargo clippy |
| uses: actions-rs/cargo@v1 |
| with: |
| command: clippy |
| args: --manifest-path=tools/qlog/Cargo.toml -- -D warnings |
| |
| http3_test: |
| runs-on: ubuntu-latest |
| # Only run on "pull_request" event for external PRs. This is to avoid |
| # duplicate builds for PRs created from internal branches. |
| if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository |
| steps: |
| - name: Checkout sources |
| uses: actions/checkout@v2 |
| with: |
| submodules: 'recursive' |
| |
| - name: Install stable toolchain |
| uses: actions-rs/toolchain@v1 |
| with: |
| profile: minimal |
| toolchain: ${{ env.TOOLCHAIN }} |
| override: true |
| |
| - name: Run cargo test |
| uses: actions-rs/cargo@v1 |
| with: |
| command: test |
| args: --no-run --verbose --manifest-path=tools/http3_test/Cargo.toml |
| |
| - name: Run cargo clippy |
| uses: actions-rs/cargo@v1 |
| with: |
| command: clippy |
| args: --manifest-path=tools/http3_test/Cargo.toml -- -D warnings |
| |
| nginx: |
| runs-on: ubuntu-latest |
| strategy: |
| matrix: |
| version: ["1.16.1"] |
| # Only run on "pull_request" event for external PRs. This is to avoid |
| # duplicate builds for PRs created from internal branches. |
| if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository |
| steps: |
| - name: Checkout sources |
| uses: actions/checkout@v2 |
| with: |
| submodules: 'recursive' |
| |
| - name: Install stable toolchain |
| uses: actions-rs/toolchain@v1 |
| with: |
| profile: minimal |
| toolchain: ${{ env.TOOLCHAIN }} |
| override: true |
| |
| - name: Install dependencies |
| run: sudo apt-get install libpcre3-dev zlib1g-dev |
| |
| - name: Download NGINX sources |
| run: curl -O https://nginx.org/download/nginx-${{ matrix.version }}.tar.gz |
| |
| - name: Extract NGINX sources |
| run: tar xzf nginx-${{ matrix.version }}.tar.gz |
| |
| - name: Build NGINX |
| run: | |
| cd nginx-${{ matrix.version }} && |
| 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 |
| |
| docker: |
| runs-on: ubuntu-latest |
| # Only run on "pull_request" event for external PRs. This is to avoid |
| # duplicate builds for PRs created from internal branches. |
| if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository |
| steps: |
| - name: Checkout sources |
| uses: actions/checkout@v2 |
| with: |
| submodules: 'recursive' |
| |
| - name: Build Docker images |
| run: make docker-build |
| |
| android_ndk_lts: |
| runs-on: ubuntu-latest |
| env: |
| NDK_LTS_VER: "21" |
| strategy: |
| matrix: |
| target: ["aarch64-linux-android","armv7-linux-androideabi","x86_64-linux-android","i686-linux-android"] |
| include: |
| - target: "aarch64-linux-android" |
| arch: "arm64-v8a" |
| - target: "armv7-linux-androideabi" |
| arch: "armeabi-v7a" |
| - target: "x86_64-linux-android" |
| arch: "x86_64" |
| - target: "i686-linux-android" |
| arch: "x86" |
| # Only run on "pull_request" event for external PRs. This is to avoid |
| # duplicate builds for PRs created from internal branches. |
| if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository |
| steps: |
| - name: Checkout sources |
| uses: actions/checkout@v2 |
| with: |
| submodules: 'recursive' |
| |
| - name: Install stable toolchain for the target |
| uses: actions-rs/toolchain@v1 |
| with: |
| profile: minimal |
| toolchain: ${{ env.TOOLCHAIN }} |
| target: ${{ matrix.target }} |
| override: true |
| |
| - name: Install cargo-ndk |
| uses: actions-rs/install@v0.1 |
| with: |
| crate: cargo-ndk |
| |
| - name: Download NDK |
| run: curl --http1.1 -O https://dl.google.com/android/repository/android-ndk-r${{ env.NDK_LTS_VER }}-linux-x86_64.zip |
| |
| - name: Extract NDK |
| run: unzip -q android-ndk-r${{ env.NDK_LTS_VER }}-linux-x86_64.zip |
| |
| - name: Run cargo ndk |
| uses: actions-rs/cargo@v1 |
| with: |
| command: ndk |
| args: -t ${{ matrix.arch }} -p ${{ env.NDK_LTS_VER }} -- build --verbose --features ffi |
| env: |
| ANDROID_NDK_HOME: ${{ github.workspace }}/android-ndk-r${{ env.NDK_LTS_VER }} |