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

169 lines
4.7 KiB
YAML

---
on:
push:
branches:
- "master"
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 artifacts"
run: |
set -x
cd rom
make
- 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"
id: "epple2-roms"
with:
name: "epple2-roms"
path: "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 ${{steps.epple2-roms.outputs.download-path}}/epple2sys.a65 stage/usr/local/lib/epple2/system/
cp ${{steps.epple2-roms.outputs.download-path}}/stdout.a65 stage/usr/local/lib/epple2/cards/
cp ${{steps.epple2-roms.outputs.download-path}}/stdin.a65 stage/usr/local/lib/epple2/cards/
cp ${{steps.epple2-roms.outputs.download-path}}/clock.a65 stage/usr/local/lib/epple2/cards/
cd -
tree
"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"
id: "epple2-roms"
with:
name: "epple2-roms"
path: "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 ${{steps.epple2-roms.outputs.download-path}}/epple2sys.a65 stage/local/lib/epple2/system/
cp ${{steps.epple2-roms.outputs.download-path}}/stdout.a65 stage/local/lib/epple2/cards/
cp ${{steps.epple2-roms.outputs.download-path}}/stdin.a65 stage/local/lib/epple2/cards/
cp ${{steps.epple2-roms.outputs.download-path}}/clock.a65 stage/local/lib/epple2/cards/
cd -
tree
"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/"
Get-ChildItem "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"
id: "epple2-roms"
with:
name: "epple2-roms"
path: "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 ${{steps.epple2-roms.outputs.download-path}}/epple2sys.a65 stage/epple2/lib/epple2/system/
cp ${{steps.epple2-roms.outputs.download-path}}/stdout.a65 stage/epple2/lib/epple2/cards/
cp ${{steps.epple2-roms.outputs.download-path}}/stdin.a65 stage/epple2/lib/epple2/cards/
cp ${{steps.epple2-roms.outputs.download-path}}/clock.a65 stage/epple2/lib/epple2/cards/
cd -
- name: "ls"
run: "Get-ChildItem -Recurse"