name: Rust on: [push, pull_request] jobs: build: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macOS-latest] steps: - uses: hecrj/setup-rust-action@master with: rust-version: stable - name: Install dependencies run: sudo apt-get update && sudo apt-get install -y libwebkit2gtk-4.0-dev libssl-dev libappindicator3-dev if: runner.os == 'Linux' - name: Get yarn cache directory path id: yarn-cache-dir-path run: echo "::set-output name=dir::$(yarn cache dir)" - name: Get cargo cache directory path id: cargo-cache-dir-path run: echo "::set-output name=dir::$HOME/.cargo/" - uses: actions/cache@v2 id: yarn-cache with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} restore-keys: | ${{ runner.os }}-yarn- - uses: actions/cache@v2 id: cargo-cache with: path: ${{ steps.cargo-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }} restore-keys: | ${{ runner.os }}-cargo- - uses: actions/setup-node@v1 with: node-version: '16.x' - run: npm install -g yarn - uses: actions/checkout@v2 - name: Download Webview2 run: Invoke-WebRequest -Uri 'https://go.microsoft.com/fwlink/p/?LinkId=2124703' -OutFile 'MicrosoftEdgeWebview2Setup.exe' if: runner.os == 'Windows' shell: pwsh - name: Build run: cargo build --verbose