blob: 68b19c6e5dcfd6f240c4c5033eced6e03f115826 [file] [log] [blame]
on: [push, pull_request]
name: Nightly
env:
RUSTFLAGS: "-D warnings"
TOOLCHAIN: "nightly"
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 nightly toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.TOOLCHAIN }}
components: rustfmt
override: true
- name: Run cargo fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: -- --check
- 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 qlog
- name: Run cargo package
uses: actions-rs/cargo@v1
with:
command: package
args: --verbose --allow-dirty
- name: Run cargo doc
uses: actions-rs/cargo@v1
with:
command: doc
args: --no-deps
- name: Build C examples
run: make -C examples
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 nightly toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.TOOLCHAIN }}
components: rustfmt
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 fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --manifest-path=tools/apps/Cargo.toml -- --check
fuzz:
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 nightly toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.TOOLCHAIN }}
components: rustfmt
override: true
- name: Install cargo-fuzz
run: cargo install cargo-fuzz
- name: Run cargo fuzz for packet_recv_client
uses: actions-rs/cargo@v1
with:
command: fuzz
args: run packet_recv_client -- -runs=1
- name: Run cargo fuzz for packet_recv_server
uses: actions-rs/cargo@v1
with:
command: fuzz
args: run packet_recv_server -- -runs=1
- name: Run cargo fuzz for qpack_decode
uses: actions-rs/cargo@v1
with:
command: fuzz
args: run qpack_decode -- -runs=1
- name: Run cargo fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --manifest-path=fuzz/Cargo.toml -- --check
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 nightly toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.TOOLCHAIN }}
components: rustfmt
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 fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --manifest-path=tools/qlog/Cargo.toml -- --check
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 nightly toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ env.TOOLCHAIN }}
components: rustfmt
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 fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: --manifest-path=tools/http3_test/Cargo.toml -- --check