Files
tamigo-cli/.gitea/workflows/build.yml
Daniel Dybing 3eb2b8319d
All checks were successful
Build Tamigo CLI / Build Linux Binary (push) Successful in 51s
Build Tamigo CLI / Build Windows Binary (push) Successful in 15s
Workflow: Use manual docker build/cp for Windows to ensure reliability
2026-03-11 15:26:04 +01:00

75 lines
2.4 KiB
YAML

name: Build Tamigo CLI
on:
push:
branches: [ "main", "master" ]
pull_request:
branches: [ "main", "master" ]
workflow_dispatch:
jobs:
build-linux:
name: Build Linux Binary
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Build
run: pyinstaller --onefile --name tamigo-cli tamigo.py
- name: Upload Linux Artifact
uses: actions/upload-artifact@v3
with:
name: binary-linux
path: dist/tamigo-cli
build-windows:
name: Build Windows Binary
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build Windows executable (Manual Build)
run: |
CONTAINER_NAME="win-builder-${{ github.run_id }}"
docker rm -f $CONTAINER_NAME || true
# 1. Create the container with a custom build command
# We upgrade pyinstaller to fix the WinError 123 bug
docker create --name $CONTAINER_NAME --workdir /src cdrx/pyinstaller-windows sh -c "pip install --upgrade pyinstaller && pip install -r requirements.txt && pyinstaller --onefile --name tamigo-cli tamigo.py"
# 2. Copy source code into the container
docker cp . $CONTAINER_NAME:/src
# 3. Run the build
echo "Starting Windows build inside Docker..."
docker start -a $CONTAINER_NAME
# 4. Extract results
echo "Extracting results from container..."
mkdir -p final_dist
# We copy the entire dist folder to be safe
docker cp $CONTAINER_NAME:/src/dist/. ./final_dist/ || echo "Warning: Could not copy dist folder"
# 5. Cleanup
docker rm $CONTAINER_NAME
- name: Debug - List final files
run: |
echo "Contents of final_dist:"
ls -R final_dist/ || echo "final_dist is empty"
echo "Finding all .exe files in workspace:"
find . -name "*.exe"
- name: Upload Windows Artifact
uses: actions/upload-artifact@v3
with:
name: binary-windows
path: final_dist/*.exe