--- on: push: branches: - "2.0" env: name: "epple2" desc: "Apple ][ emulator" deb_depends: "libsdl2-2.0-0" jobs: "build-roms": runs-on: "ubuntu-latest" steps: - name: "Prepare runner" run: | set -x sudo apt-get update -qqqq sudo apt-get install -qqqq xa65 - uses: "actions/checkout@v3" - name: "Build" run: | set -x cd rom mkdir build cd build cmake .. cmake --build . - uses: "actions/upload-artifact@v3" with: name: "epple2-roms" path: "./rom/*.a65" "build-epple2-ubuntu": needs: "build-roms" runs-on: "ubuntu-latest" steps: - name: "Prepare runner" run: | set -x sudo apt-get update -qqqq sudo apt-get install -qqqq libsdl2-dev tree - uses: "actions/checkout@v3" - name: "Build" run: | set -x mkdir build cd build cmake .. cmake --build . - uses: "actions/download-artifact@v3" with: name: "epple2-roms" path: "build/epple2-roms" - name: "Stage" run: | set -x pwd cd build mkdir -p stage/usr/local/bin mkdir -p stage/usr/local/etc/epple2 mkdir -p stage/usr/local/lib/epple2/system mkdir -p stage/usr/local/lib/epple2/cards cp src/epple2 stage/usr/local/bin/ cp conf/*.conf stage/usr/local/etc/epple2/ cp epple2-roms/epple2sys.a65 stage/usr/local/lib/epple2/system/ cp epple2-roms/stdout.a65 stage/usr/local/lib/epple2/cards/ cp epple2-roms/stdin.a65 stage/usr/local/lib/epple2/cards/ cp epple2-roms/clock.a65 stage/usr/local/lib/epple2/cards/ tree stage - name: "Package" uses: "jiro4989/build-deb-action@v2" with: package: "${{ env.name }}" desc: "${{ env.desc }}" maintainer: "${{ github.repository_owner }}" version: "${{ github.ref }}" arch: "amd64" package_root: "build/stage" depends: "${{ env.deb_depends }}" - uses: "softprops/action-gh-release@v1" with: files: | *.deb "build-epple2-macos": needs: "build-roms" runs-on: "macos-latest" steps: - name: "Prepare runner" run: | set -x HOMEBREW_NO_AUTO_UPDATE=1 brew install sdl2 tree - uses: "actions/checkout@v3" - name: "Build" run: | set -x mkdir build cd build cmake .. cmake --build . - uses: "actions/download-artifact@v3" with: name: "epple2-roms" path: "build/epple2-roms" - name: "Stage" run: | set -x pwd cd build mkdir -p stage/local/bin mkdir -p stage/local/etc/epple2 mkdir -p stage/local/lib/epple2/system mkdir -p stage/local/lib/epple2/cards cp src/epple2 stage/local/bin/ cp conf/*.conf stage/local/etc/epple2/ cp epple2-roms/epple2sys.a65 stage/local/lib/epple2/system/ cp epple2-roms/stdout.a65 stage/local/lib/epple2/cards/ cp epple2-roms/stdin.a65 stage/local/lib/epple2/cards/ cp epple2-roms/clock.a65 stage/local/lib/epple2/cards/ cp /usr/local/lib/libSDL2.dylib stage/local/bin/ tree stage - name: "Package" run: | set -x pkgbuild --identifier nu.mine.mosher.$name --root build/stage --install-location /usr $name.pkg - uses: "softprops/action-gh-release@v1" with: files: | *.pkg "build-epple2-windows": needs: "build-roms" runs-on: "windows-latest" steps: - name: "Prepare runner" run: | Invoke-WebRequest -Uri "https://github.com/libsdl-org/SDL/releases/download/release-2.24.2/SDL2-devel-2.24.2-VC.zip" -OutFile "C:/Program Files/SDL2-devel-VC.zip" Expand-Archive -LiteralPath "C:/Program Files/SDL2-devel-VC.zip" -DestinationPath "C:/Program Files/" - uses: "actions/checkout@v3" - name: "Build" shell: "bash" run: | set -x mkdir build cd build cmake .. cmake --build . - uses: "actions/download-artifact@v3" with: name: "epple2-roms" path: "build/epple2-roms" - name: "Stage" shell: "bash" run: | set -x pwd cd build mkdir -p stage/epple2/etc/epple2 mkdir -p stage/epple2/lib/epple2/system mkdir -p stage/epple2/lib/epple2/cards cp src/Debug/epple2.exe stage/epple2/ cp conf/*.conf stage/epple2/etc/epple2/ cp epple2-roms/epple2sys.a65 stage/epple2/lib/epple2/system/ cp epple2-roms/stdout.a65 stage/epple2/lib/epple2/cards/ cp epple2-roms/stdin.a65 stage/epple2/lib/epple2/cards/ cp epple2-roms/clock.a65 stage/epple2/lib/epple2/cards/ cp "C:/Program Files/SDL2-2.24.2/lib/x64/SDL2.dll" stage/epple2/ - name: "Package" uses: "thedoctor0/zip-release@main" with: directory: "build/stage" path: "${{ env.name }}" filename: "${{ env.name }}-windows.zip" - uses: "softprops/action-gh-release@v1" with: files: | build/stage/*.zip