Skip to content

Add Mac to FFmpeg build CI #23

Add Mac to FFmpeg build CI

Add Mac to FFmpeg build CI #23

Workflow file for this run

# Taken and adapted from torchaudio.
# Ref: https://github.com/pytorch/audio/blob/main/.github/workflows/ffmpeg.yml
# 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 the uploading part.
# Upload needs to be done manually, and it should be done only once
# par new major release of FFmepg.
name: Build non-GPL FFmpeg from source
#on:
# workflow_dispatch:
# schedule:
# - cron: '0 0 * * 0' # on sunday
#
on: # temp for testing; tell Scott to remove this if under review
push:
branches: [ main ]
pull_request:
defaults:
run:
shell: bash -l -eo pipefail {0}
jobs:
LGPL-Linux-x86_64:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ffmpeg-version: ["4.4.4", "5.1.4", "6.1.1", "7.0.1"]
steps:
- name: Check out repo
uses: actions/checkout@v3
- name: Build FFmpeg
run: |
export FFMPEG_VERSION="${{ matrix.ffmpeg-version }}"
export FFMPEG_ROOT="${PWD}/ffmpeg"
packaging/build_ffmpeg.sh
tar -czf ffmpeg.tar.gz ffmpeg/include ffmpeg/lib
mkdir -p artifact_dir
mv ffmpeg.tar.gz artifact_dir/ffmpeg_"${FFMPEG_VERSION}".tar.gz
- uses: actions/upload-artifact@v4
with:
name: "ffmpeg_${{ matrix.ffmpeg-version }}_linux_x86_64"
path: artifact_dir
LGPL-macOS:
strategy:
fail-fast: false
matrix:
ffmpeg-version: ["4.4.4", "5.1.4", "6.1.1", "7.0.1"]
runner: ["macos-m1-stable", "macos-12"]
uses: pytorch/test-infra/.github/workflows/macos_job.yml@main
with:
job-name: Build
upload-artifact: ffmpeg-lgpl
repository: pytorch/torchcodec
runner: "${{ matrix.runner }}"
script: |
export FFMPEG_VERSION="${{ matrix.ffmpeg-version }}"
export FFMPEG_ROOT="${PWD}/ffmpeg"
packaging/build_ffmpeg.sh
tar -cf ffmpeg.tar.gz ffmpeg/include ffmpeg/lib
artifact_dir="${RUNNER_ARTIFACT_DIR}/$(date +%Y-%m-%d)/macos_$(uname -m)"
mkdir -p "${artifact_dir}"
mv ffmpeg.tar.gz "${artifact_dir}/${FFMPEG_VERSION}.tar.gz"