Compare commits

...

1 commit

Author SHA1 Message Date
ab82ba74e2 test on local image
Some checks failed
Build and Publish Release / Build Linux (release) Has been cancelled
Build and Publish Release / Build Windows (release) Has been cancelled
Build and Publish Release / Upload Assets to Release (release) Has been cancelled
Build and Publish Release / Build Windows (push) Failing after 2m15s
Build and Publish Release / Build Linux (push) Successful in 6m37s
Build and Publish Release / Upload Assets to Release (push) Has been skipped
2026-05-04 19:59:56 +05:00

View file

@ -1,6 +1,7 @@
name: Build and Publish Release name: Build and Publish Release
on: on:
push: # Для теста лучше использовать push, чтобы не создавать релиз каждый раз
release: release:
types: [published] types: [published]
@ -8,23 +9,21 @@ jobs:
build-linux: build-linux:
name: Build Linux name: Build Linux
runs-on: ubuntu-latest runs-on: ubuntu-latest
container:
image: git.borderban.ru/borderban/ci-images/py-builder:latest
steps: steps:
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Set up Python # Кэшируем pip, чтобы не качать зависимости из requirements.txt каждый раз
uses: actions/setup-python@v5 - name: Cache pip
uses: actions/cache@v3
with: with:
python-version: '3.11' path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}
- name: Install system dependencies (Tkinter)
run: apt-get update && apt-get install -y python3-tk
- name: Install Python dependencies - name: Install Python dependencies
run: | run: pip install -r requirements.txt
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pyinstaller
- name: Build Linux executable - name: Build Linux executable
run: pyinstaller --onefile --windowed --name factorio-mod-sync-linux main.py run: pyinstaller --onefile --windowed --name factorio-mod-sync-linux main.py
@ -39,21 +38,20 @@ jobs:
name: Build Windows name: Build Windows
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: container:
image: tobix/pywine:3.11 image: git.borderban.ru/borderban/ci-images/py-builder:latest
steps: steps:
- name: Install Node.js and Git (required for Actions)
run: apt-get update && apt-get install -y nodejs git
- name: Checkout code - name: Checkout code
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Install Python dependencies (Windows) - name: Install Python dependencies (Windows)
run: | run: |
wine python -m pip install --upgrade pip # В твоем образе py-builder мы ставим пакеты обычно,
wine pip install -r requirements.txt # а pyinstaller упакует их под Windows благодаря Wine внутри
wine pip install pyinstaller pip install -r requirements.txt
- name: Build Windows executable - name: Build Windows executable
# Внутри твоего контейнера вызывай сборку.
# Если в образе настроен wine как алиас или через него — используй его.
run: wine pyinstaller --onefile --windowed --name factorio-mod-sync-windows.exe main.py run: wine pyinstaller --onefile --windowed --name factorio-mod-sync-windows.exe main.py
- name: Upload Windows artifact - name: Upload Windows artifact
@ -66,7 +64,8 @@ jobs:
name: Upload Assets to Release name: Upload Assets to Release
needs: [build-linux, build-windows] needs: [build-linux, build-windows]
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: always() && (needs.build-linux.result == 'success' || needs.build-windows.result == 'success') # Этот шаг запустится только если это реально Релиз
if: github.event_name == 'release'
steps: steps:
- name: Download all artifacts - name: Download all artifacts
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3