Skip to content

Implement FulcrumFS.Videos based on ffmpeg executable #178

Implement FulcrumFS.Videos based on ffmpeg executable

Implement FulcrumFS.Videos based on ffmpeg executable #178

name: build and test
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build-and-test:
strategy:
fail-fast: false
matrix:
os: [windows-latest, ubuntu-latest]
configuration: [Debug, Release]
runs-on: ${{ matrix.os }}
environment: ${{ matrix.os == 'windows-latest' && 'test-windows-x64' || 'test-linux-x64' }}
steps:
- uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.base.ref }}
- name: Download ffmpeg binaries
if: github.event.pull_request.head.repo.fork == false
run: |
curl -L "${{ secrets.FFMPEG_BINARIES_URL }}" -o file.zip
- name: Unzip ffmpeg binaries on Linux
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y unzip
unzip file.zip -d Binaries
rm file.zip
- name: Unzip ffmpeg binaries on Windows
if: runner.os == 'Windows'
run: |
Expand-Archive -Path file.zip -DestinationPath Binaries
Remove-Item file.zip
- uses: actions/checkout@v6
with:
ref: ${{ github.event.pull_request.head.ref }}
clean: false
- name: Setup .NET
uses: actions/setup-dotnet@v5
with:
dotnet-version: |
10.0.x
- name: Clean
run: dotnet clean --configuration ${{ matrix.configuration }} && dotnet nuget locals all --clear
- name: Install dependencies
run: dotnet restore
- name: Build
run: dotnet build --configuration ${{ matrix.configuration }} --no-restore
- name: Test
run: dotnet test --configuration ${{ matrix.configuration }} --no-build --verbosity normal
env:
FFMPEG_BINARIES_PATH: ${{ github.workspace }}/Binaries