86 lines
No EOL
2.7 KiB
YAML
86 lines
No EOL
2.7 KiB
YAML
name: Build and Publish Release
|
||
|
||
on:
|
||
release:
|
||
types: [published]
|
||
|
||
jobs:
|
||
build-linux:
|
||
name: Build Linux
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- name: Checkout code
|
||
uses: actions/checkout@v3
|
||
|
||
- name: Set up Python
|
||
uses: actions/setup-python@v4
|
||
with:
|
||
python-version: '3.11'
|
||
|
||
- name: Install system dependencies (Tkinter)
|
||
# В Ubuntu для работы Tkinter необходим системный пакет python3-tk
|
||
run: sudo apt-get update && sudo apt-get install -y python3-tk
|
||
|
||
- name: Install Python dependencies
|
||
run: |
|
||
python -m pip install --upgrade pip
|
||
pip install -r requirements.txt
|
||
pip install pyinstaller
|
||
|
||
- name: Build Linux executable
|
||
# Флаг --windowed убирает консоль, --onefile собирает все в один файл
|
||
run: pyinstaller --onefile --windowed --name factorio-mod-sync-linux main.py
|
||
|
||
- name: Upload Linux artifact
|
||
uses: actions/upload-artifact@v3
|
||
with:
|
||
name: linux-build
|
||
path: dist/factorio-mod-sync-linux
|
||
|
||
build-windows:
|
||
name: Build Windows
|
||
runs-on: ubuntu-latest
|
||
# Используем контейнер с настроенным Wine и Python 3.11 под Windows
|
||
container:
|
||
image: tobix/pywine:3.11
|
||
steps:
|
||
- name: Install Node.js and Git (required for Actions)
|
||
run: apt-get update && apt-get install -y nodejs git
|
||
|
||
- name: Checkout code
|
||
uses: actions/checkout@v3
|
||
|
||
- name: Install Python dependencies (Windows)
|
||
run: |
|
||
wine python -m pip install --upgrade pip
|
||
wine pip install -r requirements.txt
|
||
wine pip install pyinstaller
|
||
|
||
- name: Build Windows executable
|
||
run: wine pyinstaller --onefile --windowed --name factorio-mod-sync-windows.exe main.py
|
||
|
||
- name: Upload Windows artifact
|
||
uses: actions/upload-artifact@v3
|
||
with:
|
||
name: windows-build
|
||
path: dist/factorio-mod-sync-windows.exe
|
||
|
||
release-assets:
|
||
name: Upload Assets to Release
|
||
needs: [build-linux, build-windows]
|
||
runs-on: ubuntu-latest
|
||
steps:
|
||
- name: Download all artifacts
|
||
uses: actions/download-artifact@v4
|
||
with:
|
||
path: artifacts
|
||
|
||
- name: Add files to Forgejo Release
|
||
# Обрати внимание: теперь тут полная ссылка на GitHub
|
||
uses: https://github.com/softprops/action-gh-release@v2
|
||
with:
|
||
files: |
|
||
artifacts/linux-build/factorio-mod-sync-linux
|
||
artifacts/windows-build/factorio-mod-sync-windows.exe
|
||
env:
|
||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |