mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
423 lines
21 KiB
YAML
423 lines
21 KiB
YAML
name: Continuous integration
|
|
#on: [pull_request, push]
|
|
on:
|
|
push:
|
|
pull_request:
|
|
workflow_dispatch:
|
|
inputs:
|
|
triggerIos:
|
|
description: 'Run iOS tests'
|
|
required: true
|
|
default: 'yes'
|
|
triggerMacos:
|
|
description: 'Run macOS tests'
|
|
required: true
|
|
default: 'yes'
|
|
trigger3DS:
|
|
description: 'Run 3DS tests'
|
|
required: true
|
|
default: 'yes'
|
|
jobs:
|
|
fxcg:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'recursive'
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install build-essential cmake libfreetype-dev -y
|
|
- name: Get latest gint commit hash
|
|
run: |
|
|
LATEST_COMMIT_HASH=$(curl --silent https://git.planet-casio.com/api/v1/repos/Lephenixnoir/gint/branches/master | jq -r .commit.id)
|
|
echo "Latest commit hash is: $LATEST_COMMIT_HASH"
|
|
echo "LATEST_COMMIT_HASH=$LATEST_COMMIT_HASH" >> $GITHUB_OUTPUT
|
|
id: get-latest-commit-hash
|
|
- name: Cache gint/fxsdk installation
|
|
id: cache-gint
|
|
uses: actions/cache@v4
|
|
with:
|
|
path: |
|
|
~/.local/*/*
|
|
!~/.local/share/containers
|
|
key: ${{ runner.os }}-gint-${{ steps.get-latest-commit-hash.outputs.LATEST_COMMIT_HASH }}
|
|
- name: Install gint/fxsdk
|
|
if: steps.cache-gint.outputs.cache-hit != 'true'
|
|
env:
|
|
URL: "https://git.planet-casio.com/Lephenixnoir/GiteaPC/archive/master.tar.gz"
|
|
run: |
|
|
export PATH="~/.local/bin:$PATH"
|
|
cd "$(mktemp -d)"
|
|
curl "$URL" -o giteapc-master.tar.gz
|
|
tar -xzf giteapc-master.tar.gz
|
|
cd giteapc
|
|
python3 giteapc.py install Lephenixnoir/GiteaPC -y
|
|
sudo apt-get install python3-pil libusb-1.0-0-dev libudev-dev libsdl2-dev libpng-dev libudisks2-dev libglib2.0-dev libmpfr-dev libmpc-dev libppl-dev -y
|
|
giteapc install Lephenixnoir/fxsdk:noudisks2 Lephenixnoir/sh-elf-binutils Lephenixnoir/sh-elf-gcc -y
|
|
giteapc install Lephenixnoir/OpenLibm Vhex-Kernel-Core/fxlibc Lephenixnoir/sh-elf-gcc -y
|
|
giteapc install Lephenixnoir/gint -y
|
|
- name: Add fxsdk to PATH
|
|
run: echo "~/.local/bin" >> $GITHUB_PATH
|
|
- run: make -j2 PLATFORM=simulator TARGET=fxcg
|
|
- id: 'auth'
|
|
if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }}
|
|
uses: 'google-github-actions/auth@v0'
|
|
with:
|
|
credentials_json: '${{secrets.GOOGLE_CREDENTIALS}}'
|
|
- id: 'upload-directory'
|
|
if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }}
|
|
uses: 'google-github-actions/upload-cloud-storage@v0'
|
|
with:
|
|
path: 'output/release/simulator/fxcg/epsilon.g3a'
|
|
destination: 'upsilon-binfiles.appspot.com/dev/simulator/'
|
|
parent: false
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: epsilon.g3a
|
|
path: output/release/simulator/fxcg/epsilon.g3a
|
|
nintendo_3ds:
|
|
if: github.event.inputs.trigger3DS == 'yes' || github.event.inputs.trigger3DS == ''
|
|
runs-on: ubuntu-latest
|
|
container: devkitpro/devkitarm:latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: true
|
|
- run: sudo apt-get update
|
|
- run: sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config -y
|
|
- run: yes | sudo dkp-pacman -S --needed devkitARM 3dstools libctru
|
|
- run: wget https://github.com/3DSGuy/Project_CTR/releases/download/makerom-v0.18.3/makerom-v0.18.3-ubuntu_x86_64.zip
|
|
- run: unzip makerom-v0.18.3-ubuntu_x86_64.zip
|
|
- run: rm makerom-v0.18.3-ubuntu_x86_64.zip
|
|
- run: chmod +x ./makerom
|
|
- run: echo "PATH=.:$PATH" >> $GITHUB_ENV
|
|
- run: make -j2 PLATFORM=simulator TARGET=3ds
|
|
- run: make -j2 PLATFORM=simulator TARGET=3ds epsilon.cia
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: epsilon-3ds.3dsx
|
|
path: output/release/simulator/3ds/epsilon.3dsx
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: epsilon-3ds.cia
|
|
path: output/release/simulator/3ds/epsilon.cia
|
|
android:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'recursive'
|
|
- run: |
|
|
sudo apt-get update
|
|
sudo apt-get install imagemagick libfreetype-dev libpng-dev
|
|
- name: Set up JDK 25
|
|
uses: actions/setup-java@v5
|
|
with:
|
|
java-version: '25'
|
|
distribution: 'temurin'
|
|
- run: wget -nv https://dl.google.com/android/repository/android-ndk-r21e-linux-x86_64.zip
|
|
- run: unzip -q android-ndk-r21e-linux-x86_64.zip
|
|
- run: make -j2 PLATFORM=simulator TARGET=android NDK_PATH=./android-ndk-r21e
|
|
- id: 'auth'
|
|
if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }}
|
|
uses: 'google-github-actions/auth@v0'
|
|
with:
|
|
credentials_json: '${{secrets.GOOGLE_CREDENTIALS}}'
|
|
- id: 'upload-file'
|
|
if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }}
|
|
uses: 'google-github-actions/upload-cloud-storage@v0'
|
|
with:
|
|
path: 'output/release/simulator/android/epsilon.apk'
|
|
destination: 'upsilon-binfiles.appspot.com/dev/simulator/'
|
|
parent: false
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: epsilon-android.apk
|
|
path: output/release/simulator/android/epsilon.apk
|
|
n0100:
|
|
runs-on: ubuntu-24.04-arm
|
|
steps:
|
|
- run: |
|
|
sudo apt-get update
|
|
sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config gcc-arm-none-eabi binutils-arm-none-eabi
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'recursive'
|
|
- run: mkdir final-output
|
|
- run: make -j2 MODEL=n0100 EPSILON_I18N=en output/release/device/n0100/epsilon.onboarding.two_binaries
|
|
- run: make -j2 MODEL=n0100 EPSILON_I18N=en output/release/device/n0100/epsilon.onboarding.two_binaries
|
|
- run: mv output/release/device/n0100/epsilon.onboarding.internal.bin final-output/epsilon.onboarding.en.internal.bin
|
|
- run: rm output/release/device/n0100/apps/i18n.o output/release/device/n0100/apps/i18n.cpp
|
|
# We need to duplicate make to work around i18n generator race condition in Makefile leading to inconsistent incremental rebuilds
|
|
- run: make -j2 MODEL=n0100 EPSILON_I18N=fr output/release/device/n0100/epsilon.onboarding.two_binaries
|
|
- run: make -j2 MODEL=n0100 EPSILON_I18N=fr output/release/device/n0100/epsilon.onboarding.two_binaries
|
|
- run: mv output/release/device/n0100/epsilon.onboarding.internal.bin final-output/epsilon.onboarding.fr.internal.bin
|
|
- run: rm output/release/device/n0100/apps/i18n.o output/release/device/n0100/apps/i18n.cpp
|
|
- run: make -j2 MODEL=n0100 EPSILON_I18N=nl output/release/device/n0100/epsilon.onboarding.two_binaries
|
|
- run: make -j2 MODEL=n0100 EPSILON_I18N=nl output/release/device/n0100/epsilon.onboarding.two_binaries
|
|
- run: mv output/release/device/n0100/epsilon.onboarding.internal.bin final-output/epsilon.onboarding.nl.internal.bin
|
|
- run: rm output/release/device/n0100/apps/i18n.o output/release/device/n0100/apps/i18n.cpp
|
|
- run: make -j2 MODEL=n0100 EPSILON_I18N=pt output/release/device/n0100/epsilon.onboarding.two_binaries
|
|
- run: make -j2 MODEL=n0100 EPSILON_I18N=pt output/release/device/n0100/epsilon.onboarding.two_binaries
|
|
- run: mv output/release/device/n0100/epsilon.onboarding.internal.bin final-output/epsilon.onboarding.pt.internal.bin
|
|
- run: rm output/release/device/n0100/apps/i18n.o output/release/device/n0100/apps/i18n.cpp
|
|
- run: make -j2 MODEL=n0100 EPSILON_I18N=it output/release/device/n0100/epsilon.onboarding.two_binaries
|
|
- run: make -j2 MODEL=n0100 EPSILON_I18N=it output/release/device/n0100/epsilon.onboarding.two_binaries
|
|
- run: mv output/release/device/n0100/epsilon.onboarding.internal.bin final-output/epsilon.onboarding.it.internal.bin
|
|
- run: rm output/release/device/n0100/apps/i18n.o output/release/device/n0100/apps/i18n.cpp
|
|
- run: make -j2 MODEL=n0100 EPSILON_I18N=de output/release/device/n0100/epsilon.onboarding.two_binaries
|
|
- run: make -j2 MODEL=n0100 EPSILON_I18N=de output/release/device/n0100/epsilon.onboarding.two_binaries
|
|
- run: mv output/release/device/n0100/epsilon.onboarding.internal.bin final-output/epsilon.onboarding.de.internal.bin
|
|
- run: rm output/release/device/n0100/apps/i18n.o output/release/device/n0100/apps/i18n.cpp
|
|
- run: make -j2 MODEL=n0100 EPSILON_I18N=es output/release/device/n0100/epsilon.onboarding.two_binaries
|
|
- run: make -j2 MODEL=n0100 EPSILON_I18N=es output/release/device/n0100/epsilon.onboarding.two_binaries
|
|
- run: mv output/release/device/n0100/epsilon.onboarding.internal.bin final-output/epsilon.onboarding.es.internal.bin
|
|
- run: rm output/release/device/n0100/apps/i18n.o output/release/device/n0100/apps/i18n.cpp
|
|
- run: make -j2 MODEL=n0100 EPSILON_I18N=hu output/release/device/n0100/epsilon.onboarding.two_binaries
|
|
- run: make -j2 MODEL=n0100 EPSILON_I18N=hu output/release/device/n0100/epsilon.onboarding.two_binaries
|
|
- run: mv output/release/device/n0100/epsilon.onboarding.internal.bin final-output/epsilon.onboarding.hu.internal.bin
|
|
- run: rm output/release/device/n0100/apps/i18n.o output/release/device/n0100/apps/i18n.cpp
|
|
- run: make -j2 MODEL=n0100 output/release/device/n0100/flasher.light.bin
|
|
- run: mv output/release/device/n0100/flasher.light.bin final-output/flasher.light.bin
|
|
- run: make -j2 MODEL=n0100 output/release/device/n0100/flasher.verbose.bin
|
|
- run: mv output/release/device/n0100/flasher.verbose.bin final-output/flasher.verbose.bin
|
|
- run: find final-output/ -type f -exec bash -c "shasum -a 256 -b {} > {}.sha256" \;
|
|
- run: tar cvfz binpack-n0100.tgz final-output/*
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: epsilon-binpack-n0100.tgz
|
|
path: binpack-n0100.tgz
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
repository: Yaya-Cout/Upsilon-binfiles
|
|
ref: 'main'
|
|
token: ${{ secrets.PAT_UPSILON_BINFILES }}
|
|
path: 'binfiles'
|
|
# TODO: Handle git conflicts using rebase
|
|
- name: Upload binary files to website
|
|
if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon'}}
|
|
run: |
|
|
cp -r final-output/* binfiles/binaries/dev/n100
|
|
cd binfiles
|
|
git add -A
|
|
git config --global user.email "ci@github.com"
|
|
git config --global user.name "GitHub Upsilon CI"
|
|
git pull
|
|
git commit -m "Update from CI"
|
|
git push
|
|
n0110:
|
|
runs-on: ubuntu-24.04-arm
|
|
steps:
|
|
- run: |
|
|
sudo apt-get update
|
|
sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config gcc-arm-none-eabi binutils-arm-none-eabi
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'recursive'
|
|
- run: make -j2 MODEL=n0110 epsilon.dfu
|
|
- run: make -j2 MODEL=n0110 epsilon.onboarding.dfu
|
|
- run: make -j2 MODEL=n0110 epsilon.onboarding.update.dfu
|
|
- run: make -j2 MODEL=n0110 epsilon.onboarding.beta.dfu
|
|
- run: make -j2 MODEL=n0110 flasher.light.dfu
|
|
- run: make -j2 MODEL=n0110 flasher.verbose.dfu
|
|
- run: make -j2 MODEL=n0110 flasher.verbose.bin
|
|
- run: make -j2 MODEL=n0110 bench.ram.dfu
|
|
# - run: make -j2 MODEL=n0110 bench.flash.dfu
|
|
- run: make -j2 MODEL=n0110 binpack
|
|
- run: cp output/release/device/n0110/binpack-n0110-`git rev-parse HEAD | head -c 7`.tgz output/release/device/n0110/binpack-n0110.tgz
|
|
- run: cp output/release/device/n0110/flasher.verbose.bin output/release/device/n0110/binpack/
|
|
- run: cd output/release/device/n0110 && for binary in *.bin; do shasum -a 256 -b binpack/${binary} > binpack/${binary}.sha256;done
|
|
- run: cp output/release/device/n0110/binpack-n0110-`git rev-parse HEAD | head -c 7`.tgz output/release/device/n0110/binpack/binpack.tgz
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: epsilon-binpack-n0110.tgz
|
|
path: output/release/device/n0110/binpack-n0110.tgz
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
repository: Yaya-Cout/Upsilon-binfiles
|
|
ref: 'main'
|
|
token: ${{ secrets.PAT_UPSILON_BINFILES }}
|
|
path: 'binfiles'
|
|
# TODO: Handle git conflicts using rebase
|
|
- name: Upload binary files to website
|
|
if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon'}}
|
|
run: |
|
|
cp -r output/release/device/n0110/binpack/* binfiles/binaries/dev/n110
|
|
cd binfiles
|
|
git add -A
|
|
git config --global user.email "ci@github.com"
|
|
git config --global user.name "GitHub Upsilon CI"
|
|
git pull
|
|
git commit -m "Update from CI"
|
|
git push
|
|
bootloader:
|
|
runs-on: ubuntu-24.04-arm
|
|
steps:
|
|
- run: |
|
|
sudo apt-get update
|
|
sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config gcc-arm-none-eabi binutils-arm-none-eabi
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
submodules: 'recursive'
|
|
- run: make -j2 MODEL=n0110 bootloader
|
|
- run: make -j2 epsilon.A.dfu epsilon.B.dfu
|
|
- run: make -j2 epsilon.onboarding.A.dfu
|
|
- run: make -j2 epsilon.onboarding.B.dfu
|
|
- run: make -j2 epsilon.onboarding.update.A.dfu
|
|
- run: make -j2 epsilon.onboarding.update.B.dfu
|
|
- run: make -j2 epsilon.onboarding.beta.A.dfu
|
|
- run: make -j2 epsilon.onboarding.beta.B.dfu
|
|
- run: make -j2 binpack
|
|
- run: cp output/release/device/bootloader/binpack-bootloader-`git rev-parse HEAD | head -c 7`.tgz output/release/device/bootloader/binpack-bootloader.tgz
|
|
- run: cp output/release/device/n0110/bootloader.bin output/release/device/bootloader/binpack/
|
|
- run: cp output/release/device/n0110/bootloader.bin output/release/device/bootloader/
|
|
- run: cd output/release/device/bootloader && for binary in *.bin; do shasum -a 256 -b binpack/${binary} > binpack/${binary}.sha256;done
|
|
- run: cd output/release/device/bootloader && tar cvfz binpack-bootloader.tgz binpack/*
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: epsilon-binpack-bootloader.tgz
|
|
path: output/release/device/bootloader/binpack-bootloader.tgz
|
|
- uses: actions/checkout@v5
|
|
with:
|
|
repository: Yaya-Cout/Upsilon-binfiles
|
|
ref: 'main'
|
|
token: ${{ secrets.PAT_UPSILON_BINFILES }}
|
|
path: 'binfiles'
|
|
# TODO: Handle git conflicts using rebase
|
|
- name: Upload binary files to website
|
|
if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon'}}
|
|
run: |
|
|
cp -r output/release/device/bootloader/binpack/* binfiles/binaries/dev/n110
|
|
cd binfiles
|
|
git add -A
|
|
git config --global user.email "ci@github.com"
|
|
git config --global user.name "GitHub Upsilon CI"
|
|
git pull
|
|
git commit -m "Update from CI"
|
|
git push
|
|
windows:
|
|
runs-on: windows-latest
|
|
defaults:
|
|
run:
|
|
shell: msys2 {0}
|
|
steps:
|
|
- uses: msys2/setup-msys2@v2
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'recursive'
|
|
- run: pacman -S --noconfirm mingw-w64-x86_64-gcc mingw-w64-x86_64-freetype mingw-w64-x86_64-pkg-config make mingw-w64-x86_64-python3 mingw-w64-x86_64-libjpeg-turbo mingw-w64-x86_64-libpng
|
|
- run: make -j2 PLATFORM=simulator
|
|
- run: make -j2 PLATFORM=simulator test.exe
|
|
- run: cmd /c output\release\simulator\windows\test.exe --headless
|
|
- id: 'auth'
|
|
if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }}
|
|
uses: 'google-github-actions/auth@v0'
|
|
with:
|
|
credentials_json: '${{secrets.GOOGLE_CREDENTIALS}}'
|
|
- id: 'upload-file'
|
|
if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }}
|
|
uses: 'google-github-actions/upload-cloud-storage@v0'
|
|
with:
|
|
path: 'output/release/simulator/windows/epsilon.exe'
|
|
destination: 'upsilon-binfiles.appspot.com/dev/simulator/'
|
|
parent: false
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: epsilon-windows.exe
|
|
path: output/release/simulator/windows/epsilon.exe
|
|
web:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: numworks/setup-emscripten@master
|
|
with:
|
|
sdk: latest
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'recursive'
|
|
# Install the Linux toolchin to avoid dependancies issues, but maybe only libpng is needed
|
|
- run: |
|
|
sudo apt-get update
|
|
sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config libxtst-dev
|
|
- run: make -j2 PLATFORM=simulator TARGET=web
|
|
- run: make -j2 PLATFORM=simulator TARGET=web test.js
|
|
- run: node output/release/simulator/web/test.js --headless
|
|
- id: 'auth'
|
|
if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }}
|
|
uses: 'google-github-actions/auth@v0'
|
|
with:
|
|
credentials_json: '${{secrets.GOOGLE_CREDENTIALS}}'
|
|
- id: 'upload-file'
|
|
if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }}
|
|
uses: 'google-github-actions/upload-cloud-storage@v0'
|
|
with:
|
|
path: 'output/release/simulator/web/epsilon.js'
|
|
destination: 'upsilon-binfiles.appspot.com/dev/simulator/'
|
|
parent: false
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: epsilon-web.zip
|
|
path: output/release/simulator/web/epsilon.zip
|
|
linux:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- run: |
|
|
sudo apt-get update
|
|
sudo apt-get install build-essential imagemagick libfreetype6-dev libjpeg-dev libpng-dev pkg-config libxtst-dev
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'recursive'
|
|
- run: make -j2 PLATFORM=simulator
|
|
- run: make -j2 PLATFORM=simulator test.bin
|
|
- run: output/release/simulator/linux/test.bin --headless
|
|
- id: 'auth'
|
|
if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }}
|
|
uses: 'google-github-actions/auth@v0'
|
|
with:
|
|
credentials_json: '${{secrets.GOOGLE_CREDENTIALS}}'
|
|
- id: 'upload-file'
|
|
if: ${{ github.event_name == 'push' && github.ref_name == 'upsilon-dev' && github.repository == 'UpsilonNumworks/Upsilon' }}
|
|
uses: 'google-github-actions/upload-cloud-storage@v0'
|
|
with:
|
|
path: 'output/release/simulator/linux/epsilon.bin'
|
|
destination: 'upsilon-binfiles.appspot.com/dev/simulator/'
|
|
parent: false
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: epsilon-linux.bin
|
|
path: output/release/simulator/linux/epsilon.bin
|
|
macos:
|
|
if: github.event.inputs.triggerMacos == 'yes' || github.event.inputs.triggerMacos == ''
|
|
runs-on: macOS-latest
|
|
steps:
|
|
- run: brew install python-setuptools
|
|
- run: brew install numworks/tap/epsilon-sdk
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'recursive'
|
|
- run: make -j2 PLATFORM=simulator
|
|
- run: make -j2 PLATFORM=simulator ARCH=x86_64 test.bin
|
|
- run: output/release/simulator/macos/x86_64/test.bin --headless
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: epsilon-macos.zip
|
|
path: output/release/simulator/macos/epsilon.app
|
|
ios:
|
|
if: github.event.inputs.triggerIos == 'yes' || github.event.inputs.triggerIos == ''
|
|
runs-on: macOS-latest
|
|
steps:
|
|
- run: brew install python-setuptools
|
|
- run: brew install numworks/tap/epsilon-sdk
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
submodules: 'recursive'
|
|
- run: make -j2 PLATFORM=simulator TARGET=ios EPSILON_TELEMETRY=0
|
|
- run: make -j2 PLATFORM=simulator TARGET=ios EPSILON_TELEMETRY=0 APPLE_PLATFORM=ios-simulator
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: epsilon-ios.ipa
|
|
path: output/release/simulator/ios/epsilon.ipa
|
|
|
|
env:
|
|
ACCEPT_OFFICIAL_TOS: 1
|