name: CI
on: push
env:
RUST_BACKTRACE: 1
jobs:
clippy:
if: ${{ github.ref == 'refs/heads/master'
|
|| !contains(github.event.head_commit.message, '[skip ci]') }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
components: clippy
- uses: Swatinem/rust-cache@v1
if: ${{ !contains(github.event.head_commit.message, '[fresh ci]') }}
- run: make lint
rustfmt:
if: ${{ github.ref == 'refs/heads/master'
|
|| !contains(github.event.head_commit.message, '[skip ci]') }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: nightly
components: rustfmt
- run: make cargo.fmt check=yes
rustdoc:
if: ${{ github.ref == 'refs/heads/master'
|
|| !contains(github.event.head_commit.message, '[skip ci]') }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
- uses: Swatinem/rust-cache@v1
if: ${{ !contains(github.event.head_commit.message, '[fresh ci]') }}
- run: make doc
test:
if: ${{ github.ref == 'refs/heads/master'
|
|| !contains(github.event.head_commit.message, '[skip ci]') }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
- uses: Swatinem/rust-cache@v2
if: ${{ !contains(github.event.head_commit.message, '[fresh ci]') }}
- name: Install cargo-nextest
uses: taiki-e/install-action@nextest
- name: Start Docker container
run: |
docker run -d -p 1935:1935 -p 1985:1985 -p 8080:8080 ossrs/srs:v5 ./objs/srs -c conf/docker.conf
# Wait for the container to be ready
sleep 10
- name: Run tests
env:
SRS_HTTP_API_URL: http://localhost:1985
run: make test