name: Build Emulator on: push: branches: [ "main" ] paths: ["gb-emu/**", "lib/**", "vendored/**", "Cargo.toml"] env: CARGO_TERM_COLOR: always jobs: build: runs-on: ${{ matrix.os }}-latest strategy: matrix: os: [ubuntu, macos, windows] steps: - uses: actions/checkout@v3 - run: git submodule update --init --recursive - uses: actions-rs/toolchain@v1 if: ${{ matrix.os != 'macos' }} with: toolchain: nightly override: true - uses: actions-rs/toolchain@v1 if: ${{ matrix.os == 'macos' }} with: toolchain: nightly target: x86_64-apple-darwin, aarch64-apple-darwin override: true - uses: awalsh128/cache-apt-pkgs-action@latest if: ${{ matrix.os == 'ubuntu' }} with: packages: libasound2-dev libudev-dev version: 1.0 - uses: actions-rs/cargo@v1 if: ${{ matrix.os != 'macos' }} with: command: build args: --release - uses: actions-rs/cargo@v1 if: ${{ matrix.os == 'macos' }} with: command: build args: --release --target x86_64-apple-darwin - uses: actions-rs/cargo@v1 if: ${{ matrix.os == 'macos' }} with: command: build args: --release --target aarch64-apple-darwin - uses: actions/upload-artifact@v3 if: ${{ matrix.os == 'ubuntu' }} with: name: gb-emu-linux path: target/release/gb-emu - uses: actions/upload-artifact@v3 if: ${{ matrix.os == 'windows' }} with: name: gb-emu-windows path: target/release/gb-emu.exe - uses: actions/upload-artifact@v3 if: ${{ matrix.os == 'macos' }} with: name: gb-emu-macos-x86_64 path: target/x86_64-apple-darwin/release/gb-emu - uses: actions/upload-artifact@v3 if: ${{ matrix.os == 'macos' }} with: name: gb-emu-macos-aarch64 path: target/aarch64-apple-darwin/release/gb-emu