Skip to content

release: 2.0.0-beta.1 #30

release: 2.0.0-beta.1

release: 2.0.0-beta.1 #30

Workflow file for this run

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