index : static-web-server.git

ascending towards madness

name: devel
on:
  pull_request:
  push:
    branches:
    - 1.x
  schedule:
  - cron: '00 04 * * *'

jobs:
  test:
    name: test
    runs-on: ${{ matrix.os }}
    env:
      CARGO_BIN: cargo
      # When CARGO_BIN is set to CROSS, this is set to `--target matrix.target`
      TARGET_FLAGS: ""
      # When CARGO_BIN is set to CROSS, TARGET_DIR includes matrix.target
      TARGET_DIR: ./target
      # Emit backtraces on panics
      RUST_BACKTRACE: 1
    strategy:
      matrix:
        build:
        - pinned
        - stable
        - beta
        - linux-musl
        - linux-musl-arm64
        - linux-gnu
        - linux-gnu-arm64
        - linux-arm-gnueabihf
        - macos
        - macos-arm64
        - windows-msvc
        - windows-msvc-arm64
        include:
        - build: pinned
          os: ubuntu-20.04
          rust: 1.58.1
        - build: stable
          os: ubuntu-20.04
          rust: stable
        - build: beta
          os: ubuntu-20.04
          rust: beta
        - build: linux-musl
          os: ubuntu-20.04
          rust: stable
          target: x86_64-unknown-linux-musl
        - build: linux-musl-arm64
          os: ubuntu-20.04
          rust: stable
          target: aarch64-unknown-linux-musl
        - build: linux-gnu
          os: ubuntu-20.04
          rust: stable
          target: x86_64-unknown-linux-gnu
        - build: linux-gnu-arm64
          os: ubuntu-20.04
          rust: stable
          target: aarch64-unknown-linux-gnu
        - build: linux-arm-gnueabihf
          os: ubuntu-20.04
          rust: nightly
          target: arm-unknown-linux-gnueabihf
        - build: macos
          os: macos-11
          rust: stable
          target: x86_64-apple-darwin
        - build: macos-arm64
          os: macos-11
          rust: stable
          target: aarch64-apple-darwin
        - build: windows-msvc
          os: windows-2019
          rust: stable
          target: x86_64-pc-windows-msvc
        - build: windows-msvc-arm64
          os: windows-2019
          rust: stable
          target: aarch64-pc-windows-msvc

    steps:
    - name: Checkout repository
      uses: actions/checkout@v3

    - name: Install Rust
      uses: dtolnay/rust-toolchain@stable
      with:
        toolchain: ${{ matrix.rust }}

    - name: Use Cross
      if: matrix.target != ''
      run: |
        cargo install cross
        echo "CARGO_BIN=cross" >> $GITHUB_ENV
        echo "TARGET_FLAGS=--target ${{ matrix.target }}" >> $GITHUB_ENV
        echo "TARGET_DIR=./target/${{ matrix.target }}" >> $GITHUB_ENV

    - name: Run tests
      run: ${{ env.CARGO_BIN }} test --verbose

    - name: Build static-web-server and crates
      run: ${{ env.CARGO_BIN }} build --verbose

  checks:
    name: checks
    runs-on: ubuntu-20.04

    steps:
    - name: Checkout repository
      uses: actions/checkout@v2

    - name: Install stable toolchain
      uses: dtolnay/rust-toolchain@stable
      with:
        toolchain: stable
        components: rustfmt, clippy

    - name: Check formatting
      run: |
        cargo fmt --all -- --check

    - name: Check via Clippy
      uses: actions-rs/clippy-check@v1
      with:
        token: ${{ secrets.GITHUB_TOKEN }}
        args: --all-features -- -D warnings