on: [ push, pull_request ] jobs: build: name: Build Release Binary (${{ matrix.os }}) runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest] include: - os: ubuntu-latest binary_path: target/release/yt-offline - os: windows-latest binary_path: target/release/yt-offline.exe steps: - name: Install Rust Toolchain uses: actions-rust-lang/setup-rust-toolchain@v2 - name: Checkout repository uses: actions/checkout@v4 - name: Cache dependencies uses: actions/cache@v5 with: path: | ~/.cargo/registry/index/ ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} - name: Build release binary run: cargo build --release - name: Upload binary artifact uses: actions/upload-artifact@v3 with: name: yt-offline-${{ matrix.os }} path: ${{ matrix.binary_path }}