Skip to content

Under New Management #73

Under New Management

Under New Management #73

Workflow file for this run

name: CI
on:
push:
branches:
- main
tags:
- '*'
pull_request:
workflow_dispatch:
jobs:
windows-exe:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
target: [x64]
steps:
- name: Checkout branch
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
architecture: ${{ matrix.target }}
- name: Build .exe
run: |
pip install pyinstaller
cargo build --release
ren ./target/release/tt_damage_calculator.dll tt_damage_calculator.pyd
move ./target/release/tt_damage_calculator.pyd ./src/tt_damage_calculator
pyinstaller "Toontown Damage Calculator.spec"
robocopy "./src/tt_damage_calculator/assets" "./dist/assets" /s; if ($lastexitcode -lt 8) { $global:LASTEXITCODE = $null }
copy "./LICENSE" "./dist"
- name: Upload .exe
uses: actions/upload-artifact@v3
with:
name: win64-executable
path: dist
windows-wheel:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
target: [x64, x86]
steps:
- name: Checkout branch
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
architecture: ${{ matrix.target }}
- name: Build Wheel
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
- name: Upload Wheel
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
linux-wheel:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
target: [x86_64]
steps:
- name: Checkout branch
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
# i cant seem to get the maturin action to work properly for linux
# so i will be trying my best to emulate it with a list of commands instead
- name: Build Wheel
run: |
pip install maturin
maturin build --release --out dist --find-interpreter
- name: Upload Wheel
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
macos-exe:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
target: [x86_64]
steps:
- name: Checkout branch
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Build executable
run: |
pip install pyinstaller
cargo rustc --release -- -C link-arg=-undefined -C link-arg=dynamic_lookup
mv ./target/release/libtt_damage_calculator.dylib ./src/tt_damage_calculator/tt_damage_calculator.so
pyinstaller "Toontown Damage Calculator.spec"
cp -R ./src/tt_damage_calculator/assets ./dist/assets
cp -R ./LICENSE ./dist
- name: Upload executable
uses: actions/upload-artifact@v3
with:
name: mac64-executable
path: dist
macos-wheel:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
target: [x86_64, aarch64]
steps:
- name: Checkout branch
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Build Wheel
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.target }}
args: --release --out dist --find-interpreter
sccache: 'true'
- name: Upload Wheel
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
sdist:
runs-on: ubuntu-latest
steps:
- name: Checkout branch
uses: actions/checkout@v3
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Build Source Distribution
run: |
pip install maturin
maturin build --release --sdist --out dist
- name: Upload Source Distribution
uses: actions/upload-artifact@v3
with:
name: wheels
path: dist
release:
name: Release
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
needs: [windows-wheel, linux-wheel, macos-wheel, sdist]
steps:
- uses: actions/download-artifact@v3
with:
name: wheels
- name: Publish to PyPI
uses: PyO3/maturin-action@v1
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
with:
command: upload
args: --non-interactive --skip-existing *