name: CI on: [push, pull_request] jobs: style: name: Check Style runs-on: ubuntu-latest steps: - uses: actions/checkout@master - name: Install Rust run: rustup update beta && rustup default beta - name: Install Rustfmt run: rustup component add rustfmt - name: Check formatting run: cargo fmt --all -- --check test: name: Test needs: [style] runs-on: ubuntu-latest env: RUSTFLAGS: -Dwarnings strategy: matrix: rust: - nightly - beta # - stable steps: - uses: actions/checkout@master - name: Install Rust run: rustup update ${{ matrix.rust }} && rustup default ${{ matrix.rust }} - name: Install libssl-dev run: sudo apt-get update && sudo apt-get install libssl-dev - name: Build without unstable flag run: cargo build - name: Test examples in README run: rustdoc --test README.md -L target/debug -L target/debug/deps - name: Check with unstable flag run: cargo check --features unstable - name: Run lib tests and doc tests run: RUST_TEST_THREADS=1 cargo test - name: Run integration tests run: cargo test -p h2-tests - name: Run h2spec # Run h2spec on nightly for the time being. # TODO: Change it to stable after Rust 1.38 release run: ./ci/h2spec.sh if: matrix.rust == 'nightly' #- name: Check minimal versions # run: cargo clean; cargo update -Zminimal-versions; cargo check # if: matrix.rust == 'nightly' publish_docs: name: Publish Documentation needs: [style, test] runs-on: ubuntu-latest steps: - uses: actions/checkout@master - name: Install Rust run: rustup update beta && rustup default beta - name: Build documentation run: cargo doc --no-deps --all-features - name: Publish documentation run: | cd target/doc git init git add . git -c user.name='ci' -c user.email='ci' commit -m 'Deploy H2 API documentation' git push -f -q https://git:${{ secrets.github_token }}@github.com/${{ github.repository }} HEAD:gh-pages if: github.event_name == 'push' && github.event.ref == 'refs/heads/master' && github.repository == 'hyperium/h2'