on: pull_request: push: branches: main workflow_dispatch: name: Continuous Integration jobs: # Workaround for making Github Actions skip based on commit message `[skip ci]` # Source https://gist.github.com/ybiquitous/c80f15c18319c63cae8447a3be341267 prepare: runs-on: ubuntu-latest if: | !contains(format('{0} {1} {2}', github.event.head_commit.message, github.event.pull_request.title, github.event.pull_request.body), '[skip ci]') steps: - run: | cat <<'MESSAGE' github.event_name: ${{ toJson(github.event_name) }} github.event: ${{ toJson(github.event) }} MESSAGE check: name: Check runs-on: ubuntu-latest needs: prepare steps: - uses: actions/checkout@master - uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal override: true - uses: actions-rs/cargo@v1 with: command: check test: name: Test Suite runs-on: ubuntu-latest needs: prepare env: RUST_BACKTRACE: full steps: - uses: actions/checkout@master - uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal override: true # These dependencies are required for `clipboard` - run: sudo apt-get install -y -qq libxcb1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev - uses: actions-rs/cargo@v1 with: command: build - uses: actions-rs/cargo@v1 with: command: test # bench: # name: Benchmarks # runs-on: ubuntu-latest # needs: prepare # steps: # - uses: actions/checkout@master # - uses: actions-rs/toolchain@v1 # with: # toolchain: stable # profile: minimal # override: true # # These dependencies are required for `clipboard` # - run: sudo apt-get install -y -qq libxcb1-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev # - uses: actions-rs/cargo@v1 # with: # command: bench fmt: name: Rustfmt runs-on: ubuntu-latest needs: prepare steps: - uses: actions/checkout@master - uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal override: true components: rustfmt - uses: actions-rs/cargo@v1 with: command: fmt args: --all -- --check clippy: name: Clippy runs-on: ubuntu-latest needs: prepare steps: - uses: actions/checkout@master - uses: actions-rs/toolchain@v1 with: toolchain: stable profile: minimal override: true components: clippy - uses: actions-rs/cargo@v1 with: command: clippy args: -- -D warnings