From 75e87520221a2cba393bcb57e7246cb99eeb576b Mon Sep 17 00:00:00 2001 From: evandrocoan Date: Fri, 27 Mar 2020 20:07:44 -0300 Subject: [PATCH] Multiple OS with a build matrix --- examples.md | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/examples.md b/examples.md index 5a38585..1ced92f 100644 --- a/examples.md +++ b/examples.md @@ -582,6 +582,75 @@ whenever possible: key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} ``` +### Multiple OS with a build matrix + +```yml +name: CI +on: [push, pull_request] + +jobs: + tests: + name: Test ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + include: + - os: ubuntu-latest + SEP: / + PIP_WHEELS_DIR: ~/.cache/pip + CARGO_INDEX_DIR: ~/.cargo/git + CARGO_REGISTRY_DIR: ~/.cargo/registry + + - os: macos-latest + SEP: / + PIP_WHEELS_DIR: ~/Library/Caches/pip + CARGO_INDEX_DIR: ~/.cargo/git + CARGO_REGISTRY_DIR: ~/.cargo/registry + + - os: windows-latest + SEP: \ + PIP_WHEELS_DIR: ~\AppData\Local\pip\Cache + CARGO_INDEX_DIR: C:\Rust\.cargo\git + CARGO_REGISTRY_DIR: C:\Rust\.cargo\registry + + # Keep running all matrices if something fail + fail-fast: false + + steps: + - name: Cache pip wheels + uses: actions/cache@v1 + with: + path: ${{ matrix.PIP_WHEELS_DIR }} + key: ${{ runner.os }}-pip-wheels-${{ hashFiles('**/requirements.txt') }}-${{ hashFiles('**/setup.py') }}-14- + + - name: Cache cargo index + uses: actions/cache@v1 + with: + path: ${{ matrix.CARGO_INDEX_DIR }} + key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.toml') }}-14- + + - name: Cache cargo registry + uses: actions/cache@v1 + with: + path: ${{ matrix.CARGO_REGISTRY_DIR }} + key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.toml') }}-14- + + - name: Cache cargo target + uses: actions/cache@v1 + with: + path: ${{ github.workspace }}${{ matrix.SEP }}target + key: ${{ runner.os }}-cargo-target-${{ hashFiles('**/Cargo.toml') }}-14- + + - name: Run on Windows + if: matrix.os == 'windows-latest' + run: echo Windows + + - name: Run on Linux + if: matrix.os == 'ubuntu-latest' + run: echo Linux +``` + ## Scala - SBT ```yaml