name: CI on: push: branches: [ master ] pull_request: branches: [ master ] env: CARGO_TERM_COLOR: always jobs: build: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest] steps: - uses: actions/checkout@v2 - name: Install Rust toolchain uses: actions-rs/toolchain@v1 with: toolchain: stable - name: Cache cargo directories uses: actions/cache@v2 with: path: | ~/.cargo/registry ~/.cargo/git key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo target dir uses: actions/cache@v2 with: path: target key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} - name: Build run: cargo build --release --verbose # there are currently no automated tests - name: Run tests run: cargo test --release --verbose - name: Archive artifacts uses: actions/upload-artifact@v2 with: name: Binaries path: | target/release/KIT-ILIAS-downloader target/release/KIT-ILIAS-downloader.exe