name: Build on: workflow_dispatch: push: branches: - master jobs: build-linux: runs-on: ubuntu-latest steps: - name: Checkout 🛎️ uses: actions/checkout@v2 with: submodules: recursive - name: Install Dependencies run: | sudo add-apt-repository -y "deb http://archive.ubuntu.com/ubuntu `lsb_release -sc` main universe restricted multiverse" sudo apt-get update -y -qq sudo apt-get install libsdl2-dev sudo apt-get install libsdl2-image-dev - name: Cache cargo registry uses: actions/cache@v1 with: path: ~/.cargo/registry key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo index uses: actions/cache@v1 with: path: ~/.cargo/git key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo build uses: actions/cache@v1 with: path: target key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} - name: Build run: cargo build --release --manifest-path platform/rustboyadvance-sdl2/Cargo.toml - name: Collect artifacts run: | mkdir artifacts mkdir artifacts/assets cp README.md artifacts cp LICENSE artifacts cp ./assets/icon_cropped_small.png artifacts/assets cp ./target/release/rustboyadvance-sdl2 artifacts - name : Upload artifacts uses: actions/upload-artifact@v2 with: name: rustboyadvance-sdl2-x86_64-unknown-linux-gnu path: artifacts build-android-apk: runs-on: ubuntu-latest steps: - name: Checkout 🛎️ uses: actions/checkout@v2 with: submodules: recursive - name: Install toolchains run: rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android - name: Cache cargo registry uses: actions/cache@v1 with: path: ~/.cargo/registry key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo index uses: actions/cache@v1 with: path: ~/.cargo/git key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo build uses: actions/cache@v1 with: path: target key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} - name: Build APK working-directory: ./platform/android run: ./gradlew assemble - name: Upload artifacts uses: actions/upload-artifact@v2 with: name: rustdroid.apk path: ./platform/android/app/build/outputs/apk/release/app-release-unsigned.apk build-windows-64: runs-on: windows-2019 steps: - name: Checkout 🛎️ uses: actions/checkout@v2 with: submodules: recursive - run: rustup target add x86_64-pc-windows-msvc - name: Cache cargo registry uses: actions/cache@v1 with: path: ~/.cargo/registry key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo index uses: actions/cache@v1 with: path: ~/.cargo/git key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }} - name: Cache cargo build uses: actions/cache@v1 with: path: target key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }} - name: Build run: cargo build --target x86_64-pc-windows-msvc --release --manifest-path .\platform\rustboyadvance-sdl2\Cargo.toml - name: Collect artifacts run: | mkdir artifacts mkdir artifacts\assets copy README.md artifacts copy LICENSE artifacts copy .\assets\icon_cropped_small.png artifacts\assets copy .\target\x86_64-pc-windows-msvc\release\rustboyadvance-sdl2.exe artifacts copy .\platform\rustboyadvance-sdl2\msvc\64\*.dll artifacts copy .\platform\rustboyadvance-sdl2\msvc\64\LICENSE.* artifacts - name : Upload artifacts uses: actions/upload-artifact@v2 with: name: rustboyadvance-sdl2-x86_64-pc-windows-msvc path: artifacts