Skip to content

Help improvements (#2570) #1760

Help improvements (#2570)

Help improvements (#2570) #1760

Workflow file for this run

name: Build
on: [push, pull_request]
env:
BUILD_TYPE: MinSizeRel
jobs:
# === Windows XP ===
winxp:
runs-on: windows-2019
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
- name: Build
shell: cmd
run: |
COPY /Y build\janet\janetconf.h vendor\janet\src\conf\janetconf.h
cd build
cmake -G "Visual Studio 16 2019" -A Win32 -T v141_xp -DCMAKE_BUILD_TYPE=%BUILD_TYPE% ..
cmake --build . --config %BUILD_TYPE% --parallel
- name: Deploy
uses: actions/upload-artifact@v3
with:
name: "tic80-winxp"
path: build/bin/tic80.exe
# === Windows XP PRO ===
winxp-pro:
runs-on: windows-2019
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
- name: Build
shell: cmd
run: |
COPY /Y build\janet\janetconf.h vendor\janet\src\conf\janetconf.h
cd build
cmake -G "Visual Studio 16 2019" -A Win32 -T v141_xp -DCMAKE_BUILD_TYPE=%BUILD_TYPE% -DBUILD_PRO=On ..
cmake --build . --config %BUILD_TYPE% --parallel
# === Windows ===
windows:
runs-on: windows-2019
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
- name: Build
shell: cmd
run: |
cd build
cmake -G "Visual Studio 16 2019" -DBUILD_SDLGPU=On -DCMAKE_BUILD_TYPE=%BUILD_TYPE% ..
cmake --build . --config %BUILD_TYPE% --parallel
- name: Deploy
uses: actions/upload-artifact@v3
with:
name: "tic80-windows"
path: build/bin/tic80.exe
# === Windows PRO ===
windows-pro:
runs-on: windows-2019
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
- name: Build
shell: cmd
run: |
cd build
cmake -G "Visual Studio 16 2019" -DBUILD_SDLGPU=On -DCMAKE_BUILD_TYPE=%BUILD_TYPE% -DBUILD_PRO=On ..
cmake --build . --config %BUILD_TYPE% --parallel
# === Windows Sokol ===
windows-sokol:
runs-on: windows-2019
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
- name: Build
shell: cmd
run: |
cd build
cmake -G "Visual Studio 16 2019" -DBUILD_SDL=Off -DBUILD_SOKOL=On -DCMAKE_BUILD_TYPE=%BUILD_TYPE% ..
cmake --build . --config %BUILD_TYPE% --parallel
cp bin/tic80-sokol.exe bin/tic80.exe
- name: Deploy
uses: actions/upload-artifact@v3
with:
name: "tic80-windows-sokol"
path: build/bin/tic80.exe
# === Windows MinGW-64 ===
windows-mingw:
runs-on: windows-2019
steps:
# https://github.com/actions/runner-images/issues/2642#issuecomment-774988591
- name: configure Pagefile
uses: al-cheb/configure-pagefile-action@v1.2
with:
minimum-size: 16GB
maximum-size: 16GB
disk-root: "C:"
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: Build
shell: bash
run: |
cd build
cmake -G "MSYS Makefiles" -DCMAKE_C_COMPILER=C:/msys64/mingw64/bin/gcc.exe -DCMAKE_CXX_COMPILER=C:/msys64/mingw64/bin/c++.exe -DBUILD_SDLGPU=On -DCMAKE_BUILD_TYPE=%BUILD_TYPE% ..
cmake --build . --config %BUILD_TYPE% --parallel
- name: Deploy
uses: actions/upload-artifact@v3
with:
name: "tic80-mingw"
path: build/bin/tic80.exe
# === Ubuntu PRO ===
linux-pro:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
- name: Install
run: |
sudo apt-get update
sudo apt-get install libglu1-mesa-dev libasound2-dev libpulse-dev libaudio-dev libsamplerate0-dev libcurl4-openssl-dev -y
- name: Build
run: |
cd build
cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_SDLGPU=On -DBUILD_PRO=On ..
cmake --build . --config $BUILD_TYPE --parallel
cpack
# === Ubuntu ===
linux:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
- name: Install
run: |
sudo apt-get update
sudo apt-get install libglu1-mesa-dev libasound2-dev libpulse-dev libaudio-dev libsamplerate0-dev libcurl4-openssl-dev -y
- name: Build
run: |
cd build
cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_SDLGPU=On ..
cmake --build . --config $BUILD_TYPE --parallel
cpack
- name: Deploy DEB
uses: actions/upload-artifact@v3
with:
name: "tic80-linux-deb"
path: build/tic80.deb
- name: Deploy ZIP
uses: actions/upload-artifact@v3
with:
name: "tic80-linux"
path: build/bin/tic80
# === Raspberry PI ===
rpi:
runs-on: ubuntu-latest
container: nesbox/rpi-tic80:latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: Install Host toolchain
run: |
apt-get update
apt-get install --assume-yes build-essential ruby-full gcc-8-arm-linux-gnueabihf g++-8-arm-linux-gnueabihf
- name: Build
run: |
cd build
cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=rpi/toolchain.cmake ..
cmake --build . --config $BUILD_TYPE --parallel
cpack
- name: Deploy DEB
uses: actions/upload-artifact@v3
with:
name: "tic80-rpi-deb"
path: build/tic80.deb
- name: Deploy
uses: actions/upload-artifact@v3
with:
name: "tic80-rpi"
path: build/bin/tic80
# === Raspberry PI PRO ===
rpi-pro:
runs-on: ubuntu-latest
container: nesbox/rpi-tic80:latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: Install Host toolchain
run: |
apt-get update
apt-get install --assume-yes build-essential ruby-full gcc-8-arm-linux-gnueabihf g++-8-arm-linux-gnueabihf
- name: Build
run: |
cd build
cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_PRO=On -DCMAKE_TOOLCHAIN_FILE=rpi/toolchain.cmake ..
cmake --build . --config $BUILD_TYPE --parallel
cpack
# === Raspberry PI 1-3 Bare Metal ===
rpi-baremetal:
runs-on: ubuntu-latest
container: nesbox/baremetalpi-tic80:latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: Install Host toolchain
run: |
apt-get update
apt-get install --assume-yes build-essential ruby-full
- name: Prebuild
run: |
cd vendor
git clone --recursive https://github.com/smuehlst/circle-stdlib
cd circle-stdlib
git checkout fdb3c4a948421d47fddab8042a92f980cba43915
git submodule update --recursive
./configure -r 3
make -j$(nproc)
cd libs/circle/addon/vc4/sound/
make -j$(nproc)
cd ../vchiq
make -j$(nproc)
cd ../../linux
make -j$(nproc)
- name: Build
run: |
git apply build/baremetalpi/circle.patch
cd build
cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=baremetalpi/toolchain.cmake ..
make tic80studio -j$(nproc)
cd baremetalpi
make -j$(nproc)
cd ../../vendor/circle-stdlib/libs/circle/boot/
make -j$(nproc)
- name: Pack
run: |
cp build/baremetalpi/kernel8-32.img vendor/circle-stdlib/libs/circle/boot/kernel.img
cp build/baremetalpi/boot/config.txt vendor/circle-stdlib/libs/circle/boot/config.txt
- name: Deploy
uses: actions/upload-artifact@v3
with:
name: "tic80-rpi-baremetal"
path: |
vendor/circle-stdlib/libs/circle/boot/config.txt
vendor/circle-stdlib/libs/circle/boot/kernel.img
vendor/circle-stdlib/libs/circle/boot/bootcode.bin
vendor/circle-stdlib/libs/circle/boot/start.elf
vendor/circle-stdlib/libs/circle/boot/fixup.dat
vendor/circle-stdlib/libs/circle/boot/LICENCE.broadcom
# === Raspberry PI 4 Bare Metal ===
rpi4-baremetal:
runs-on: ubuntu-latest
container: nesbox/baremetalpi-tic80:latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: Install Host toolchain
run: |
apt-get update
apt-get install --assume-yes build-essential ruby-full
- name: Prebuild
run: |
cd vendor
git clone --recursive https://github.com/smuehlst/circle-stdlib
cd circle-stdlib
git checkout fdb3c4a948421d47fddab8042a92f980cba43915
git submodule update --recursive
./configure -r 4
make -j$(nproc)
cd libs/circle/addon/vc4/sound/
make -j$(nproc)
cd ../vchiq
make -j$(nproc)
cd ../../linux
make -j$(nproc)
- name: Build
run: |
git apply build/baremetalpi/circle.patch
cd build
cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=baremetalpi/toolchain.cmake ..
make tic80studio -j$(nproc)
cd baremetalpi
make -j$(nproc)
cd ../../vendor/circle-stdlib/libs/circle/boot/
make -j$(nproc)
- name: Pack
run: |
cp build/baremetalpi/kernel7l.img vendor/circle-stdlib/libs/circle/boot/kernel.img
cp build/baremetalpi/boot/config.txt vendor/circle-stdlib/libs/circle/boot/config.txt
- name: Deploy
uses: actions/upload-artifact@v3
with:
name: "tic80-rpi4-baremetal"
path: |
vendor/circle-stdlib/libs/circle/boot/bcm2711-rpi-4-b.dtb
vendor/circle-stdlib/libs/circle/boot/bcm2711-rpi-cm4.dtb
vendor/circle-stdlib/libs/circle/boot/bootcode.bin
vendor/circle-stdlib/libs/circle/boot/config.txt
vendor/circle-stdlib/libs/circle/boot/COPYING.linux
vendor/circle-stdlib/libs/circle/boot/fixup4.dat
vendor/circle-stdlib/libs/circle/boot/kernel.img
vendor/circle-stdlib/libs/circle/boot/LICENCE.broadcom
vendor/circle-stdlib/libs/circle/boot/start4.elf
# === Nintendo 3DS build ===
nintendo-3ds:
runs-on: ubuntu-latest
container: nesbox/devkitpro-tic80:latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: Install Host toolchain
run: |
apt-get update
apt-get install --assume-yes build-essential ruby-full
- name: Build
run: |
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=$DEVKITPRO/3ds.cmake -DN3DS=TRUE -DCMAKE_BUILD_TYPE=$BUILD_TYPE ..
make -j$(nproc)
- name: Deploy
uses: actions/upload-artifact@v3
with:
name: "tic80-nintendo-3ds"
path: build/bin/tic80.3dsx
# === MacOS 12 ===
macos:
runs-on: macos-12
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: Install
run: brew uninstall --ignore-dependencies libidn2
- name: Build
run: |
cd build
cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_SDLGPU=On ..
cmake --build . --config $BUILD_TYPE --parallel
cpack
cp *.dmg tic80.dmg
- name: Deploy DMG
uses: actions/upload-artifact@v3
with:
name: "tic80-macos-dmg"
path: build/tic80.dmg
- name: Deploy
uses: actions/upload-artifact@v3
with:
name: "tic80-macos"
path: build/bin/tic80
# === MacOS 12 PRO ===
macos-pro:
runs-on: macos-12
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: Install
run: brew uninstall --ignore-dependencies libidn2
- name: Build
run: |
cd build
cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_SDLGPU=On -DBUILD_PRO=On ..
cmake --build . --config $BUILD_TYPE --parallel
cpack
cp *.dmg tic80.dmg
# === MacOS 14 / arm64 ===
macos-arm64:
runs-on: macos-14
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: Install
run: brew uninstall --ignore-dependencies libidn2
- name: Build
run: |
cd build
cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_SDLGPU=On ..
cmake --build . --config $BUILD_TYPE --parallel
cpack
cp *.dmg tic80.dmg
- name: Deploy DMG
uses: actions/upload-artifact@v3
with:
name: "tic80-macos-arm64-dmg"
path: build/tic80.dmg
- name: Deploy
uses: actions/upload-artifact@v3
with:
name: "tic80-macos-arm64"
path: build/bin/tic80
# === MacOS 14 / arm64 PRO ===
macos-arm64-pro:
runs-on: macos-14
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: Install
run: brew uninstall --ignore-dependencies libidn2
- name: Build
run: |
cd build
cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DBUILD_SDLGPU=On -DBUILD_PRO=On ..
cmake --build . --config $BUILD_TYPE --parallel
cpack
cp *.dmg tic80.dmg
# === Android ===
android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- uses: nttld/setup-ndk@v1
id: setup-ndk
with:
ndk-version: r21e
add-to-path: false
local-cache: true
- name: set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'temurin'
cache: gradle
- name: Build
run: |
cd build/android
chmod +x gradlew
./gradlew assembleRelease
cp app/build/outputs/apk/release/app-release.apk tic80.apk
env:
ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
- name: Deploy
uses: actions/upload-artifact@v3
with:
name: "tic80-android"
path: build/android/tic80.apk
# === HTML ===
html:
runs-on: ubuntu-latest
steps:
- uses: mymindstorm/setup-emsdk@v11
- uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6
- name: Build
run: |
cd build
emcmake cmake -DBUILD_SDLGPU=On -DCMAKE_BUILD_TYPE=$BUILD_TYPE ..
cmake --build . --config $BUILD_TYPE --parallel
mkdir bin/html bin/html-export
cp html/export.html bin/html-export/index.html
cp bin/tic80*.js bin/html-export/
cp bin/tic80*.wasm bin/html-export/
cp html/index.html bin/html/index.html
cp html/export.html bin/html/export.html
cp bin/tic80.js bin/html/tic80.js
cp bin/tic80.wasm bin/html/tic80.wasm
cp bin/tic80.js webapp/tic80.js
cp bin/tic80.wasm webapp/tic80.wasm
- name: Deploy
uses: actions/upload-artifact@v3
with:
name: "tic80-html"
path: |
build/bin/html/tic80.js
build/bin/html/tic80.wasm
build/bin/html/index.html
build/bin/html/export.html
- name: Deploy WebApp
uses: actions/upload-artifact@v3
with:
name: "tic80-webapp"
path: |
build/webapp/index.html
build/webapp/serviceworker.js
build/webapp/tic80-180.png
build/webapp/tic80-192.png
build/webapp/tic80-512.png
build/webapp/tic80.webmanifest
build/webapp/tic80.js
build/webapp/tic80.wasm