Epple-II/.github/workflows/build.yaml

204 lines
5.4 KiB
YAML
Raw Normal View History

2022-11-02 01:00:07 +00:00
---
on:
2022-11-02 22:48:43 +00:00
push:
tags:
2022-11-03 01:46:43 +00:00
- "*"
2022-11-02 01:00:07 +00:00
2022-11-02 22:38:19 +00:00
env:
name: "epple2"
desc: "Apple ][ emulator"
deb_depends: "libsdl2-2.0-0"
2022-11-02 01:00:07 +00:00
jobs:
"build-roms":
runs-on: "ubuntu-latest"
steps:
2022-11-02 01:08:39 +00:00
- name: "Prepare runner"
2022-11-02 01:00:07 +00:00
run: |
set -x
2022-11-02 01:08:39 +00:00
sudo apt-get update -qqqq
sudo apt-get install -qqqq xa65
2022-11-02 01:00:07 +00:00
- uses: "actions/checkout@v3"
2022-11-02 01:08:39 +00:00
- name: "Build artifacts"
2022-11-02 01:00:07 +00:00
run: |
set -x
cd rom
make
2022-11-02 01:08:39 +00:00
- uses: "actions/upload-artifact@v3"
with:
2022-11-02 01:12:29 +00:00
name: "epple2-roms"
path: "./rom/*.a65"
2022-11-02 01:22:54 +00:00
"build-epple2-ubuntu":
needs: "build-roms"
2022-11-02 01:22:54 +00:00
runs-on: "ubuntu-latest"
steps:
- name: "Prepare runner"
run: |
set -x
sudo apt-get update -qqqq
sudo apt-get install -qqqq libsdl2-dev tree
2022-11-02 01:22:54 +00:00
- uses: "actions/checkout@v3"
- name: "Build"
run: |
set -x
mkdir build
cd build
cmake ..
cmake --build .
2022-11-02 01:27:05 +00:00
- uses: "actions/download-artifact@v3"
with:
name: "epple2-roms"
2022-11-02 22:18:49 +00:00
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
2022-11-02 22:01:21 +00:00
cp src/epple2 stage/usr/local/bin/
cp conf/*.conf stage/usr/local/etc/epple2/
2022-11-02 22:14:03 +00:00
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/
2022-11-02 22:38:19 +00:00
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
2022-11-02 01:27:05 +00:00
"build-epple2-macos":
needs: "build-roms"
2022-11-02 01:27:05 +00:00
runs-on: "macos-latest"
steps:
- name: "Prepare runner"
run: |
set -x
2022-11-02 21:36:34 +00:00
HOMEBREW_NO_AUTO_UPDATE=1 brew install sdl2 tree
2022-11-02 01:27:05 +00:00
- uses: "actions/checkout@v3"
- name: "Build"
run: |
set -x
mkdir build
cd build
cmake ..
cmake --build .
2022-11-02 01:39:40 +00:00
2022-11-02 21:35:54 +00:00
- uses: "actions/download-artifact@v3"
with:
name: "epple2-roms"
2022-11-02 22:18:49 +00:00
path: "build/epple2-roms"
2022-11-02 21:35:54 +00:00
- name: "Stage"
run: |
set -x
pwd
cd build
2022-11-02 22:09:11 +00:00
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/
2022-11-02 22:14:03 +00:00
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/
2022-11-03 00:32:35 +00:00
cp /usr/local/lib/libSDL2.dylib stage/local/bin/
2022-11-02 22:38:19 +00:00
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
2022-11-02 21:35:54 +00:00
2022-11-02 01:39:40 +00:00
"build-epple2-windows":
needs: "build-roms"
2022-11-02 01:39:40 +00:00
runs-on: "windows-latest"
steps:
2022-11-02 19:58:28 +00:00
- 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/"
2022-11-02 18:00:03 +00:00
2022-11-02 19:58:28 +00:00
- uses: "actions/checkout@v3"
2022-11-02 05:57:46 +00:00
2022-11-02 01:39:40 +00:00
- name: "Build"
2022-11-02 04:00:40 +00:00
shell: "bash"
2022-11-02 01:39:40 +00:00
run: |
2022-11-02 16:58:35 +00:00
set -x
2022-11-02 01:39:40 +00:00
mkdir build
2022-11-02 16:58:35 +00:00
cd build
cmake ..
cmake --build .
2022-11-02 21:44:39 +00:00
- uses: "actions/download-artifact@v3"
with:
name: "epple2-roms"
2022-11-02 22:18:49 +00:00
path: "build/epple2-roms"
2022-11-02 21:44:39 +00:00
- name: "Stage"
shell: "bash"
run: |
set -x
pwd
cd build
2022-11-02 21:51:47 +00:00
mkdir -p stage/epple2/etc/epple2
mkdir -p stage/epple2/lib/epple2/system
mkdir -p stage/epple2/lib/epple2/cards
2022-11-02 22:09:11 +00:00
cp src/Debug/epple2.exe stage/epple2/
2022-11-02 21:51:47 +00:00
cp conf/*.conf stage/epple2/etc/epple2/
2022-11-02 22:14:03 +00:00
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/
2022-11-02 23:00:04 +00:00
cp "C:/Program Files/SDL2-2.24.2/lib/x64/SDL2.dll" stage/epple2/
2022-11-02 21:44:39 +00:00
2022-11-02 22:38:19 +00:00
- name: "Package"
uses: "thedoctor0/zip-release@main"
with:
2022-11-02 23:00:04 +00:00
directory: "build/stage"
path: "${{ env.name }}"
2022-11-02 22:38:19 +00:00
filename: "${{ env.name }}-windows.zip"
- uses: "softprops/action-gh-release@v1"
with:
files: |
2022-11-03 00:32:35 +00:00
build/stage/*.zip