Skip to content

bump version to 1.2.3 #178

bump version to 1.2.3

bump version to 1.2.3 #178

Workflow file for this run

name: Packaging
on:
push:
tags:
- "v*"
env:
PYINSTALLER_VERSION: "6.9.0"
LIBMEDIAINFO_VERSION: "24.06"
jobs:
make-outputs:
runs-on: ubuntu-latest
outputs:
VERSION: ${{ steps.get_version.outputs.VERSION }}
steps:
- name: Get version
id: get_version
run: echo "VERSION=${GITHUB_REF/refs\/tags\/v/}" >> $GITHUB_OUTPUT
release_windows_amd64:
runs-on: windows-latest
needs: [make-outputs]
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- uses: pdm-project/setup-pdm@v4
with:
python-version: 3.12
- name: Build with pyinstaller
shell: bash -el {0}
run: |
pdm sync -G desktop -G ujson -G ruamel_yaml -G lxml -G packaging --no-editable
pdm run python -m ensurepip
pdm run python -m pip install https://github.com/webcomics/pyinstaller-builder/releases/download/snapshot/pyinstaller-$PYINSTALLER_VERSION-py3-none-any.whl
cd packaging
pdm run pyinstaller libresvip.spec
cd dist
7z a LibreSVIP-${{ needs.make-outputs.outputs.VERSION }}.win-amd64.7z libresvip
rm -rf libresvip
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: libresvip-win-amd64.7z
path: ./packaging/dist/
- name: Create Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
tag_name: v${{ needs.make-outputs.outputs.VERSION }}
files: |
./packaging/dist/LibreSVIP-${{ needs.make-outputs.outputs.VERSION }}.win-amd64.7z
release_windows_msys2_ucrt64:
runs-on: windows-latest
needs: [make-outputs]
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- uses: pdm-project/setup-pdm@v4
with:
python-version: 3.11
- name: Export requirements
shell: bash -el {0}
run: |
pdm export -G desktop -G ujson -G ruamel_yaml -G lxml -G packaging -o packaging/requirements.txt --without-hashes
pdm build --no-sdist
- uses: msys2/setup-msys2@v2
with:
msystem: UCRT64
update: true
install: >-
mingw-w64-ucrt-x86_64-python-pip
p7zip
- name: Build with pyinstaller
shell: msys2 {0}
run: |
cd packaging
python mingw_install.py
python -m pip install ../dist/*.whl --no-deps
python -m pip install https://github.com/webcomics/pyinstaller-builder/releases/download/snapshot/pyinstaller-$PYINSTALLER_VERSION-py3-none-any.whl
pyinstaller libresvip.spec
cd dist
7z a LibreSVIP-${{ needs.make-outputs.outputs.VERSION }}.msys2-ucrt64.7z libresvip
rm -rf libresvip
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: libresvip-msys2-ucrt64.7z
path: ./packaging/dist/
- name: Create Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
tag_name: v${{ needs.make-outputs.outputs.VERSION }}
files: |
./packaging/dist/LibreSVIP-${{ needs.make-outputs.outputs.VERSION }}.msys2-ucrt64.7z
release_windows_webview:
runs-on: windows-latest
needs: [make-outputs]
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- uses: pdm-project/setup-pdm@v4
with:
python-version: 3.12
- name: Build with pyinstaller
shell: bash -el {0}
run: |
pdm sync -G webui -G ujson -G ruamel_yaml -G lxml -G packaging --no-editable
pdm run python -m ensurepip
pdm run python -m pip install https://github.com/webcomics/pyinstaller-builder/releases/download/snapshot/pyinstaller-$PYINSTALLER_VERSION-py3-none-any.whl
cd packaging
pdm run pyinstaller libresvip-web.spec
cd dist
7z a LibreSVIP-web-${{ needs.make-outputs.outputs.VERSION }}.win-amd64.7z libresvip-web
rm -rf libresvip-web
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: libresvip-web-win-amd64.7z
path: ./packaging/dist/
- name: Create Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
tag_name: v${{ needs.make-outputs.outputs.VERSION }}
files: |
./packaging/dist/LibreSVIP-web-${{ needs.make-outputs.outputs.VERSION }}.win-amd64.7z
release_windows_arm64:
runs-on: ubuntu-latest
needs: [make-outputs]
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- uses: pdm-project/setup-pdm@v4
with:
python-version: 3.11
- name: Build with pyinstaller
run: |
pdm export -G desktop -G ujson -G ruamel_yaml -G lxml -G packaging -o packaging/requirements.txt --without-hashes
pdm build --no-sdist
cd packaging
export MINGW_PACKAGE_PREFIX=mingw-w64-clang-aarch64
export MSYSTEM=CLANGARM64
python mingw_install.py
docker-compose -f docker-compose-msys2-clangarm64.yml up
python -m pip download pyinstaller==$PYINSTALLER_VERSION --platform win_arm64 --only-binary=:all:
python -m pip install wheel
python -m wheel unpack pyinstaller-$PYINSTALLER_VERSION-py3-none-win_arm64.whl
sudo mv ./pyinstaller-$PYINSTALLER_VERSION/PyInstaller/bootloader/Windows-64bit-arm ./clangarm64/lib/python3.11/site-packages/PyInstaller/bootloader
sudo cp ./clangarm64/bin/libmediainfo-0.dll ./clangarm64/lib/python3.11/site-packages/pymediainfo/
docker-compose -f docker-compose-build-wine-arm64.yml up
mkdir archive
cd dist
7z a ../archive/LibreSVIP-${{ needs.make-outputs.outputs.VERSION }}.win-arm64.7z libresvip
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: libresvip-win-arm64.7z
path: ./packaging/archive/
- name: Create Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
tag_name: v${{ needs.make-outputs.outputs.VERSION }}
files: |
./packaging/archive/LibreSVIP-${{ needs.make-outputs.outputs.VERSION }}.win-arm64.7z
release_linux_x86_64:
runs-on: ubuntu-latest
needs: [make-outputs]
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- uses: pdm-project/setup-pdm@v4
with:
python-version: 3.11
- name: Install OS dependencies
run: |
sudo apt-get update
sudo apt-get install -y libegl1
- name: Build with pyinstaller
run: |
pdm sync -G desktop -G ujson -G ruamel_yaml -G lxml -G packaging --no-editable
cd packaging
pdm run pyinstaller libresvip.spec
cd dist
tar -czvf LibreSVIP-${{ needs.make-outputs.outputs.VERSION }}.linux-x86_64.tar.gz libresvip
rm -rf libresvip
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: libresvip-linux-x86_64.tar.gz
path: ./packaging/dist/
- name: Create Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
tag_name: v${{ needs.make-outputs.outputs.VERSION }}
files: |
./packaging/dist/LibreSVIP-${{ needs.make-outputs.outputs.VERSION }}.linux-x86_64.tar.gz
release_linux_aarch64:
runs-on: ubuntu-latest
needs: [make-outputs]
steps:
- uses: actions/checkout@v4
- uses: uraimo/run-on-arch-action@v2
name: Build artifact
with:
arch: aarch64
distro: ubuntu20.04
dockerRunArgs: --volume "${PWD}:/libresvip"
install: |
apt-get update
apt-get install -y software-properties-common
add-apt-repository ppa:deadsnakes/ppa
apt-get update
apt-get install -y binutils libdouble-conversion3 libfreetype6 libfontconfig1 libegl1 libgl1 libmediainfo-dev libtiff5 libwayland-dev libwebp6 libwebpdemux2 libwebpmux3 libxt6 python3.11-dev python3.11-venv
update-alternatives --install /usr/bin/python python /usr/bin/python3.11 1
run: |
cd /libresvip
python -m ensurepip --upgrade
python -m pip install -U pdm
python -m pdm export -G desktop -G ujson -G ruamel_yaml -G lxml -G packaging -o packaging/requirements.txt --without-hashes
python -m pdm build --no-sdist
python -m venv .venv
source .venv/bin/activate
python -m ensurepip --upgrade
python -m pip install uv
cd packaging
python -m uv pip install -r requirements.txt
python -m pip install ../dist/*.whl --no-deps
python -m PyInstaller libresvip.spec
cd dist
tar -czvf LibreSVIP-${{ needs.make-outputs.outputs.VERSION }}.linux-aarch64.tar.gz libresvip
rm -rf libresvip
cd ../..
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: libresvip-linux-aarch64.tar.gz
path: ./packaging/dist
- name: Create Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
tag_name: v${{ needs.make-outputs.outputs.VERSION }}
files: |
./packaging/dist/LibreSVIP-${{ needs.make-outputs.outputs.VERSION }}.linux-aarch64.tar.gz
release_macos_x86_64:
runs-on: macos-13
needs: [make-outputs]
steps:
- uses: actions/checkout@v4
- name: Set up Python (MacOS x86_64)
uses: actions/setup-python@v5
with:
python-version: "3.12"
- uses: pdm-project/setup-pdm@v4
with:
python-version: 3.12
- name: Build with pyinstaller
run: |
pdm export -G desktop -G ujson -G ruamel_yaml -G lxml -G packaging -o packaging/requirements.txt --without-hashes
pdm build --no-sdist
python -m venv .venv
source .venv/bin/activate
cd packaging
python -m ensurepip --upgrade
python -m pip install pillow uv
python -m uv pip install -r requirements.txt
python -m pip install ../dist/*.whl --no-deps
python -m PyInstaller libresvip.spec
brew install create-dmg
create-dmg --volname "LibreSVIP" dist/LibreSVIP-${{ needs.make-outputs.outputs.VERSION }}.macos-x86_64.dmg ./dist/LibreSVIP.app
rm -rf ./dist/LibreSVIP.app
cd ..
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: libresvip-macos-x86_64.dmg
path: ./packaging/dist/
- name: Create Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
tag_name: v${{ needs.make-outputs.outputs.VERSION }}
files: |
./packaging/dist/LibreSVIP-${{ needs.make-outputs.outputs.VERSION }}.macos-x86_64.dmg
release_macos_arm64:
runs-on: macos-latest
needs: [make-outputs]
steps:
- uses: actions/checkout@v4
- name: Set up Python (MacOS arm64)
run: |
curl -L https://www.python.org/ftp/python/3.12.3/python-3.12.3-macos11.pkg --output ~/Downloads/python.pkg
sudo installer -pkg ~/Downloads/python.pkg -target /
- uses: pdm-project/setup-pdm@v4
with:
python-version: 3.12
- name: Build with pyinstaller
run: |
pdm export -G desktop -G ujson -G ruamel_yaml -G lxml -G packaging -o packaging/requirements.txt --without-hashes
pdm build --no-sdist
python -m venv .venv
source .venv/bin/activate
cd packaging
python -m ensurepip --upgrade
python -m pip install pillow uv
python -m uv pip install -r requirements.txt
curl -L https://mediaarea.net/download/binary/libmediainfo0/${LIBMEDIAINFO_VERSION}/MediaInfo_DLL_${LIBMEDIAINFO_VERSION}_Mac_x86_64+arm64.tar.bz2 --output libmediainfo.tar.bz2
tar xvf libmediainfo.tar.bz2
mv MediaInfoLib/libmediainfo.0.dylib ../.venv/lib/python3.12/site-packages/pymediainfo/
python -m pip install ../dist/*.whl --no-deps
python -m PyInstaller libresvip.spec
brew install create-dmg
create-dmg --volname "LibreSVIP" dist/LibreSVIP-${{ needs.make-outputs.outputs.VERSION }}.macos-arm64.dmg ./dist/LibreSVIP.app
rm -rf ./dist/LibreSVIP.app
cd ..
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: libresvip-macos-arm64.dmg
path: ./packaging/dist/
- name: Create Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
tag_name: v${{ needs.make-outputs.outputs.VERSION }}
files: |
./packaging/dist/LibreSVIP-${{ needs.make-outputs.outputs.VERSION }}.macos-arm64.dmg