Workflow: Synchronize release workflow with robust Windows build logic
This commit is contained in:
@@ -18,8 +18,7 @@ jobs:
|
||||
run: |
|
||||
pip install -r requirements.txt
|
||||
- name: Build
|
||||
run: |
|
||||
pyinstaller --onefile --name tamigo-cli tamigo.py
|
||||
run: pyinstaller --onefile --name tamigo-cli tamigo.py
|
||||
- name: Rename for release
|
||||
run: mv dist/tamigo-cli dist/tamigo-cli-linux
|
||||
- name: Upload to Release
|
||||
@@ -34,26 +33,40 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Build Windows executable via Docker (Modern & Robust)
|
||||
|
||||
- name: Build Windows executable (Robust Release Fix)
|
||||
run: |
|
||||
CONTAINER_NAME="rel-builder-${{ github.run_id }}"
|
||||
docker rm -f $CONTAINER_NAME || true
|
||||
CONTAINER_NAME="win-rel-builder-${{ github.run_id }}"
|
||||
|
||||
# Using burningtyger/pyinstaller-windows for better path handling
|
||||
docker create --name $CONTAINER_NAME burningtyger/pyinstaller-windows "pip install -r requirements.txt && pyinstaller --onefile --name tamigo-cli tamigo.py"
|
||||
# 1. Create and start container in background
|
||||
docker run -d --name $CONTAINER_NAME --entrypoint tail cdrx/pyinstaller-windows -f /dev/null
|
||||
|
||||
# 2. Copy source into container
|
||||
docker exec $CONTAINER_NAME mkdir -p /src
|
||||
docker cp . $CONTAINER_NAME:/src
|
||||
docker start -a $CONTAINER_NAME
|
||||
docker cp $CONTAINER_NAME:/src/dist .
|
||||
docker rm $CONTAINER_NAME
|
||||
|
||||
- name: Debug - List output files
|
||||
run: ls -R dist/
|
||||
- name: Rename for release
|
||||
run: mv dist/*.exe dist/tamigo-cli-windows.exe
|
||||
# 3. Run build with explicit environment variables to fix the /tmp bug
|
||||
docker exec -w /src $CONTAINER_NAME sh -c "
|
||||
export TMP=C:\\\\temp && \
|
||||
export TEMP=C:\\\\temp && \
|
||||
mkdir -p /src/build /src/dist_win && \
|
||||
pip install -r requirements.txt && \
|
||||
pyinstaller --onefile --name tamigo-cli \
|
||||
--workpath /src/build \
|
||||
--distpath /src/dist_win \
|
||||
--specpath /src/build \
|
||||
tamigo.py"
|
||||
|
||||
# 4. Extract results
|
||||
mkdir -p win_dist
|
||||
docker cp $CONTAINER_NAME:/src/dist_win/tamigo-cli.exe ./win_dist/tamigo-cli-windows.exe
|
||||
|
||||
# 5. Cleanup
|
||||
docker rm -f $CONTAINER_NAME
|
||||
|
||||
- name: Upload to Release
|
||||
uses: softprops/action-gh-release@v2
|
||||
with:
|
||||
files: dist/tamigo-cli-windows.exe
|
||||
files: win_dist/tamigo-cli-windows.exe
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
Reference in New Issue
Block a user