Skip to content

Bump ffmpeg-source from d5cc9d8 to fa20f5c #447

Bump ffmpeg-source from d5cc9d8 to fa20f5c

Bump ffmpeg-source from d5cc9d8 to fa20f5c #447

name: Build FFmpeg on pull request
on:
pull_request_target:
paths:
- ffmpeg-source
- ffmpeg-windows-build-helpers
- dependencies.sh
- .github/workflows/build-on-push.yaml
- .github/workflows/build-on-pull-request.yaml
jobs:
build:
runs-on: ubuntu-latest
if: github.actor == 'dependabot[bot]' || github.actor == 'AnimMouse'
strategy:
matrix:
os: [win64, win32]
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
submodules: true
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
persist-credentials: false
- name: Install dependencies
run: ./dependencies.sh
- name: Get current FFmpeg git commit SHA & date
id: git-sha-date
working-directory: ffmpeg-source
run: |
echo git-sha=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT
echo git-date=$(git log -1 --format=%ci) >> $GITHUB_OUTPUT
- name: Get current ffmpeg-windows-build-helpers git commit SHA
id: helper-git-sha
working-directory: ffmpeg-windows-build-helpers
run: echo git-sha=$(git rev-parse --short HEAD) >> $GITHUB_OUTPUT
- name: Move ffmpeg-windows-build-helpers
run: mv -v ./ffmpeg-windows-build-helpers/* ./
- name: Get current date & time before build
id: date-time-before
run: echo date-time=$(date +'%Y-%m-%d %H:%M') >> $GITHUB_OUTPUT
- name: Compile FFmpeg using ffmpeg-windows-build-helpers
run: ./cross_compile_ffmpeg.sh --ffmpeg-source-dir=$GITHUB_WORKSPACE/ffmpeg-source --gcc-cpu-count=$(nproc) --disable-nonfree=n --sandbox-ok=y --compiler-flavors=${{ matrix.os }}
- name: Get current date & time after build
id: date-time-after
run: |
echo date-time=$(date +'%Y-%m-%d %H:%M') >> $GITHUB_OUTPUT
echo date-time-tag=$(date +'%Y-%m-%d-%H-%M') >> $GITHUB_OUTPUT
- name: Upload FFmpeg ${{ matrix.os }} nonfree
uses: actions/upload-artifact@v3
with:
name: ffmpeg-${{ steps.git-sha-date.outputs.git-sha }}-${{ steps.helper-git-sha.outputs.git-sha }}-${{ matrix.os }}-nonfree
path: ffmpeg-source/ffmpeg.exe
- name: Upload FFprobe ${{ matrix.os }} nonfree
uses: actions/upload-artifact@v3
with:
name: ffprobe-${{ steps.git-sha-date.outputs.git-sha }}-${{ steps.helper-git-sha.outputs.git-sha }}-${{ matrix.os }}-nonfree
path: ffmpeg-source/ffprobe.exe
- name: Upload FFplay ${{ matrix.os }} nonfree
uses: actions/upload-artifact@v3
with:
name: ffplay-${{ steps.git-sha-date.outputs.git-sha }}-${{ steps.helper-git-sha.outputs.git-sha }}-${{ matrix.os }}-nonfree
path: ffmpeg-source/ffplay.exe
outputs:
date-time-before: ${{ steps.date-time-before.outputs.date-time }}
date-time-after: ${{ steps.date-time-after.outputs.date-time }}
date-time-after-tag: ${{ steps.date-time-after.outputs.date-time-tag }}
git-sha: ${{ steps.git-sha-date.outputs.git-sha }}
git-date: ${{ steps.git-sha-date.outputs.git-date }}
helper-git-sha: ${{ steps.helper-git-sha.outputs.git-sha }}
archive:
needs: build
runs-on: ubuntu-latest
strategy:
matrix:
os: [win64, win32]
steps:
- name: Download FFmpeg ${{ matrix.os }} nonfree
uses: actions/download-artifact@v3
with:
name: ffmpeg-${{ needs.build.outputs.git-sha }}-${{ needs.build.outputs.helper-git-sha }}-${{ matrix.os }}-nonfree
- name: Download FFprobe ${{ matrix.os }} nonfree
uses: actions/download-artifact@v3
with:
name: ffprobe-${{ needs.build.outputs.git-sha }}-${{ needs.build.outputs.helper-git-sha }}-${{ matrix.os }}-nonfree
- name: Download FFplay ${{ matrix.os }} nonfree
uses: actions/download-artifact@v3
with:
name: ffplay-${{ needs.build.outputs.git-sha }}-${{ needs.build.outputs.helper-git-sha }}-${{ matrix.os }}-nonfree
- name: 7-Zip FFmpeg ${{ matrix.os }} nonfree
run: 7z a ffmpeg-${{ needs.build.outputs.git-sha }}-${{ needs.build.outputs.helper-git-sha }}-${{ matrix.os }}-nonfree.7z ffmpeg.exe ffprobe.exe ffplay.exe -mx9
- name: Upload FFmpeg archive ${{ matrix.os }} nonfree
uses: actions/upload-artifact@v3
with:
name: ffmpeg-archive-${{ needs.build.outputs.git-sha }}-${{ needs.build.outputs.helper-git-sha }}-${{ matrix.os }}-nonfree
path: ffmpeg-${{ needs.build.outputs.git-sha }}-${{ needs.build.outputs.helper-git-sha }}-${{ matrix.os }}-nonfree.7z
release:
needs: [build, archive]
runs-on: ubuntu-latest
steps:
- name: Download FFmpeg archive win64
uses: actions/download-artifact@v3
with:
name: ffmpeg-archive-${{ needs.build.outputs.git-sha }}-${{ needs.build.outputs.helper-git-sha }}-win64-nonfree
- name: Download FFmpeg archive win32
uses: actions/download-artifact@v3
with:
name: ffmpeg-archive-${{ needs.build.outputs.git-sha }}-${{ needs.build.outputs.helper-git-sha }}-win32-nonfree
- name: Release
run: |
gh release create "a-${{ needs.build.outputs.date-time-after-tag }}" \
"ffmpeg-${{ needs.build.outputs.git-sha }}-${{ needs.build.outputs.helper-git-sha }}-win64-nonfree.7z" \
"ffmpeg-${{ needs.build.outputs.git-sha }}-${{ needs.build.outputs.helper-git-sha }}-win32-nonfree.7z" \
-n "FFmpeg nonfree git-${{ needs.build.outputs.git-sha }} in ${{ needs.build.outputs.git-date }} built on ${{ needs.build.outputs.date-time-after }} started at ${{ needs.build.outputs.date-time-before }}
Using ffmpeg-windows-build-helpers git-${{ needs.build.outputs.helper-git-sha }}" \
-p -t "Auto ${{ needs.build.outputs.date-time-after }} ${{ needs.build.outputs.git-sha }}"
env:
GITHUB_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}