diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 563fa7b..4aaa855 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -35,32 +35,36 @@ jobs: steps: - uses: actions/checkout@v4 - - name: Build Windows executable via Docker (Manual Extraction) + - name: Build Windows executable (Manual Build) run: | 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 + 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 process manually inside the container - # We upgrade pyinstaller and run the build - docker start -a $CONTAINER_NAME || echo "Container finished" + # 3. Run the build + echo "Starting Windows build inside Docker..." + docker start -a $CONTAINER_NAME - # 4. Extract the result - # PyInstaller in this image puts output in /src/dist/windows/ by default + # 4. Extract results + echo "Extracting results from container..." 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" + # 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 - Verify final file + - name: Debug - List final files run: | - ls -R final_dist/ + 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