release: 2.0.0-beta.3 #32
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Windows portable | |
on: | |
push: | |
tags: | |
- v*.*.* | |
env: | |
FFMPEG_ARCHIVE_URL: https://github.com/BtbN/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-win64-lgpl-shared.zip | |
FFMPEG_ARCHIVE_NAME: ffmpeg-master-latest-win64-lgpl-shared.zip | |
PYTHON_ARCHIVE_URL: https://www.python.org/ftp/python/3.11.5/python-3.11.5-embed-amd64.zip | |
jobs: | |
build: | |
name: Build Windows portable distributions | |
runs-on: windows-latest | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
- name: Setup Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: "3.11.5" | |
- name: Download ffmpeg archive | |
run: Invoke-WebRequest -Uri $($env:FFMPEG_ARCHIVE_URL) -OutFile ffmpeg.zip | |
- name: Download python archive | |
run: Invoke-WebRequest -Uri $($env:PYTHON_ARCHIVE_URL) -OutFile python.zip | |
- name: Create build directory and dist directory | |
run: New-Item -Path @("build", "dist") -ItemType Directory | |
- name: Unzip ffmpeg archive | |
run: Expand-Archive -LiteralPath "ffmpeg.zip" -DestinationPath "build" | |
- name: Unzip Python archive | |
run: Expand-Archive -LiteralPath "python.zip" -DestinationPath "build\python" | |
- name: Rename ffmpeg directory | |
working-directory: build | |
run: Rename-Item -Path $($env:FFMPEG_ARCHIVE_NAME).Substring(0, $($env:FFMPEG_ARCHIVE_NAME).Length - 4) "ffmpeg" | |
- name: Sliming ffmpeg | |
working-directory: build | |
run: | | |
Get-ChildItem -Path "ffmpeg" -Exclude @("LICENSE.txt", "bin") | Remove-Item -Recurse | |
ls ffmpeg | |
- name: Create venv | |
working-directory: build | |
run: python -m venv venv | |
- name: Install packages | |
working-directory: build | |
run: | | |
ls ${{ github.workspace }} | |
.\venv\Scripts\activate | |
pip install ${{ github.workspace }} | |
ls venv\Lib\site-packages | |
- name: Copy site-packages | |
shell: cmd | |
working-directory: build | |
run: (robocopy venv\Lib\site-packages python\Lib\site-packages /mir /xd __pycache__* pip* setuptools*) ^& IF %ERRORLEVEL% LSS 8 SET ERRORLEVEL = 0 | |
# https://ss64.com/nt/robocopy-exit.html | |
# https://superuser.com/questions/280425/getting-robocopy-to-return-a-proper-exit-code | |
# https://social.msdn.microsoft.com/Forums/en-US/d599833c-dcea-46f5-85e9-b1f028a0fefe/robocopy-exits-with-error-code-1 | |
- name: Add search path | |
working-directory: build | |
run: Add-Content -Path "python\python311._pth" "Lib\site-packages" | |
- name: Copy run.bat | |
working-directory: build | |
run: Copy-Item "${{ github.workspace }}\run.bat" -Destination ".\run.bat" | |
- name: Copy run.ps1 | |
working-directory: build | |
run: Copy-Item "${{ github.workspace }}\run.ps1" -Destination ".\run.ps1" | |
- name: Zip files | |
run: | | |
ls build | |
Compress-Archive -Path @("build\run.bat", "build\run.ps1", "build\python", "build\ffmpeg") -DestinationPath "dist\blrec-${{ github.ref_name }}-win64.zip" | |
ls dist | |
- name: Upload distributions to release | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: dist/* | |
tag: ${{ github.ref }} | |
overwrite: true | |
file_glob: true |