Files
PyTaiko/.github/workflows/main.yml
2025-06-12 14:58:16 -04:00

76 lines
2.5 KiB
YAML

name: PyTaiko2
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
permissions:
contents: read
jobs:
build:
strategy:
matrix:
os: [macos-14, ubuntu-22.04, windows-2022]
runs-on: ${{ matrix.os }}
steps:
- name: Check-out repository
uses: actions/checkout@v4
- name: Install uv
uses: astral-sh/setup-uv@v4
with:
enable-cache: false
- name: Setup Python
run: uv python install 3.12
- name: Clear UV cache
run: |
uv cache clean
- name: Install Dependencies
run: |
uv sync --locked
- name: Install Nuitka
run: |
uv add nuitka
- name: Clear Build Cache
run: |
rm -rf ~/.nuitka
rm -rf PyTaiko.dist
rm -rf PyTaiko.build
shell: bash
continue-on-error: true
- name: Build Executable
run: |
# Create completely isolated environment
mkdir -p isolated-build
cp -r . isolated-build/
cd isolated-build
# Remove all Python cache
find . -name "*.pyc" -delete
find . -name "__pycache__" -type d -exec rm -rf {} + || true
# Build with maximum isolation
uv run nuitka \
--mode=app \
--remove-output \
--output-dir=../build-output \
--no-cached-results \
--disable-cache=all \
--python-flag=isolated \
--temp-dir=../nuitka-temp \
--include-module=raylib,moviepy,numpy,sounddevice,soundfile,tomlkit \
--noinclude-setuptools-mode=nofollow \
--noinclude-IPython-mode=nofollow \
PyTaiko.py
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: PyTaiko ${{ runner.os }} Build
path: |
Graphics/*
Sounds/*
Videos/*
config.toml
*.exe
*.bin
*.app/**/*