diff --git a/.github/workflows/build-emu.yml b/.github/workflows/build-emu.yml index db83a5b..e377b4f 100644 --- a/.github/workflows/build-emu.yml +++ b/.github/workflows/build-emu.yml @@ -3,56 +3,69 @@ name: Build Emulator on: push: branches: [ "main" ] - paths: ["gb-emu/**", "lib/**", "vendored/**", "Cargo.toml"] + paths: ["gb-emu/**", "lib/**", "vendored/**", "Cargo.toml", ".github/workflows/build-emu.yml"] env: CARGO_TERM_COLOR: always + MACOSX_DEPLOYMENT_TARGET: 10.7 jobs: build: runs-on: ${{ matrix.os }}-latest strategy: - matrix: - os: [ubuntu, macos, windows] + fail-fast: false + matrix: + os: [ubuntu, macos, windows] steps: - - uses: actions/checkout@v3 - - run: git submodule update --init --recursive - - run: | - rustup toolchain install nightly --profile minimal --no-self-update - rustup default nightly - - run: rustup target add aarch64-apple-darwin x86_64-apple-darwin + - name: checkout + uses: actions/checkout@v3 + - name: pull submodules + run: git submodule update --init --recursive + - name: get rust toolchain + uses: dtolnay/rust-toolchain@nightly + - name: install rust aarch64 and x86_64 targets for mac + run: rustup target add aarch64-apple-darwin x86_64-apple-darwin if: ${{ matrix.os == 'macos' }} - - uses: Swatinem/rust-cache@v2 + - name: cache rust build + uses: Swatinem/rust-cache@v2 with: shared-key: emulator-${{ matrix.os }} - - uses: awalsh128/cache-apt-pkgs-action@latest + - name: install cached apt packages + uses: awalsh128/cache-apt-pkgs-action@latest if: ${{ matrix.os == 'ubuntu' }} with: packages: libasound2-dev libudev-dev version: 1.0 - - run: cargo build --release + - name: build + run: cargo build --release if: ${{ matrix.os != 'macos' }} - - run: cargo build --release --target x86_64-apple-darwin + - name: build x86_64 + run: cargo build --release --target x86_64-apple-darwin if: ${{ matrix.os == 'macos' }} - - run: cargo build --release --target aarch64-apple-darwin + - name: build aarch64 + run: cargo build --release --target aarch64-apple-darwin if: ${{ matrix.os == 'macos' }} - - uses: actions/upload-artifact@v3 + - name: upload build (linux) + uses: actions/upload-artifact@v3 if: ${{ matrix.os == 'ubuntu' }} with: name: gb-emu-linux path: target/release/gb-emu - - uses: actions/upload-artifact@v3 + - name: upload build (windows) + 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 + - name: upload build (macos x86_64) + 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 + - name: upload build (macos aarch64) + uses: actions/upload-artifact@v3 if: ${{ matrix.os == 'macos' }} with: name: gb-emu-macos-aarch64 diff --git a/.github/workflows/build-vst.yml b/.github/workflows/build-vst.yml index 81cbfe6..7fd8540 100644 --- a/.github/workflows/build-vst.yml +++ b/.github/workflows/build-vst.yml @@ -3,7 +3,7 @@ name: Build VST on: push: branches: [ "main" ] - paths: ["gb-vst/**", "lib/**", "vendored/**", "Cargo.toml"] + paths: ["gb-vst/**", "lib/**", "vendored/**", "Cargo.toml", ".github/workflows/build-vst.yml"] env: CARGO_TERM_COLOR: always @@ -12,35 +12,44 @@ jobs: build: runs-on: ${{ matrix.os }}-latest strategy: - matrix: - os: [ubuntu, macos, windows] + fail-fast: false + matrix: + os: [ubuntu, macos, windows] steps: - - uses: actions/checkout@v3 - - run: git submodule update --init --recursive + - name: checkout + uses: actions/checkout@v3 + - name: pull submodules + run: git submodule update --init --recursive - run: mkdir test-roms - - uses: suisei-cn/actions-download-file@v1.3.0 + - name: download mGB + uses: suisei-cn/actions-download-file@v1.3.0 with: url: 'https://github.com/trash80/mGB/raw/master/mGB.gb' target: test-roms/ - - run: | - rustup toolchain install nightly --profile minimal --no-self-update - rustup default nightly - - run: rustup target add aarch64-apple-darwin x86_64-apple-darwin + - name: install rust toolchain + uses: dtolnay/rust-toolchain@nightly + - name: install rust aarch64 and x86_64 targets for mac + run: rustup target add aarch64-apple-darwin x86_64-apple-darwin if: ${{ matrix.os == 'macos' }} - - uses: Swatinem/rust-cache@v2 + - name: cache rust build + uses: Swatinem/rust-cache@v2 with: shared-key: vst-${{ matrix.os }} - - uses: awalsh128/cache-apt-pkgs-action@latest + - name: install cached apt packages + uses: awalsh128/cache-apt-pkgs-action@latest if: ${{ matrix.os == 'ubuntu' }} with: packages: libasound2-dev libudev-dev xorg-dev libjack-jackd2-dev libx11-xcb-dev libxcb-icccm4-dev libxcb-dri2-0-dev version: 1.0 - - run: cargo xtask bundle vst --release + - name: build vst + run: cargo xtask bundle vst --release if: ${{ matrix.os != 'macos' }} - - run: cargo xtask bundle-universal vst --release + - name: build vst (macos) + run: cargo xtask bundle-universal vst --release if: ${{ matrix.os == 'macos' }} - - uses: actions/upload-artifact@v3 + - name: upload build + uses: actions/upload-artifact@v3 with: name: gb-vst-${{ matrix.os }}.vst3 path: target/bundled/vst.vst3 \ No newline at end of file