Skip to content

Build LGPL FFmpeg Binaries #18

Build LGPL FFmpeg Binaries

Build LGPL FFmpeg Binaries #18

Workflow file for this run

# This job is not directly related to regular CI pipeline.
# It is intended to create FFmpeg binaries that we upload on S3,
# which then will be used during all the build process in CI or local.
#
# This job does not include uploading part.
# Upload needs to be done manually, and it should be done only once
# par new major release of FFmepg.
name: Build LGPL FFmpeg Binaries
on:
workflow_dispatch:
# pull_request:
# paths-ignore:
# - "docs/**"
# - "examples/**"
# - "*.md"
# branches:
# - main
jobs:
manylinux_2_28:
strategy:
fail-fast: false
matrix:
ffmpeg_version: ["4.4.5", "5.1.6", "6.1.2", "7.1.1", "8.0", "master"]
conf:
- { arch: "x86_64", os: "ubuntu-latest" }
- { arch: "aarch64", os: "ubuntu-24.04-arm" }
runs-on: "${{ matrix.conf.os }}"
container: "quay.io/pypa/manylinux_2_28_${{ matrix.conf.arch }}"
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Build
run: |
export FFMPEG_VERSION="${{ matrix.ffmpeg_version }}"
export FFMPEG_ROOT="${PWD}/ffmpeg"
.github/scripts/build_ffmpeg.sh
tar -cf ffmpeg.tar.gz ffmpeg/include ffmpeg/lib
artifact_dir="${GITHUB_WORKSPACE}/artifacts/$(date +%Y-%m-%d)/"
mkdir -p "${artifact_dir}"
mv ffmpeg.tar.gz "${artifact_dir}/ffmpeg_${FFMPEG_VERSION}_manylinux_2_28_${{ matrix.conf.arch }}.tar.gz"
- uses: actions/upload-artifact@v4
name: Upload build artifact
with:
name: "ffmpg_${{ matrix.ffmpeg_version }}_manylinux_2_28_${{ matrix.conf.arch }}"
path: "${{ github.workspace }}/artifacts"
if-no-files-found: error
retention-days: 7
overwrite: true
macOS:
strategy:
fail-fast: false
matrix:
ffmpeg_version: ["4.4.5", "5.1.6", "6.1.2", "7.1.1", "8.0", "master"]
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Build
run: |
export FFMPEG_VERSION="${{ matrix.ffmpeg_version }}"
export FFMPEG_ROOT="${PWD}/ffmpeg"
.github/scripts/build_ffmpeg.sh
tar -cf ffmpeg.tar.gz ffmpeg/include ffmpeg/lib
artifact_dir="${GITHUB_WORKSPACE}/artifacts/$(date +%Y-%m-%d)/"
mkdir -p "${artifact_dir}"
mv ffmpeg.tar.gz "${artifact_dir}/ffmpeg_${FFMPEG_VERSION}_macos_aarch64.tar.gz"
- uses: actions/upload-artifact@v4
name: Upload build artifact
with:
name: "ffmpg_${{ matrix.ffmpeg_version }}_macos_aarch64"
path: "${{ github.workspace }}/artifacts"
if-no-files-found: error
retention-days: 7
overwrite: true
win:
strategy:
fail-fast: false
matrix:
ffmpeg_version: ["4.4.5", "5.1.6", "6.1.2", "7.1.1", "8.0", "master"]
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Build
shell: bash
run: |
export FFMPEG_VERSION="${{ matrix.ffmpeg_version }}"
export FFMPEG_ROOT="${PWD}/ffmpeg"
.github/scripts/build_ffmpeg.bad
tar -cf ffmpeg.tar.gz ffmpeg/include ffmpeg/lib
artifact_dir="${GITHUB_WORKSPACE}/artifacts/$(date +%Y-%m-%d)/"
mkdir -p "${artifact_dir}"
mv ffmpeg.tar.gz "${artifact_dir}/ffmpeg_${FFMPEG_VERSION}_macos_aarch64.tar.gz"
- uses: actions/upload-artifact@v4
name: Upload build artifact
with:
name: "ffmpg_${{ matrix.ffmpeg_version }}_windows"
path: "${{ github.workspace }}/artifacts"
if-no-files-found: error
retention-days: 7
overwrite: true