New Crowdin updates #1213
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Builds on all branches & PRs and packages for MacOS and Windows. | |
# Deploys to PyPi for tags. | |
name: Build, test and publish | |
on: | |
push: | |
branches: | |
- master | |
- release | |
- version/* | |
pull_request: | |
branches-ignore: | |
- l10n_master | |
create: | |
tags: | |
- '*' | |
jobs: | |
typechecks: | |
runs-on: ubuntu-latest | |
name: Type checks | |
strategy: | |
max-parallel: 5 | |
matrix: | |
python-version: [ "3.9", "3.10", "3.11", "3.12" ] | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: theCapypara/mypy-check@rust-support | |
name: Run type checks | |
with: | |
mypy_flags: '--config-file mypy.ini' | |
requirements: '-r requirements-dev.txt' | |
python_version: '${{ matrix.python-version }}' | |
linting: | |
runs-on: ubuntu-latest | |
name: Linting | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install gobject-introspection and other build deps | |
run: sudo apt-get install -y gobject-introspection libgirepository1.0-dev gir1.2-gtk-4.0 gir1.2-adw-1 pkg-config libcairo2-dev gettext make | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install -r requirements-dev.txt | |
- name: Lint with ruff | |
run: ruff check --output-format=github skytemple_randomizer | |
code-formatting: | |
runs-on: ubuntu-latest | |
name: Code Format | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
- name: Install ruff | |
run: | | |
python -m pip install --upgrade pip | |
pip install ruff | |
- name: Check with ruff | |
run: ruff format --check skytemple_randomizer | |
build: | |
runs-on: ubuntu-24.04 | |
name: Build the Python wheel | |
steps: | |
# For tags we assume the version in pyproject.toml is correct! | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Install gobject-introspection and other build deps | |
run: sudo apt-get install -y gobject-introspection libgirepository1.0-dev gir1.2-gtk-4.0 gir1.2-adw-1 pkg-config libcairo2-dev gettext make | |
- name: Rewrite version for dev if not tag | |
if: "!startsWith(github.ref, 'refs/tags/')" | |
run: | | |
perl -i -pe "s/version\s*=\s*\"(.*?)(\.rc.*|\.a.*|\.post.*)?\"/version=\"\1.dev0+${GITHUB_SHA::8}\"/" pyproject.toml | |
- name: Note version | |
run: | | |
echo "PACKAGE_VERSION=$(tomlq '.project.version' pyproject.toml -r)" >> $GITHUB_ENV | |
- name: Build Python wheels | |
run: | | |
python3 -m pip install --break-system-packages --upgrade build | |
python3 -m build | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels | |
path: dist/*.whl | |
deploy: | |
if: startsWith(github.ref, 'refs/tags/') | |
needs: | |
- build | |
- package-windows | |
- package-mac | |
- package-mac-arm64 | |
- package-linux-flatpak-stable | |
runs-on: ubuntu-latest | |
name: Deploy wheels to PyPI | |
steps: | |
- name: Download wheels | |
uses: actions/download-artifact@v4 | |
with: | |
name: wheels | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.11 | |
- name: Upgrade pip | |
run: | | |
python -m pip install --upgrade pip | |
pip install twine | |
- name: Publish wheels to PyPI | |
env: | |
TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} | |
TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }} | |
run: | | |
twine upload *.whl | |
deploy-to-artifact-storage: | |
runs-on: [self-hosted, artifact-storage] | |
name: Upload artifacts | |
needs: | |
- build | |
- package-windows | |
- package-mac | |
- package-mac-arm64 | |
concurrency: | |
group: "${{ github.workflow }}-${{ github.ref }}" | |
steps: | |
- name: Clear | |
run: | | |
rm -rf "${{ github.workspace }}/artifacts" || true | |
mkdir -p "${{ github.workspace }}/artifacts" | |
- name: Download wheels | |
id: artifact_wheel | |
uses: actions/download-artifact@v4 | |
with: | |
path: ${{ github.workspace }}/artifacts/whl | |
name: wheels | |
- name: Download Windows | |
id: artifact_windows | |
uses: actions/download-artifact@v4 | |
with: | |
path: ${{ github.workspace }}/artifacts/win | |
name: skytemple-randomizer-windows-app-x64 | |
- name: Download MacOS Intel | |
id: artifact_macos_x86 | |
uses: actions/download-artifact@v4 | |
with: | |
path: ${{ github.workspace }}/artifacts/mac_x86 | |
name: skytemple-randomizer-mac-dmg-x86_64 | |
- name: Download MacOS ARM | |
id: artifact_macos_arm64 | |
uses: actions/download-artifact@v4 | |
with: | |
path: ${{ github.workspace }}/artifacts/mac_arm64 | |
name: skytemple-randomizer-mac-dmg-arm64 | |
- name: Copy over distributions | |
run: | | |
# Replace / in PR refs (123/merge -> 123-merge) | |
REF=${GITHUB_REF_NAME/\//-} | |
PATH_WHEEL=$(eval echo "${{ steps.artifact_wheel.outputs.download-path }}/*.whl") | |
PATH_WIN=$(eval echo "${{ steps.artifact_windows.outputs.download-path }}/*.exe") | |
PATH_MACOS=$(eval echo "${{ steps.artifact_macos_x86.outputs.download-path }}/*.dmg") | |
PATH_MACOS_ARM=$(eval echo "${{ steps.artifact_macos_arm64.outputs.download-path }}/*.dmg") | |
mkdir -p /mnt/dist/randomizer | |
cp -f "$PATH_WHEEL" "/mnt/dist/randomizer/skytemple-randomizer-$REF.whl" | |
cp -f "$PATH_WIN" "/mnt/dist/randomizer/skytemple-randomizer-$REF.exe" | |
cp -f "$PATH_MACOS" "/mnt/dist/randomizer/skytemple-randomizer-x86-$REF.dmg" | |
cp -f "$PATH_MACOS_ARM" "/mnt/dist/randomizer/skytemple-randomizer-arm64-$REF.dmg" | |
deploy-to-skytemple-dist: | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: [self-hosted, skytemple-dist] | |
name: Upload to Deposit Box | |
needs: | |
- build | |
- package-windows | |
- package-mac | |
- package-mac-arm64 | |
steps: | |
- name: Clear | |
run: | | |
rm -rf "${{ github.workspace }}/artifacts" || true | |
mkdir -p "${{ github.workspace }}/artifacts" | |
- name: Download Windows | |
id: artifact_windows | |
uses: actions/download-artifact@v4 | |
with: | |
path: ${{ github.workspace }}/artifacts/win | |
name: skytemple-randomizer-windows-app-x64 | |
- name: Download MacOS Intel | |
id: artifact_macos_x86 | |
uses: actions/download-artifact@v4 | |
with: | |
path: ${{ github.workspace }}/artifacts/mac_x86 | |
name: skytemple-randomizer-mac-dmg-x86_64 | |
- name: Download MacOS ARM | |
id: artifact_macos_arm64 | |
uses: actions/download-artifact@v4 | |
with: | |
path: ${{ github.workspace }}/artifacts/mac_arm64 | |
name: skytemple-randomizer-mac-dmg-arm64 | |
- name: Copy over distributions | |
run: | | |
PATH_WIN=$(eval echo "${{ steps.artifact_windows.outputs.download-path }}/*.exe") | |
PATH_MACOS=$(eval echo "${{ steps.artifact_macos_x86.outputs.download-path }}/*.dmg") | |
PATH_MACOS_ARM=$(eval echo "${{ steps.artifact_macos_arm64.outputs.download-path }}/*.dmg") | |
dist.py "$PATH_WIN" "randomizer/$GITHUB_REF_NAME/skytemple-randomizer-$GITHUB_REF_NAME-win-install.exe" | |
dist.py "$PATH_MACOS" "randomizer/$GITHUB_REF_NAME/skytemple-randomizer-$GITHUB_REF_NAME-mac-install-x86-64.dmg" | |
dist.py "$PATH_MACOS_ARM" "randomizer/$GITHUB_REF_NAME/skytemple-randomizer-$GITHUB_REF_NAME-mac-install-arm64.dmg" | |
package-linux-flatpak-nightly: | |
name: Linux Flatpak Nightly | |
runs-on: ubuntu-latest | |
container: | |
image: bilelmoussaoui/flatpak-github-actions:gnome-46 | |
options: --privileged | |
steps: | |
# Most of these are needed because of a bug in pip download, which causes pip download to attempt to build all build dependencies.. | |
- name: Install dependencies | |
run: | | |
sudo yum install -y perl python3 python3-pip python3-devel gobject-introspection-devel meson cmake pkg-config cairo-devel cairo-gobject-devel make automake gcc gcc-c++ | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install generator dependencies | |
run: | | |
pip3 install -r installer/linux-flatpak/requirements.txt | |
- name: Rewrite version for dev if not tag | |
if: "!startsWith(github.ref, 'refs/tags/')" | |
run: | | |
perl -i -pe "s/version\s*=\s*\"(.*?)(\.rc.*|\.a.*|\.post.*)?\"/version=\"\1.dev0+${GITHUB_SHA::8}\"/" pyproject.toml | |
- name: Run generator | |
run: | | |
python3 -u installer/linux-flatpak/generator.py nightly | |
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6 | |
name: Build Flatpak | |
with: | |
bundle: org.skytemple.Randomizer.flatpak | |
manifest-path: installer/linux-flatpak/org.skytemple.Randomizer.yml | |
cache-key: flatpak-builder-${{ github.sha }} | |
- uses: flatpak/flatpak-github-actions/flat-manager@v6 | |
name: Deploy to SkyTemple Repo | |
if: github.ref == 'refs/heads/master' | |
with: | |
repository: nightly | |
flat-manager-url: https://flatpak.skytemple.org/ | |
token: ${{ secrets.SKYTEMPLE_FLATPAK_REPO_TOKEN }} | |
package-linux-flatpak-stable: | |
if: startsWith(github.ref, 'refs/tags/') | |
name: Linux Flatpak Stable | |
runs-on: ubuntu-latest | |
container: | |
image: bilelmoussaoui/flatpak-github-actions:gnome-46 | |
options: --privileged | |
steps: | |
# Most of these are needed because of a bug in pip download, which causes pip download to attempt to build all build dependencies.. | |
- name: Install dependencies | |
run: | | |
sudo yum install -y python3 python3-pip python3-devel jq gobject-introspection-devel meson cmake pkg-config cairo-devel cairo-gobject-devel make automake gcc gcc-c++ | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- name: Install generator dependencies | |
run: | | |
pip3 install -r installer/linux-flatpak/requirements.txt tomlq | |
- name: Note version | |
run: | | |
echo "PACKAGE_VERSION=$(tomlq '.project.version' pyproject.toml -r)" >> $GITHUB_ENV | |
- name: Run generator | |
run: | | |
python3 -u installer/linux-flatpak/generator.py stable | |
- uses: flatpak/flatpak-github-actions/flatpak-builder@v6 | |
name: Build Flatpak | |
with: | |
bundle: org.skytemple.Randomizer.flatpak | |
manifest-path: installer/linux-flatpak/stable/org.skytemple.Randomizer.yml | |
- name: Checkout Flathub GH Repo | |
uses: actions/checkout@v4 | |
with: | |
repository: flathub/org.skytemple.Randomizer | |
path: flathub | |
token: ${{ secrets.FLATHUB_GITHUB_TOKEN }} | |
- name: Delete all old files | |
run: | | |
git rm -rf . | |
git clean -fxd | |
working-directory: flathub | |
- name: Copy stable build to FlatHub Repo | |
run: | | |
cp -a installer/linux-flatpak/stable/. flathub/ | |
- name: Create Pull Request | |
uses: peter-evans/create-pull-request@v6 | |
with: | |
add-paths: . | |
title: New Release ${{ env.PACKAGE_VERSION }} | |
body: Autogenerated by ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} | |
commit-message: New Release ${{ env.PACKAGE_VERSION }} | |
path: flathub | |
token: ${{ secrets.FLATHUB_GITHUB_TOKEN }} | |
branch: release/${{ env.PACKAGE_VERSION }} | |
delete-branch: true | |
package-windows: | |
# This is partly based on https://github.com/wingtk/gvsbuild/blob/main/.github/workflows/ci.yml | |
runs-on: windows-2022 | |
name: Build and package for Windows | |
steps: | |
- name: Setup python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
architecture: "x64" | |
- name: Cache GTK-Build | |
id: cache-gtk-build | |
uses: actions/cache@v4 | |
with: | |
path: "C:\\gtk-build" | |
key: win-gtk-build-vgtk4-2024.8.1-1 | |
restore-keys: | | |
win-gtk-build-vgtk4-2024.8.1-1 | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
# Temporarily move the preinstalled git, it causes errors related to cygwin. | |
- name: Move git binary | |
run: | | |
Move-Item "C:\Program Files\Git\usr\bin" "C:\Program Files\Git\usr\notbin" | |
Move-Item "C:\Program Files\Git\bin" "C:\Program Files\Git\notbin" | |
- name: Install gvsbuild | |
run: | | |
# gvsbuild has issues if the pipx install path has spaces in it. It may be installed | |
# in Program Files (x86) by default, so let's just make sure it isn't. | |
if (Test-Path "C:\Program Files (x86)\pipx") { | |
Remove-Item -path "C:\Program Files (x86)\pipx" -recurse | |
} | |
# Make sure the pipx venv dir has no spaces | |
New-Item -ItemType Directory -Force -Path C:\pipx_home | |
$env:PIPX_HOME = "C:\pipx_home" | |
echo "PIPX_HOME=C:\pipx_home" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
New-Item -ItemType Directory -Force -Path C:\pipx_bin | |
$env:PIPX_BIN_DIR = "C:\pipx_bin" | |
echo "PIPX_BIN_DIR=C:\pipx_bin" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
$env:path = "C:\pipx_bin;" + $env:path | |
python -m pip install --user pipx | |
python -m pipx ensurepath | |
pipx install "gvsbuild==2024.8.1" | |
- name: Build GTK and other libs | |
run: | | |
$env:path = "C:\pipx_bin;" + $env:path | |
gvsbuild build --fast-build --ninja-opts -j2 --enable-gi --py-wheel gtk4 pygobject openssl gettext libadwaita hicolor-icon-theme adwaita-icon-theme | |
- name: Restore git binary | |
run: | | |
Move-Item "C:\Program Files\Git\usr\notbin" "C:\Program Files\Git\usr\bin" | |
Move-Item "C:\Program Files\Git\notbin" "C:\Program Files\Git\bin" | |
- name: Rewrite version for dev if not tag | |
if: "!startsWith(github.ref, 'refs/tags/')" | |
shell: sh | |
run: | | |
perl -i -pe "s/version\s*=\s*\"(.*?)(\.rc.*|\.a.*|\.post.*)?\"/version=\"\1.dev0+${GITHUB_SHA::8}\"/" pyproject.toml | |
echo "IS_DEV_BUILD=1" >> $GITHUB_ENV | |
- name: Note version | |
run: | | |
$env:path = "C:\pipx_bin;" + $env:path | |
pipx install yq | |
$env:PACKAGE_VERSION = tomlq.exe '.project.version' pyproject.toml -r | |
echo "PACKAGE_VERSION=$env:PACKAGE_VERSION" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append | |
- name: Install SkyTemple Randomizer | |
run: | | |
$ErrorActionPreference = "Stop" | |
$env:pathext = $env:pathext + ";.PY" | |
$env:path = "C:\gtk-build\gtk\x64\release\bin;" + $env:path | |
$env:LIB = "C:\gtk-build\gtk\x64\release\lib;" + $env:LIB | |
$env:INCLUDE = "C:\gtk-build\gtk\x64\release\include;C:\gtk-build\gtk\x64\release\include\cairo;C:\gtk-build\gtk\x64\release\include\glib-2.0;C:\gtk-build\gtk\x64\release\include\gobject-introspection-1.0;C:\gtk-build\gtk\x64\release\lib\glib-2.0\include;" + $env:INCLUDE | |
# Install PyGObject and pycairo | |
pip install --force-reinstall (Resolve-Path C:\gtk-build\build\x64\release\pygobject\dist\PyGObject*.whl) | |
pip install --force-reinstall (Resolve-Path C:\gtk-build\build\x64\release\pycairo\dist\pycairo*.whl) | |
# Check GObject availability | |
python -c 'import gi; gi.require_version("Gtk", "4.0"); gi.require_version("Adw", "1"); from gi.repository import GObject, Gio, GLib, Gtk, Gdk, Adw' | |
if ($LASTEXITCODE) { exit $LASTEXITCODE } | |
if ($LASTEXITCODE) { exit $LASTEXITCODE } | |
cd installer | |
# Package | |
.\build-windows.ps1 $PACKAGE_VERSION | |
if ($LASTEXITCODE) { exit $LASTEXITCODE } | |
if(!(Test-Path ".\dist\skytemple_randomizer\skytemple_randomizer.exe")){ | |
exit 1 | |
} | |
- name: Create installer | |
uses: joncloud/[email protected] | |
with: | |
script-file: "installer/skytemple-randomizer.nsi" | |
arguments: "/DPRODUCT_VERSION=${{ env.PACKAGE_VERSION }} /DINST_LIST=install_list.nsh /DUNINST_LIST=uninstall_list.nsh" | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: skytemple-randomizer-windows-app-x64 | |
path: | | |
installer/skytemple-randomizer-*.exe | |
package-mac: | |
runs-on: macos-12 | |
name: Build and package for Mac OS (Intel) | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Rewrite version for dev if not tag | |
if: "!startsWith(github.ref, 'refs/tags/')" | |
run: | | |
perl -i -pe "s/version\s*=\s*\"(.*?)(\.rc.*|\.a.*|\.post.*)?\"/version=\"\1.dev0+${GITHUB_SHA::8}\"/" pyproject.toml | |
echo "IS_DEV_BUILD=1" >> $GITHUB_ENV | |
- name: Note version | |
run: | | |
python3 -m venv .yq-venv | |
. .yq-venv/bin/activate | |
pip install yq | |
echo "PACKAGE_VERSION=$(tomlq '.project.version' pyproject.toml -r)" >> $GITHUB_ENV | |
- name: Install base packages | |
run: | | |
brew install pygobject3 gtk4 [email protected] libadwaita adwaita-icon-theme sdl cmake | |
echo "PATH=/usr/local/opt/[email protected]/bin:/usr/local/bin:$PATH" >> $GITHUB_ENV | |
python3.12 -m venv .venv | |
. .venv/bin/activate | |
pip3 debug --verbose # print compatible tags etc. for debugging purposes | |
- name: Make sure PyGObject is available. | |
run: | | |
. .venv/bin/activate | |
pip3 install "pygobject>=3.44.0" | |
- name: Install and package | |
run: | | |
. .venv/bin/activate | |
# Install other dependencies and SkyTemple Randomizer itself | |
pip3 install skytemple-rust 'pyinstaller~=6.0' | |
pip3 install -r requirements-frozen.txt | |
pip3 install '.[gtk]' | |
if [ -n "$IS_DEV_BUILD" ]; then | |
installer/install-skytemple-components-from-git.sh | |
fi | |
# Check GObject availability | |
python -c 'import gi; gi.require_version("Gtk", "4.0"); gi.require_version("Adw", "1"); from gi.repository import GObject, Gio, GLib, Gtk, Gdk, Adw' | |
cd installer | |
# Download armips | |
curl https://skytemple.org/build_deps/mac/armips -O | |
chmod +x armips | |
# Package | |
./build-mac.sh $PACKAGE_VERSION | |
- name: Create installer | |
run: | | |
# See https://github.com/sindresorhus/create-dmg | |
# create-dmg automatically generates an installer icon if imagemagick is installed | |
brew install graphicsmagick imagemagick | |
# This tool returns exit code 2 if the DMG was created but code signing failed for some reason | |
npx create-dmg --dmg-title="SkyTemple Randomizer" "installer/dist/SkyTemple Randomizer.app" installer || true | |
- name: Upload .dmg | |
uses: actions/upload-artifact@v4 | |
with: | |
name: skytemple-randomizer-mac-dmg-x86_64 | |
path: | | |
installer/SkyTemple Randomizer*.dmg | |
package-mac-arm64: | |
runs-on: macos-14 | |
name: Build and package for Mac OS (ARM) | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Rewrite version for dev if not tag | |
if: "!startsWith(github.ref, 'refs/tags/')" | |
run: | | |
perl -i -pe "s/version\s*=\s*\"(.*?)(\.rc.*|\.a.*|\.post.*)?\"/version=\"\1.dev0+${GITHUB_SHA::8}\"/" pyproject.toml | |
echo "IS_DEV_BUILD=1" >> $GITHUB_ENV | |
- name: Note version | |
run: | | |
python3 -m venv .yq-venv | |
. .yq-venv/bin/activate | |
pip install yq | |
echo "PACKAGE_VERSION=$(tomlq '.project.version' pyproject.toml -r)" >> $GITHUB_ENV | |
- name: Install base packages | |
run: | | |
brew install pygobject3 gtk4 [email protected] libadwaita adwaita-icon-theme sdl meson cmake | |
echo "PATH=/usr/local/opt/[email protected]/bin:/usr/local/bin:$PATH" >> $GITHUB_ENV | |
python3.12 -m venv .venv | |
. .venv/bin/activate | |
pip3 debug --verbose # print compatible tags etc. for debugging purposes | |
- name: Make sure PyGObject is available. | |
run: | | |
. .venv/bin/activate | |
pip3 install "pygobject>=3.44.0" | |
- name: Install and package | |
run: | | |
. .venv/bin/activate | |
# Install other dependencies and SkyTemple Randomizer itself | |
pip3 install skytemple-rust 'pyinstaller~=6.0' | |
pip3 install -r requirements-frozen.txt | |
pip3 install '.[gtk]' | |
if [ -n "$IS_DEV_BUILD" ]; then | |
installer/install-skytemple-components-from-git.sh | |
fi | |
# Check GObject availability | |
python -c 'import gi; gi.require_version("Gtk", "4.0"); gi.require_version("Adw", "1"); from gi.repository import GObject, Gio, GLib, Gtk, Gdk, Adw' | |
cd installer | |
# Download armips | |
curl https://skytemple.org/build_deps/mac/armips-mac-arm64 -o armips | |
chmod +x armips | |
# Package | |
./build-mac.sh $PACKAGE_VERSION | |
- name: Create installer | |
run: | | |
# See https://github.com/sindresorhus/create-dmg | |
# create-dmg automatically generates an installer icon if imagemagick is installed | |
brew install graphicsmagick imagemagick | |
# This tool returns exit code 2 if the DMG was created but code signing failed for some reason | |
npx create-dmg --dmg-title="SkyTemple Randomizer" "installer/dist/SkyTemple Randomizer.app" installer || true | |
- name: Upload .dmg | |
uses: actions/upload-artifact@v4 | |
with: | |
name: skytemple-randomizer-mac-dmg-arm64 | |
path: | | |
installer/SkyTemple Randomizer*.dmg |