add get_info method #59
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: Build | |
on: | |
push: | |
branches: [main] | |
tags: | |
- '*' | |
pull_request: | |
branches: [main] | |
permissions: | |
contents: read | |
jobs: | |
linux: | |
runs-on: ${{ matrix.platform.runner }} | |
strategy: | |
matrix: | |
platform: | |
- runner: ubuntu-latest | |
target: x86_64 | |
# - runner: ubuntu-latest | |
# target: x86 | |
# - runner: ubuntu-latest | |
# target: aarch64 | |
# - runner: ubuntu-latest | |
# target: armv7 | |
# - runner: ubuntu-latest | |
# target: s390x | |
# - runner: ubuntu-latest | |
# target: ppc64le | |
env: | |
FFMPEG_DOWNLOAD_URL: "https://www.dropbox.com/scl/fi/x76nti8wr8qqoyyxvifa8/ffmpeg-4.4-linux-clang-default.tar.xz?rlkey=${{ secrets.DROPBOX_TOKEN }}&dl=1" | |
FFMPEG_DIR: ${{ github.workspace }}/ffmpeg | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
- name: Build wheels | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: ${{ matrix.platform.target }} | |
before-script-linux: | | |
yum install -y clang libXv-devel xz alsa-lib-devel && | |
python3 -m ensurepip && pip install "maturin>=1.3,<2.0" patchelf && | |
curl -L "${{ env.FFMPEG_DOWNLOAD_URL }}" -o ffmpeg.tar.xz && mkdir -p ${{ env.FFMPEG_DIR }} && | |
tar -xf ffmpeg.tar.xz -C ${{ env.FFMPEG_DIR }} --strip-components=1 && | |
export FFMPEG_DIR=${{ env.FFMPEG_DIR }} | |
args: --release --out dist --find-interpreter | |
sccache: 'true' | |
manylinux: 2_28 | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-linux-${{ matrix.platform.target }} | |
path: dist | |
# musllinux: | |
# runs-on: ${{ matrix.platform.runner }} | |
# env: | |
# FFMPEG_DOWNLOAD_URL: "https://www.dropbox.com/scl/fi/x76nti8wr8qqoyyxvifa8/ffmpeg-4.4-linux-clang-default.tar.xz?rlkey=${{ secrets.DROPBOX_TOKEN }}&dl=1" | |
# FFMPEG_DIR: ${{ github.workspace }}/ffmpeg | |
# strategy: | |
# matrix: | |
# platform: | |
# - runner: ubuntu-latest | |
# target: x86_64 | |
# - runner: ubuntu-latest | |
# target: x86 | |
# - runner: ubuntu-latest | |
# target: aarch64 | |
# - runner: ubuntu-latest | |
# target: armv7 | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - uses: actions/setup-python@v5 | |
# with: | |
# python-version: '3.11' | |
# - name: Build wheels | |
# uses: PyO3/maturin-action@v1 | |
# with: | |
# target: ${{ matrix.platform.target }} | |
# before-script-linux: | | |
# yum install -y clang libXv-devel xz alsa-lib-devel && | |
# python3 -m ensurepip && pip install "maturin>=1.3,<2.0" patchelf && | |
# curl -L ${{ env.FFMPEG_DOWNLOAD_URL }} -o ffmpeg.tar.xz && mkdir -p ${{ env.FFMPEG_DIR }} && | |
# tar -xf ffmpeg.tar.xz -C ${{ env.FFMPEG_DIR }} --strip-components=1 && | |
# export FFMPEG_DIR=${{ env.FFMPEG_DIR }} | |
# args: --release --out dist --find-interpreter | |
# sccache: 'true' | |
# manylinux: 2_28 | |
# - name: Upload wheels | |
# uses: actions/upload-artifact@v4 | |
# with: | |
# name: wheels-musllinux-${{ matrix.platform.target }} | |
# path: dist | |
windows: | |
runs-on: ${{ matrix.platform.runner }} | |
strategy: | |
matrix: | |
platform: | |
- runner: windows-latest | |
target: x64 | |
# - runner: windows-latest | |
# target: x86 | |
env: | |
FFMPEG_DOWNLOAD_URL: "https://github.com/GyanD/codexffmpeg/releases/download/VER/ffmpeg-VER-full_build-shared.7z" | |
FFMPEG_INSTALL_PATH: "C:/ffmpeg" | |
FFMPEG_VERSION: "7.0" | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set libclang path | |
run: | | |
$VCINSTALLDIR = $(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -latest -property installationPath) | |
Add-Content $env:GITHUB_ENV "LIBCLANG_PATH=${VCINSTALLDIR}\VC\Tools\LLVM\x64\bin" | |
- name: Install FFmpeg ${{ env.FFMPEG_VERSION }} | |
run: | | |
$tempFile = New-TemporaryFile | |
$uri = ($env:FFMPEG_DOWNLOAD_URL).Replace('VER', $env:FFMPEG_VERSION) | |
Invoke-WebRequest "$uri" -OutFile "$tempFile" -TimeoutSec 10 | |
7z x -y -o"$env:FFMPEG_INSTALL_PATH" "$tempFile" | |
$ffmpegDir = (Get-ChildItem -Directory "$env:FFMPEG_INSTALL_PATH").FullName | |
Add-Content $env:GITHUB_ENV "FFMPEG_DIR=$ffmpegDir" | |
Add-Content $env:GITHUB_PATH "$ffmpegDir/bin" | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
architecture: ${{ matrix.platform.target }} | |
- name: Build wheels | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: ${{ matrix.platform.target }} | |
args: --release --features ffmpeg_6_0 --out dist --find-interpreter | |
sccache: 'true' | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-windows-${{ matrix.platform.target }} | |
path: dist | |
macos: | |
runs-on: ${{ matrix.platform.runner }} | |
strategy: | |
matrix: | |
platform: | |
- runner: macos-12 | |
target: x86_64 | |
- runner: macos-14 | |
target: aarch64 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
- name: Install dependencies | |
run: | | |
brew install ffmpeg | |
- name: Build wheels | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: ${{ matrix.platform.target }} | |
args: --release --features ffmpeg_6_0 --out dist --find-interpreter | |
sccache: 'true' | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-macos-${{ matrix.platform.target }} | |
path: dist | |
sdist: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build sdist | |
uses: PyO3/maturin-action@v1 | |
with: | |
command: sdist | |
args: --out dist | |
- name: Upload sdist | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-sdist | |
path: dist | |
release: | |
name: Release | |
runs-on: ubuntu-latest | |
if: "startsWith(github.ref, 'refs/tags/')" | |
needs: [linux, windows, macos, sdist] | |
steps: | |
- uses: actions/download-artifact@v4 | |
- name: Publish to PyPI | |
uses: PyO3/maturin-action@v1 | |
env: | |
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} | |
with: | |
command: upload | |
args: --non-interactive --skip-existing wheels-*/* |