mirror of
https://github.com/csd4ni3l/fractal-viewer.git
synced 2025-11-05 04:58:05 +01:00
93 lines
2.8 KiB
YAML
93 lines
2.8 KiB
YAML
name: Build and Release
|
|
|
|
on: push
|
|
|
|
jobs:
|
|
build:
|
|
name: Build on ${{ matrix.os }}
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
|
|
steps:
|
|
- name: Check-out repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.11"
|
|
architecture: "x64"
|
|
cache: "pip"
|
|
cache-dependency-path: |
|
|
**/requirements*.txt
|
|
|
|
- name: Install Dependencies
|
|
run: pip install -r requirements.txt
|
|
|
|
- name: Build Executable
|
|
uses: Nuitka/Nuitka-Action@main
|
|
with:
|
|
nuitka-version: main
|
|
script-name: run.py
|
|
nofollow-import-to: "*tk*,_codecs,encodings,multiprocessing,gi"
|
|
disable-plugins: tk-inter,dill-compat,eventlet,gevent,pyqt5,pyqt6,pyside2,pyside6,delvewheel,pywebview,matplotlib,spacy,enum-compat,pbr-compat,gevent,pmw-freezer,transformers,upx,kivy,options-nanny,multiprocessing,gi
|
|
include-data-dir: assets=assets
|
|
include-data-files: CREDITS=CREDITS
|
|
mode: standalone
|
|
output-file: FractalViewer
|
|
|
|
- name: Zip Build Output
|
|
shell: bash
|
|
run: |
|
|
mkdir -p zip_output
|
|
if [ "${{ runner.os }}" = "Windows" ]; then
|
|
powershell.exe -Command "Compress-Archive -Path 'build/run.dist/*' -DestinationPath 'zip_output/FractalViewer-${{ runner.os }}.zip'"
|
|
else
|
|
cd build/run.dist
|
|
zip -r "../../zip_output/FractalViewer-${{ runner.os }}.zip" .
|
|
fi
|
|
|
|
- name: Upload Zipped Build Artifact
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: FractalViewer-${{ runner.os }}.zip
|
|
path: zip_output/FractalViewer-${{ runner.os }}.zip
|
|
release:
|
|
name: Create GitHub Release
|
|
needs: build
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: Download All Zipped Builds
|
|
uses: actions/download-artifact@v4
|
|
with:
|
|
path: downloads
|
|
|
|
- name: Delete Old Release (if exists)
|
|
continue-on-error: true
|
|
run: gh release delete latest -y
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Delete Git tag (if exists)
|
|
continue-on-error: true
|
|
run: |
|
|
git push origin :refs/tags/latest
|
|
git tag -d latest
|
|
|
|
- name: Recreate Git tag at HEAD
|
|
run: |
|
|
git tag latest
|
|
git push origin latest
|
|
|
|
- name: Create the new release
|
|
run: gh release create latest downloads/**/FractalViewer-*.zip --title "Latest Build" --notes "Most recent multi-platform builds of FractalViewer"
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|