84 lines
1.7 KiB
YAML
84 lines
1.7 KiB
YAML
name: Build and Release
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "v*"
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ${{ matrix.runner }}
|
|
strategy:
|
|
matrix:
|
|
include:
|
|
|
|
# Linux AMD64
|
|
- os: linux
|
|
arch: amd64
|
|
runner: ubuntu-latest
|
|
|
|
# Linux ARM64
|
|
- os: linux
|
|
arch: arm64
|
|
runner: ubuntu-24.04-arm
|
|
|
|
# Windows AMD64
|
|
- os: windows
|
|
arch: amd64
|
|
runner: windows-latest
|
|
|
|
# macOS Intel
|
|
- os: macos
|
|
arch: amd64
|
|
runner: macos-13
|
|
|
|
# macOS ARM (Apple Silicon)
|
|
- os: macos
|
|
arch: arm64
|
|
runner: macos-14
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.11"
|
|
|
|
- run: |
|
|
python -m pip install --upgrade pip
|
|
pip install -r requirements.txt
|
|
pip install pyinstaller
|
|
|
|
- name: PyInstaller folder build
|
|
run: |
|
|
pyinstaller main.py --name text-engine
|
|
|
|
- name: Create project zip
|
|
run: |
|
|
mkdir -p release
|
|
cd dist
|
|
zip -r ../release/text-engine-${{ matrix.os }}-${{ matrix.arch }}.zip text-engine
|
|
|
|
- uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ${{ matrix.os }}-${{ matrix.arch }}
|
|
path: |
|
|
release/*
|
|
|
|
release:
|
|
needs: build
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/download-artifact@v4
|
|
with:
|
|
path: artifacts
|
|
|
|
- uses: softprops/action-gh-release@v2
|
|
with:
|
|
files: artifacts/**/*
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |