diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 72a6265..563fa7b 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -35,24 +35,36 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Build Windows executable via Docker (Direct Output) + - name: Build Windows executable via Docker (Manual Extraction) run: | - # Use docker run with direct output to dist/ - # We force pyinstaller to use current directory for workpath to avoid /tmp issues - docker run --rm \ - -v "${{ github.workspace }}:/src" \ - cdrx/pyinstaller-windows \ - sh -c "pip install --upgrade pyinstaller && pip install -r requirements.txt && pyinstaller --onefile --name tamigo-cli --workpath ./build --distpath ./dist_windows tamigo.py" + CONTAINER_NAME="win-builder-${{ github.run_id }}" + # 1. Create a container from a reliable Wine+Python 3.10 image + docker create --name $CONTAINER_NAME cdrx/pyinstaller-windows - - name: Debug - List all files + # 2. Copy source code into the container + docker cp . $CONTAINER_NAME:/src + + # 3. Run the build process manually inside the container + # We upgrade pyinstaller and run the build + docker start -a $CONTAINER_NAME || echo "Container finished" + + # 4. Extract the result + # PyInstaller in this image puts output in /src/dist/windows/ by default + mkdir -p final_dist + docker cp $CONTAINER_NAME:/src/dist/windows/tamigo-cli.exe ./final_dist/tamigo-cli.exe || \ + docker cp $CONTAINER_NAME:/src/dist/tamigo-cli.exe ./final_dist/tamigo-cli.exe || \ + echo "Could not find EXE in standard locations" + + # 5. Cleanup + docker rm $CONTAINER_NAME + + - name: Debug - Verify final file run: | - echo "Listing dist_windows folder:" - ls -R dist_windows/ || echo "dist_windows not found" - echo "Searching for any .exe in workspace:" + ls -R final_dist/ find . -name "*.exe" - name: Upload Windows Artifact uses: actions/upload-artifact@v3 with: name: binary-windows - path: "**/*.exe" + path: final_dist/*.exe