Rev 31 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
# $Id$
name: "Build Krakow BASIC"
on:
workflow_dispatch:
push:
concurrency:
group: "build"
cancel-in-progress: true
jobs:
build-c64:
name: "Build for Commodore 64"
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install packages
run: sudo apt-get install cc65
- name: Make sure it is clean
run: make clean PLATFORM=c64
- name: Make
run: make PLATFORM=c64
- name: Rename
run: cp BASIC/krakow.80 krakow-c64.80
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: build-c64
path: krakow-c64.80
build-a800xl:
name: "Build for Atari 800 XL"
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install packages
run: sudo apt-get install cc65
- name: Make sure it is clean
run: make clean PLATFORM=a800xl
- name: Make
run: make PLATFORM=a800xl
- name: Rename
run: cp BASIC/krakow krakow-a800xl
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: build-a800xl
path: krakow-a800xl
build-pet:
name: "Build for Commodore PET"
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install packages
run: sudo apt-get install cc65
- name: Make sure it is clean
run: make clean PLATFORM=pet
- name: Make
run: make PLATFORM=pet
- name: Rename
run: cp BASIC/krakow.prg krakow-pet.prg
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: build-pet
path: krakow-pet.prg
build-apple2:
name: "Build for Apple 2"
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install packages
run: sudo apt-get install cc65 default-jre
- name: Make sure it is clean
run: make clean PLATFORM=apple2
- name: Get AppleCommander
run: wget https://github.com/AppleCommander/AppleCommander/releases/download/1.9.0/AppleCommander-ac-1.9.0.jar -O ac.jar
- name: Get master.dsk
run: wget http://f.nishi.boats/f/g/master.dsk -O master.dsk
- name: Make
run: make PLATFORM=apple2
- name: Rename
run: cp BASIC/krakow.dsk krakow-apple2.dsk
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: build-apple2
path: krakow-apple2.dsk
build-win32:
name: "Build for Windows (32)"
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install packages
run: sudo apt-get install mingw-w64
- name: Make sure it is clean
run: make clean PLATFORM=win32
- name: Make
run: make PLATFORM=win32
- name: Rename
run: cp BASIC/krakow.exe krakow-win32.exe
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: build-win32
path: krakow-win32.exe
build-win64:
name: "Build for Windows (64)"
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install packages
run: sudo apt-get install mingw-w64
- name: Make sure it is clean
run: make clean PLATFORM=win64
- name: Make
run: make PLATFORM=win64
- name: Rename
run: cp BASIC/krakow.exe krakow-win64.exe
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: build-win64
path: krakow-win64.exe
build-arduino:
name: "Build for Arduino"
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install packages
run: sudo apt-get install gcc-avr avr-libc
- name: Make sure it is clean
run: make clean PLATFORM=arduino
- name: Make
run: make PLATFORM=arduino
- name: Rename
run: cp BASIC/krakow.hex krakow-arduino.hex
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: build-arduino
path: krakow-arduino.hex
build-msx:
name: "Build for MSX"
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install packages
run: sudo apt-get install sdcc
- name: Add SDCC path to env
run: echo "SDCC=/usr/share/sdcc" >> $GITHUB_ENV
- name: Clone hex2bin
run: git clone https://github.com/nishiowo/hex2bin
- name: Build hex2bin
run: rm -f hex2bin/hex2bin && make -C hex2bin
- name: Add to PATH
run: echo "$(pwd)/hex2bin" >> $GITHUB_PATH
- name: Make sure it is clean
run: make clean PLATFORM=msx
- name: Make
run: make PLATFORM=msx
- name: Rename
run: cp BASIC/krakow.msx.rom krakow-msx.rom
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: build-msx
path: krakow-msx.rom
release:
name: "Release"
runs-on: ubuntu-latest
permissions:
contents: write
needs: [build-c64, build-arduino, build-a800xl, build-pet, build-apple2, build-win32, build-win64, build-msx]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download from build-c64
uses: actions/download-artifact@v4
with:
name: build-c64
- name: Download from build-a800xl
uses: actions/download-artifact@v4
with:
name: build-a800xl
- name: Download from build-pet
uses: actions/download-artifact@v4
with:
name: build-pet
- name: Download from build-apple2
uses: actions/download-artifact@v4
with:
name: build-apple2
- name: Download from build-win32
uses: actions/download-artifact@v4
with:
name: build-win32
- name: Download from build-win64
uses: actions/download-artifact@v4
with:
name: build-win64
- name: Download from build-msx
uses: actions/download-artifact@v4
with:
name: build-msx
- name: Download from build-arduino
uses: actions/download-artifact@v4
with:
name: build-arduino
- name: Delete old release
run: gh release delete "$(make get-version)" --cleanup-tag -y || true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Release
run: gh release create -t "v$(make get-version)" "$(make get-version)" krakow-c64.80 krakow-arduino.hex krakow-a800xl krakow-pet.prg krakow-apple2.dsk krakow-win32.exe krakow-win64.exe krakow-msx.rom -n "Version \`$(make get-version)\` was build in this release"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}