Skip to content

[b6c3f493] prores raw metadata parser #2328

[b6c3f493] prores raw metadata parser

[b6c3f493] prores raw metadata parser #2328

Workflow file for this run

name: Build
# TODO: nuget, vcpkg on macOS, $(brew --prefix llvm)/bin/clang (llvm11), llvm12 is default
# https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry
on:
push:
schedule:
- cron: '0 12 * * 0'
repository_dispatch:
env:
FF_VER: ${{ vars.FF_VER }}
LLVM_VER: ${{ vars.LLVM_VER }}
VC_LTL_VER: ${{ vars.VC_LTL_VER }}
NINJA_STATUS: '[%f/%t %e %r]'
SF_PW: ${{ secrets.SF_PW }}
SF_USER: ${{ secrets.SF_USER }}
SF_UPLOAD: ${{ github.event_name != 'repository_dispatch' || github.event.client_payload.ref == 'master' }}
NVJP2K_SDK_PW: ${{ secrets.NVJP2K_SDK_PW }}
CUDA_SDK_PW: ${{ secrets.CUDA_SDK_PW }}
CUDA_SDK_DIR: ${{ github.workspace }}/cuda
NVJPEG2K_PATH: ${{ github.workspace }}/nvjpeg2000
R3DSDK: ${{ github.workspace }}/mdk/external/R3DSDK
LINUX_SYSROOT: ${{ github.workspace }}/mdk/sysroot
XZ_OPT: "-9e -T0"
jobs:
macOS:
# See: https://docs.github.com/en/actions/configuring-and-managing-workflows/configuring-a-workflow#configuring-a-build-matrix
runs-on: macos-26 # 15. 1 xcode per image
env:
TARGET_OS: 'macOS'
TARGET_ARCH: ${{ matrix.arch }}
LTO_SUFFIX: -lto # lto on master branch crashes in avio_open2, incorrect `close()` is used in `tcp_close()`, e.g. `close()` in avp and ffv1
strategy:
fail-fast: false
matrix:
config: [MinSizeRel]
arch: [x86_64, arm64] # different minos
steps:
- uses: actions/checkout@v6
- name: Checkout source
uses: actions/checkout@v6
with:
repository: ${{ github.repository_owner }}/mdk
path: mdk
ref: ${{ github.event_name == 'repository_dispatch' && github.event.client_payload.ref || 'master' }} # https://docs.github.com/en/webhooks/webhook-events-and-payloads#repository_dispatch
fetch-depth: 1
token: ${{ secrets.CLONE_PAT }}
submodules: 'recursive'
- name: Setup Xcode
run: sudo xcode-select -s /Applications/Xcode_${{ vars.XCODE }}.app
- name: 'Restore External Dep cache'
id: external-dep-cache
uses: actions/cache@v5
with:
path: |
./mdk/external
!./mdk/external/lib/macOS/libvulkan.tbd
!./mdk/external/lib/libdav1d.tbd
key: external-dep-${{ env.TARGET_OS }}-ffmpeg-${{ env.FF_VER }}-${{ vars.FF_SDK_ID }}
# why may failed to cache/restore /usr/local/bin/sshpass?
# no build cache because build dir content changes but key should not, then no cache save.
- name: Create Build Environment
shell: bash
env:
EXTERNAL_DEP_CACHE_HIT: ${{ steps.external-dep-cache.outputs.cache-hit }}
working-directory: mdk
run: ../ci-before-build.sh
- name: Configure CMake
shell: bash
working-directory: mdk
run: cmake --preset=${{ env.TARGET_OS }}-${{ matrix.arch }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk
- name: Build
shell: bash
working-directory: mdk
run: cmake --build --preset=${{ env.TARGET_OS }}-${{ matrix.arch }} --parallel
- name: Make SDK
shell: bash
working-directory: mdk
run: |
../ci-after-build.sh
mv mdk-sdk*.tar.xz ../mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}.tar.xz
- name: Archive SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch}}-${{ matrix.config }}
path: mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch}}.tar.xz
- name: Upload to SourceForge
if: ${{ matrix.config == 'RelWithDebInfo' && matrix.arch == 'x86_64' && env.SF_UPLOAD == 'true' }}
shell: bash
run: |
sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-sdk-${TARGET_OS}-${{ matrix.arch }}.tar.xz ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
iOS:
runs-on: macos-26
env:
TARGET_OS: ${{ matrix.os }}${{ matrix.simulator }}
LTO_SUFFIX: -lto # lto on master branch crashes in avio_open2 if open
strategy:
fail-fast: false
matrix:
os: [iOS, tvOS, visionOS, macCatalyst]
config: [MinSizeRel]
simulator: ['', Simulator]
exclude:
- os: macCatalyst
simulator: Simulator
steps:
- uses: actions/checkout@v6
- name: Checkout source
uses: actions/checkout@v6
with:
repository: ${{ github.repository_owner }}/mdk
path: mdk
ref: ${{ github.event_name == 'repository_dispatch' && github.event.client_payload.ref || 'master' }}
fetch-depth: 1
token: ${{ secrets.CLONE_PAT }}
submodules: 'recursive'
- name: Setup Xcode
run: sudo xcode-select -s /Applications/Xcode_${{ vars.XCODE }}.app
- name: 'Restore External Dep cache'
id: external-dep-cache
uses: actions/cache@v5
with:
path: |
./mdk/external
!./mdk/external/lib/macOS/libvulkan.tbd
!./mdk/external/lib/libdav1d.tbd
key: external-dep-${{ env.TARGET_OS }}-ffmpeg-${{ env.FF_VER }}-${{ vars.FF_SDK_ID }}
# why may failed to cache/restore /usr/local/bin/sshpass?
# no build cache because build dir content changes but key should not, then no cache save.
- name: Create Build Environment
shell: bash
env:
EXTERNAL_DEP_CACHE_HIT: ${{ steps.external-dep-cache.outputs.cache-hit }}
working-directory: mdk
run: ../ci-before-build.sh
- name: Configure CMake
shell: bash
working-directory: mdk
run: |
preset="${{ matrix.os }}"
if [ "${{ matrix.simulator }}" = "Simulator" ]; then
preset="${{ matrix.os }}-${{ matrix.simulator }}"
fi
cmake --preset=$preset -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk
- name: Build
shell: bash
working-directory: mdk
run: |
preset="${{ matrix.os }}"
if [ "${{ matrix.simulator }}" = "Simulator" ]; then
preset="${{ matrix.os }}-${{ matrix.simulator }}"
fi
cmake --build --preset=$preset --parallel
- name: Make SDK
shell: bash
working-directory: mdk
run: |
../ci-after-build.sh
mv mdk-sdk*.tar.xz ..
- name: Archive SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.config }}
path: mdk-sdk-${{ env.TARGET_OS }}.tar.xz
- name: Upload to SourceForge
if: ${{ env.SF_UPLOAD == 'true' && matrix.os == 'macCatalyst' }}
shell: bash
run: sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-sdk-${TARGET_OS}.tar.xz ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
Apple:
runs-on: macos-26
needs: [macOS, iOS]
steps:
- name: Setup Xcode
run: sudo xcode-select -s /Applications/Xcode_${{ vars.XCODE }}.app
- uses: actions/checkout@v6
- name: Download macOS x64 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-macOS-x86_64-MinSizeRel
- name: Download macOS arm64 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-macOS-arm64-MinSizeRel
- name: Download iOS sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-iOS-MinSizeRel
- name: Download iOSSimulator sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-iOSSimulator-MinSizeRel
- name: Download tvOS sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-tvOS-MinSizeRel
- name: Download tvOSSimulator sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-tvOSSimulator-MinSizeRel
- name: Download visionOS sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-visionOS-MinSizeRel
- name: Download visionOSSimulator sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-visionOSSimulator-MinSizeRel
- name: Download macCatalyst sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-macCatalyst-MinSizeRel
- name: Install tools
shell: bash
run: brew install sshpass
- name: make XCFramework and SDK
shell: bash
run: |
mkdir -p macOS mdk-sdk/{Frameworks,include,lib}
for os in macOS-x86_64 macOS-arm64 iOS iOSSimulator tvOS tvOSSimulator visionOS visionOSSimulator macCatalyst; do
mkdir -p ${os}
tar Jxf mdk-sdk-${os}.tar.xz -C ${os}
done
find .
cp -af macOS-$(uname -m)/mdk-sdk macOS/ # libffmpeg is already fat
lipo -create macOS-{arm,x86_}64/mdk-sdk/lib/mdk.framework/mdk -output macOS/mdk-sdk/lib/mdk.framework/Versions/Current/mdk
lipo -create macOS-{arm,x86_}64/mdk-sdk/lib/mdk.framework.dSYM/Contents/Resources/DWARF/mdk -output macOS/mdk-sdk/lib/mdk.framework.dSYM/Contents/Resources/DWARF/mdk
if [ -f macOS-arm64/mdk-sdk/lib/mdk.framework/Versions/Current/libmdk-braw.dylib -a -f macOS-x86_64/mdk-sdk/lib/mdk.framework/Versions/Current/libmdk-braw.dylib ]; then
lipo -create macOS-{arm,x86_}64/mdk-sdk/lib/mdk.framework/Versions/Current/libmdk-braw.dylib -output macOS/mdk-sdk/lib/mdk.framework/Versions/Current/libmdk-braw.dylib
fi
if [ -f macOS-arm64/mdk-sdk/lib/mdk.framework/Versions/Current/libmdk-r3d.dylib -a -f macOS-x86_64/mdk-sdk/lib/mdk.framework/Versions/Current/libmdk-r3d.dylib ]; then
lipo -create macOS-{arm,x86_}64/mdk-sdk/lib/mdk.framework/Versions/Current/libmdk-r3d.dylib -output macOS/mdk-sdk/lib/mdk.framework/Versions/Current/libmdk-r3d.dylib
fi
for b in `ls macOS-arm64/mdk-sdk/bin`; do # exes exist in both archs
if [ -f macOS-x86_64/mdk-sdk/bin/$b ]; then
lipo -create macOS-{arm,x86_}64/mdk-sdk/bin/$b -output macOS/mdk-sdk/bin/$b
fi
done
codesign --force --sign - --deep --timestamp macOS/mdk-sdk/lib/mdk.framework
libffmpeg=$(find macCatalyst/mdk-sdk/lib/mdk.framework -name "libffmpeg*.dylib")
# xcrun bitcode_strip -r $libffmpeg -o $libffmpeg
# xcrun bitcode_strip -r macCatalyst/mdk-sdk/lib/mdk.framework/mdk -o macCatalyst/mdk-sdk/lib/mdk.framework/Versions/Current/mdk
cp -af macOS/mdk-sdk/{bin,doc,*.sh} mdk-sdk
cp -af macOS/mdk-sdk/README.md mdk-sdk/README-macOS.md
cp -af macOS/mdk-sdk/lib/cmake mdk-sdk/lib/
cp -af iOS/mdk-sdk/README.md mdk-sdk/README-iOS.md
# https://developer.apple.com/forums/thread/655768 (error: the path does not point to a valid debug symbols file: macOS/mdk-sdk/lib/mdk.framework.dSYM)
xcodebuild -create-xcframework -framework macOS/mdk-sdk/lib/mdk.framework -debug-symbols $PWD/macOS/mdk-sdk/lib/mdk.framework.dSYM -framework iOS/mdk-sdk/lib/mdk.framework -debug-symbols $PWD/iOS/mdk-sdk/lib/mdk.framework.dSYM -framework iOSSimulator/mdk-sdk/lib/mdk.framework -framework tvOS/mdk-sdk/lib/mdk.framework -framework tvOSSimulator/mdk-sdk/lib/mdk.framework -framework visionOS/mdk-sdk/lib/mdk.framework -framework visionOSSimulator/mdk-sdk/lib/mdk.framework -framework macCatalyst/mdk-sdk/lib/mdk.framework -output mdk-sdk/lib/mdk.xcframework
mdkfw=`find mdk-sdk/lib/mdk.xcframework -name "macos-*" -depth 1`
# ensure bin/* can Find mdk and ffmpeg
ln -sf ${mdkfw/mdk-sdk/..}/mdk.framework mdk-sdk/Frameworks
ln -sf ../Frameworks/mdk.framework/Headers mdk-sdk/include/mdk
codesign --force --sign - --deep --timestamp mdk-sdk/lib/mdk.xcframework
# pod requires a file in tarball
gtar Jcvf mdk-sdk-apple.tar.xz mdk-sdk README.md
gtar Jcvf mdk-sdk-macOS.tar.xz -C macOS .
7z a mdk-sdk-apple.zip mdk-sdk
for OS in iOS tvOS visionOS; do
rm -rf mdk-sdk/{bin,Frameworks,include} mdk-sdk/lib/mdk.*
xcodebuild -create-xcframework -framework ${OS}/mdk-sdk/lib/mdk.framework -debug-symbols $PWD/${OS}/mdk-sdk/lib/mdk.framework.dSYM -framework ${OS}Simulator/mdk-sdk/lib/mdk.framework -debug-symbols $PWD/${OS}Simulator/mdk-sdk/lib/mdk.framework.dSYM -output mdk-sdk/lib/mdk.xcframework
gtar Jcvf mdk-sdk-${OS}.tar.xz mdk-sdk
done
swift package compute-checksum mdk-sdk-apple.zip
- name: Archive XCFramework SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-apple
path: mdk-sdk-apple.tar.xz
- name: Archive XCFramework SDK zip
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-apple-zip
path: mdk-sdk-apple.zip
- name: Archive macOS SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-macOS
path: mdk-sdk-macOS.tar.xz
- name: Archive iOS SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-iOS
path: mdk-sdk-iOS.tar.xz
- name: Archive tvOS SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-tvOS
path: mdk-sdk-tvOS.tar.xz
- name: Archive visionOS SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-visionOS
path: mdk-sdk-visionOS.tar.xz
- name: Upload to SourceForge
if: ${{ env.SF_UPLOAD == 'true' }}
shell: bash
run: |
make -f upload.mk
Windows:
runs-on: windows-2025-vs2026
env:
TARGET_OS: windows
strategy:
fail-fast: false
matrix:
config: [RelWithDebInfo]
arch: [x86, x64, arm64]
steps:
- uses: actions/checkout@v6
- name: Checkout source
uses: actions/checkout@v6
with:
repository: ${{ github.repository_owner }}/mdk
path: mdk
ref: ${{ github.event_name == 'repository_dispatch' && github.event.client_payload.ref || 'master' }}
fetch-depth: 1
token: ${{ secrets.CLONE_PAT }}
submodules: 'recursive'
- name: 'Restore External Dep cache'
id: external-dep-cache
uses: actions/cache@v5
with:
path: ./mdk/external
key: external-dep-${{ env.TARGET_OS }}-ffmpeg-${{ env.FF_VER }}-${{ vars.FF_SDK_ID }}
- name: Create Build Environment
shell: bash
env:
SYSROOT_CACHE_HIT: true
EXTERNAL_DEP_CACHE_HIT: ${{ steps.external-dep-cache.outputs.cache-hit }}
working-directory: mdk
run: ../ci-before-build.sh
- uses: seanmiddleditch/gha-setup-ninja@master
- uses: ilammy/msvc-dev-cmd@v1
if: ${{ matrix.arch != 'x64' }}
with:
arch: amd64_${{ matrix.arch }}
- uses: ilammy/msvc-dev-cmd@v1
if: ${{ matrix.arch == 'x64' }}
with:
arch: amd64
- name: Get nvJPEG2000 SDK
if: ${{ matrix.arch == 'x64' }}
shell: bash
run: |
curl -kL -o nvjpeg2000.zip https://github.com/user-attachments/files/17663661/nvjpeg2000.zip
7z x -y -p${{ env.NVJP2K_SDK_PW }} nvjpeg2000.zip
curl -kL -o cuda.zip https://github.com/user-attachments/files/17663668/cuda.zip
7z x -y -p${{ env.CUDA_SDK_PW }} cuda.zip
- name: Configure
working-directory: mdk
run: cmake --preset=${{ env.TARGET_OS }}-${{ matrix.arch }} -DCMAKE_INSTALL_PREFIX=mdk-sdk-${{ matrix.arch }}
- name: Build
working-directory: mdk
run: cmake --build --preset=${{ env.TARGET_OS }}-${{ matrix.arch }} --parallel
- name: Make SDK
shell: bash
working-directory: mdk
run: |
../ci-after-build.sh
mv mdk-sdk-*.7z ../mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}-vs2026.7z
- name: Archive SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}-vs2026-${{ matrix.config }}
path: mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}-vs2026.7z
# - name: Upload to SourceForge
# if: ${{ matrix.config == 'MinSizeRel' && env.SF_UPLOAD == 'true' }}
# uses: garygrossgarten/github-action-scp@release
# with:
# host: 'frs.sourceforge.net'
# username: ${{ secrets.SF_USER }}
# password: ${{ secrets.SF_PW }}
# local: mdk-sdk-${{ env.TARGET_OS }}-vs2026.7z
# remote: '/home/frs/project/mdk-sdk/nightly/'
Windows_SDK:
runs-on: ubuntu-latest
needs: [Windows]
env:
TARGET_OS: windows
steps:
- uses: actions/checkout@v6
- name: Download x86 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-windows-x86-vs2026-RelWithDebInfo
- name: Download x64 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-windows-x64-vs2026-RelWithDebInfo
- name: Download arm64 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-windows-arm64-vs2026-RelWithDebInfo
- name: Merge SDKs
shell: bash
run: |
7z x -aoa mdk-sdk-${TARGET_OS}-x86-vs2026.7z
7z x -aoa mdk-sdk-${TARGET_OS}-x64-vs2026.7z
7z x -aoa mdk-sdk-${TARGET_OS}-arm64-vs2026.7z
7z a -ssc -m0=lzma2 -mx=9 -ms=on -mf=off mdk-sdk-${TARGET_OS}-vs2026.7z mdk-sdk
md5sum mdk-sdk-${TARGET_OS}-vs2026.7z | cut -d ' ' -f1 > mdk-sdk-${TARGET_OS}-vs2026.7z.md5
md5sum mdk-sdk-${TARGET_OS}-x64-vs2026.7z | cut -d ' ' -f1 > mdk-sdk-${TARGET_OS}-x64-vs2026.7z.md5
- name: Archive SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-windows-vs2026-RelWithDebInfo
path: |
mdk-sdk-${{ env.TARGET_OS }}-vs2026.7z
mdk-sdk-${{ env.TARGET_OS }}-x64-vs2026.7z
- name: Upload to SourceForge
if: ${{ env.SF_UPLOAD == 'true' }}
shell: bash
run: make -f upload.mk
Windows_LTL:
runs-on: windows-2025-vs2026
env:
TARGET_OS: windows
CRT_EXTRA: LTL
strategy:
fail-fast: false
matrix:
config: [RelWithDebInfo]
arch: [x86, x64]
steps:
- uses: actions/checkout@v6
- name: Checkout source
uses: actions/checkout@v6
with:
repository: ${{ github.repository_owner }}/mdk
path: mdk
ref: ${{ github.event_name == 'repository_dispatch' && github.event.client_payload.ref || 'master' }}
fetch-depth: 1
token: ${{ secrets.CLONE_PAT }}
submodules: 'recursive'
- name: 'Restore External Dep cache'
id: external-dep-cache
uses: actions/cache@v5
with:
path: ./mdk/external
key: external-dep-${{ env.TARGET_OS }}-${{ env.CRT_EXTRA }}-ffmpeg-${{ env.FF_VER }}-${{ vars.FF_SDK_ID }}
- name: 'Restore VC-LTL cache'
id: ltl-cache
uses: actions/cache@v5
with:
path: ./mdk/cmake/VC-LTL
key: ltl-${{ vars.VC_LTL_VER }}
- if: ${{ steps.ltl-cache.outputs.cache-hit != 'true' }}
name: Get VC-LTL
shell: bash
working-directory: mdk/cmake
run: |
curl -kL -o ltl.7z https://github.com/Chuyu-Team/VC-LTL5/releases/download/v${VC_LTL_VER}/VC-LTL-Binary.7z
7z x ltl.7z -oVC-LTL
- name: Create Build Environment
shell: bash
env:
SYSROOT_CACHE_HIT: true
EXTERNAL_DEP_CACHE_HIT: ${{ steps.external-dep-cache.outputs.cache-hit }}
working-directory: mdk
run: ../ci-before-build.sh
- uses: seanmiddleditch/gha-setup-ninja@master
- uses: ilammy/msvc-dev-cmd@v1
if: ${{ matrix.arch != 'x64' }}
with:
arch: amd64_${{ matrix.arch }}
- uses: ilammy/msvc-dev-cmd@v1
if: ${{ matrix.arch == 'x64' }}
with:
arch: amd64
- name: Configure
working-directory: mdk
run: cmake --preset=${{ env.TARGET_OS }}-${{ matrix.arch }}-ltl -DCMAKE_INSTALL_PREFIX=mdk-sdk-${{ matrix.arch }}
- name: Build
working-directory: mdk
run: cmake --build --preset=${{ env.TARGET_OS }}-${{ matrix.arch }}-ltl --parallel
- name: Make SDK
shell: bash
working-directory: mdk
run: |
../ci-after-build.sh
mv mdk-sdk-*.7z ../mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}-vs2026-ltl.7z
- name: Archive SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}-vs2026-ltl-${{ matrix.config }}
path: mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}-vs2026-ltl.7z
Windows_LTL_SDK:
runs-on: ubuntu-latest
needs: [Windows_LTL]
env:
TARGET_OS: windows
steps:
- uses: actions/checkout@v6
- name: Download x86 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-windows-x86-vs2026-ltl-RelWithDebInfo
- name: Download x64 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-windows-x64-vs2026-ltl-RelWithDebInfo
- name: Merge SDKs
shell: bash
run: |
7z x -aoa mdk-sdk-${TARGET_OS}-x86-vs2026-ltl.7z
7z x -aoa mdk-sdk-${TARGET_OS}-x64-vs2026-ltl.7z
7z a -ssc -m0=lzma2 -mx=9 -ms=on -mf=off mdk-sdk-${TARGET_OS}-vs2026-ltl.7z mdk-sdk
- name: Archive SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-windows-vs2026-ltl-RelWithDebInfo
path: mdk-sdk-${{ env.TARGET_OS }}-vs2026-ltl.7z
UWP:
runs-on: windows-2025-vs2026
env:
TARGET_OS: uwp
strategy:
fail-fast: false
matrix:
config: [RelWithDebInfo]
arch: [x64, arm64]
steps:
- uses: actions/checkout@v6
- name: Checkout source
uses: actions/checkout@v6
with:
repository: ${{ github.repository_owner }}/mdk
path: mdk
ref: ${{ github.event_name == 'repository_dispatch' && github.event.client_payload.ref || 'master' }}
fetch-depth: 1
token: ${{ secrets.CLONE_PAT }}
submodules: 'recursive'
- name: 'Restore External Dep cache'
id: external-dep-cache
uses: actions/cache@v5
with:
path: ./mdk/external
key: external-dep-${{ env.TARGET_OS }}-ffmpeg-${{ env.FF_VER }}-${{ vars.FF_SDK_ID }}
- name: Create Build Environment
shell: bash
env:
SYSROOT_CACHE_HIT: true
EXTERNAL_DEP_CACHE_HIT: ${{ steps.external-dep-cache.outputs.cache-hit }}
working-directory: mdk
run: ../ci-before-build.sh
- uses: seanmiddleditch/gha-setup-ninja@master
- uses: ilammy/msvc-dev-cmd@v1
if: ${{ matrix.arch != 'x64' }}
with:
arch: amd64_${{ matrix.arch }}
uwp: true
- uses: ilammy/msvc-dev-cmd@v1
if: ${{ matrix.arch == 'x64' }}
with:
arch: x64
uwp: true
- name: Configure
working-directory: mdk
run: cmake --preset=${{ env.TARGET_OS }}-${{ matrix.arch }} -DCMAKE_INSTALL_PREFIX=mdk-sdk-${{ matrix.arch }}
- name: Build
working-directory: mdk
run: cmake --build --preset=${{ env.TARGET_OS }}-${{ matrix.arch }} --parallel
- name: Make SDK
shell: bash
working-directory: mdk
run: |
../ci-after-build.sh
mv mdk-sdk-*.7z ../mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}.7z
- name: Archive SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}-${{ matrix.config }}
path: mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}.7z
UWP_SDK:
runs-on: ubuntu-latest
needs: [UWP]
env:
TARGET_OS: uwp
steps:
- uses: actions/checkout@v6
- name: Download x64 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-uwp-x64-RelWithDebInfo
- name: Download arm64 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-uwp-arm64-RelWithDebInfo
- name: Merge SDKs
shell: bash
run: |
7z x -aoa mdk-sdk-${TARGET_OS}-x64.7z
7z x -aoa mdk-sdk-${TARGET_OS}-arm64.7z
7z a -ssc -m0=lzma2 -mx=9 -ms=on -mf=off mdk-sdk-${TARGET_OS}.7z mdk-sdk
- name: Archive SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-uwp-RelWithDebInfo
path: mdk-sdk-${{ env.TARGET_OS }}.7z
- name: Upload to SourceForge
if: ${{ env.SF_UPLOAD == 'true' }}
shell: bash
run: make -f upload.mk
ClangCL:
runs-on: ubuntu-latest
env:
TARGET_OS: ${{ matrix.os }}
VCDIR: '/tmp/winsysroot/msvcrt-dev'
WINDOWSSDKDIR: '/tmp/winsysroot/winsdk'
strategy:
fail-fast: false
matrix:
os: [windows]
config: [MinSizeRel]
arch: [x86, x64, arm64]
steps:
- uses: actions/checkout@v6
- name: Checkout source
uses: actions/checkout@v6
with:
repository: ${{ github.repository_owner }}/mdk
path: mdk
ref: ${{ github.event_name == 'repository_dispatch' && github.event.client_payload.ref || 'master' }}
fetch-depth: 1
token: ${{ secrets.CLONE_PAT }}
submodules: 'recursive'
- name: 'Restore External Dep cache'
id: external-dep-cache
uses: actions/cache@v5
with:
path: ./mdk/external
key: external-dep-${{ env.TARGET_OS }}-ffmpeg-${{ env.FF_VER }}-${{ vars.FF_SDK_ID }}
- name: 'Restore sysroot cache'
id: sysroot-cache
uses: actions/cache@v5
with:
path: /tmp/winsysroot
key: sysroot-${{ env.TARGET_OS }}${{ vars.WINSDKVER }}-vc${{ vars.VCVER }}
- name: Create Build Environment
shell: bash
env:
SYSROOT_CACHE_HIT: ${{ steps.sysroot-cache.outputs.cache-hit }}
EXTERNAL_DEP_CACHE_HIT: ${{ steps.external-dep-cache.outputs.cache-hit }}
working-directory: mdk
run: ../ci-before-build.sh
- name: Configure
working-directory: mdk
run: |
export WindowsSdkDir=${WINDOWSSDKDIR}
export WindowsSDKVersion=$(cat ${WINDOWSSDKDIR}/.version)
cmake --preset=${{ env.TARGET_OS }}-${{ matrix.arch }}-clang -DCMAKE_INSTALL_PREFIX=mdk-sdk-${{ matrix.arch }}
- name: Build
working-directory: mdk
run: cmake --build --preset=${TARGET_OS}-${{ matrix.arch }}-clang --parallel
- name: Make SDK
working-directory: mdk
run: |
../ci-after-build.sh
if [ -f $VCDIR/bin/x64/vcruntime140_1.dll ]; then
mkdir -p mdk-sdk/bin/x64
cp $VCDIR/bin/x64/vcruntime140_1.dll mdk-sdk/bin/x64
7z a mdk-sdk-*.7z mdk-sdk/bin/x64/vcruntime140_1.dll
fi
mv mdk-sdk-*.7z ../mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}-clang.7z
- name: Archive SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-clang-${{ env.TARGET_OS }}-${{ matrix.arch }}-${{ matrix.config }}
path: mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}-clang.7z
ClangCL_SDK:
runs-on: ubuntu-latest
needs: [ClangCL]
env:
TARGET_OS: windows
steps:
- uses: actions/checkout@v6
- name: Download x86 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-clang-windows-x86-MinSizeRel
- name: Download x64 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-clang-windows-x64-MinSizeRel
- name: Download arm64 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-clang-windows-arm64-MinSizeRel
- run: sudo apt install -y sshpass p7zip-full
- name: Merge SDK
shell: bash
run: |
7z x -aoa mdk-sdk-${TARGET_OS}-x86-clang.7z
7z x -aoa mdk-sdk-${TARGET_OS}-x64-clang.7z
7z x -aoa mdk-sdk-${TARGET_OS}-arm64-clang.7z
7z a -ssc -m0=lzma2 -mx=9 -ms=on -mf=off mdk-sdk-${TARGET_OS}-clang.7z mdk-sdk
- name: Archive SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-clang-windows-MinSizeRel
path: mdk-sdk-${{ env.TARGET_OS }}-clang.7z
- name: Upload to SourceForge
if: ${{ env.SF_UPLOAD == 'true' }}
run: sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-sdk-${TARGET_OS}-clang.7z ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
NuGet:
runs-on: macos-latest
needs: [Windows_SDK, UWP_SDK]
steps:
- uses: actions/checkout@v6
- name: Download windows vs2026 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-windows-vs2026-RelWithDebInfo
- name: Download uwp sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-uwp-RelWithDebInfo
- name: update build version
shell: bash
run: sed -i .bak "s,\(.*\.\)[0-9]*\(</version>\),\1${GITHUB_RUN_NUMBER}\2," nuget/mdk.nuspec
- name: install tools
run: brew install sshpass nuget 7zip md5sha1sum
- name: Make nupkg (vs2026)
run: |
rm -rf mdk-sdk uwp
7z x mdk-sdk-windows-vs2026.7z
7z x mdk-sdk-uwp.7z -o"uwp"
mkdir mdk-sdk/bin/UAP
cp -af uwp/mdk-sdk/bin/* mdk-sdk/bin/UAP
cp nuget/mdk.nuspec mdk-sdk
cp -avf nuget/README.md mdk-sdk
cd mdk-sdk
nuget pack mdk.nuspec
mv *.nupkg ../mdk-vs2026.nupkg
- name: Archive SDK
uses: actions/upload-artifact@v7
with:
name: mdk-nuget
path: 'mdk*.nupkg'
- name: Upload to SourceForge
if: ${{ env.SF_UPLOAD == 'true' }}
shell: bash
run: make -f upload.mk
Linux:
runs-on: ubuntu-latest
env:
TARGET_OS: linux
LTO_SUFFIX: -lto
strategy:
fail-fast: false
matrix:
config: [MinSizeRel]
arch: [amd64, arm64, armhf]
steps:
- uses: actions/checkout@v6
- name: Checkout source
uses: actions/checkout@v6
with:
repository: ${{ github.repository_owner }}/mdk
path: mdk
ref: ${{ github.event_name == 'repository_dispatch' && github.event.client_payload.ref || 'master' }}
fetch-depth: 1
token: ${{ secrets.CLONE_PAT }}
submodules: 'recursive'
- name: 'Restore External Dep cache'
id: external-dep-cache
uses: actions/cache@v5
with:
path: ./mdk/external
key: external-dep-${{ env.TARGET_OS }}-ffmpeg-${{ env.FF_VER }}-${{ vars.FF_SDK_ID }}
- name: 'Restore sysroot cache'
id: sysroot-cache
uses: actions/cache@v5
with:
path: ./mdk/sysroot
key: sysroot-${{ env.TARGET_OS }}-${{ vars.LINUX_SYSROOT_ID }}
- name: Create Build Environment
shell: bash
env:
SYSROOT_CACHE_HIT: ${{ steps.sysroot-cache.outputs.cache-hit }}
EXTERNAL_DEP_CACHE_HIT: ${{ steps.external-dep-cache.outputs.cache-hit }}
working-directory: mdk
run: |
sudo apt remove -y libc++1-14 libc++abi1-14 libunwind-14 python3-lldb-14 # conflict with latest llvm
../ci-before-build.sh
- name: Configure
shell: bash
working-directory: mdk
run: cmake --preset=${{ env.TARGET_OS }}-${{ matrix.arch }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk-${{ matrix.arch }}
- name: Build
shell: bash
working-directory: mdk
run: cmake --build --preset=${{ env.TARGET_OS }}-${{ matrix.arch }} --parallel
- name: Make SDK
shell: bash
working-directory: mdk
run: |
../ci-after-build.sh
mv mdk-sdk*.tar.xz ../mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}.tar.xz
- name: Archive SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}-${{ matrix.config }}
path: mdk-sdk-${{ env.TARGET_OS }}*.tar.xz
Linux_SDK:
runs-on: ubuntu-latest
needs: [Linux]
env:
TARGET_OS: linux
steps:
- uses: actions/checkout@v6
- name: Download amd64 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-linux-amd64-MinSizeRel
- name: Download arm64 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-linux-arm64-MinSizeRel
- name: Download armhf sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-linux-armhf-MinSizeRel
- run: sudo apt install -y sshpass
- name: Merge SDKs
shell: bash
run: |
tar Jxvf mdk-sdk-${TARGET_OS}-amd64.tar.xz
tar Jxvf mdk-sdk-${TARGET_OS}-arm64.tar.xz
tar Jxvf mdk-sdk-${TARGET_OS}-armhf.tar.xz
tar Jcvf mdk-sdk-${TARGET_OS}.tar.xz mdk-sdk
rm -rf mdk-sdk/{bin,lib}/arm*
tar Jcvf mdk-sdk-${TARGET_OS}-x64.tar.xz mdk-sdk
- name: Archive SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-linux-MinSizeRel
path: |
mdk-sdk-${{ env.TARGET_OS }}.tar.xz
mdk-sdk-${{ env.TARGET_OS }}-x64.tar.xz
- name: Upload to SourceForge
if: ${{ env.SF_UPLOAD == 'true' }}
shell: bash
run: |
sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-sdk-${TARGET_OS}.tar.xz ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-sdk-${TARGET_OS}-x64.tar.xz ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
md5sum mdk-sdk-${TARGET_OS}.tar.xz | cut -d ' ' -f1 > mdk-sdk-${TARGET_OS}.tar.xz.md5
md5sum mdk-sdk-${TARGET_OS}-x64.tar.xz | cut -d ' ' -f1 > mdk-sdk-${TARGET_OS}-x64.tar.xz.md5
sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-*.md5 ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
Android:
runs-on: ubuntu-latest # ndk 25 removed
env:
#FF_VER: 6.1 # 7.0 and master is very slow in avformat_find_stream_info
TARGET_OS: android
LTO_SUFFIX: -lto
MIN_API: 21
NDK_32: r25c
strategy:
fail-fast: false
matrix:
config: [MinSizeRel] # https://github.com/android/ndk/issues/721
arch: [arm64-v8a, x86_64, armeabi-v7a, x86]
steps:
- uses: actions/checkout@v6
- name: Checkout source
uses: actions/checkout@v6
with:
repository: ${{ github.repository_owner }}/mdk
path: mdk
ref: ${{ github.event_name == 'repository_dispatch' && github.event.client_payload.ref || 'master' }}
fetch-depth: 1
token: ${{ secrets.CLONE_PAT }}
submodules: 'recursive'
- name: 'Restore External Dep cache'
id: external-dep-cache
uses: actions/cache@v5
with:
path: ./mdk/external
key: external-dep-${{ env.TARGET_OS }}-ffmpeg-${{ env.FF_VER }}-${{ vars.FF_SDK_ID }}
- name: Create Build Environment
shell: bash
env:
# SYSROOT_CACHE_HIT: ${{ steps.sysroot-cache.outputs.cache-hit }}
EXTERNAL_DEP_CACHE_HIT: ${{ steps.external-dep-cache.outputs.cache-hit }}
working-directory: mdk
run: ../ci-before-build.sh
- name: Install sshpass
if: ${{ matrix.arch == 'arm64-v8a' }}
run: sudo apt install -y sshpass
- name: Configure
working-directory: mdk
run: cmake --preset=${{ env.TARGET_OS }}-${{ matrix.arch }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk-${{ matrix.arch }}
- name: Build
shell: bash
working-directory: mdk
run: cmake --build --preset=${{ env.TARGET_OS }}-${{ matrix.arch }} --parallel
# - uses: nttld/setup-ndk@v1
# id: setup-ndk
# with:
# ndk-version: ${{ env.NDK_32 }}
# local-cache: false
# - name: 'Restore ndk cache' # setup-ndk not fully cached
# id: ndk-cache
# uses: actions/cache@v5
# with:
# path: ${{ runner.tool_cache }}/ndk/${{ env.NDK_32 }} # /opt/hostedtoolcache
# key: ndk-cache-${{ runner.os }}-${{ env.NDK_32 }}
- name: Make SDK
shell: bash
working-directory: mdk
run: |
../ci-after-build.sh
mv mdk-sdk-*.7z ../mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}.7z
- name: Archive SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}-${{ matrix.config }}
path: mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.arch }}.7z
- name: Upload mediacodec library to SourceForge
if: ${{ matrix.config == 'MinSizeRel' && matrix.arch == 'arm64-v8a' && env.SF_UPLOAD == 'true' }}
shell: bash
working-directory: mdk
run: |
sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no build/android-arm64-v8a/video/libqtav-mediacodec.so ${SF_USER}@frs.sourceforge.net:/home/frs/project/qtav/depends/mediacodec/arm64-v8a
Android_SDK:
runs-on: ubuntu-latest
needs: [Android]
env:
TARGET_OS: android
steps:
- uses: actions/checkout@v6
- name: Download arm64-v8a sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-android-arm64-v8a-MinSizeRel
- name: Download x86_64 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-android-x86_64-MinSizeRel
- name: Download armeabi-v7a sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-android-armeabi-v7a-MinSizeRel
- name: Download x86 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-android-x86-MinSizeRel
- run: sudo apt install -y sshpass p7zip-full
- name: Merge SDKs
shell: bash
run: |
7z x -aoa mdk-sdk-${TARGET_OS}-x86_64.7z
7z x -aoa mdk-sdk-${TARGET_OS}-armeabi-v7a.7z
7z x -aoa mdk-sdk-${TARGET_OS}-x86.7z
7z x -aoa mdk-sdk-${TARGET_OS}-arm64-v8a.7z
7z a -ssc -m0=lzma2 -mx=9 -ms=on -mf=off mdk-sdk-${TARGET_OS}.7z mdk-sdk
- name: Archive SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-android-MinSizeRel
path: mdk-sdk-${{ env.TARGET_OS }}.7z
- name: Upload to SourceForge
if: ${{ env.SF_UPLOAD == 'true' }}
shell: bash
run: |
7z d -ssc -m0=lzma2 -mx=9 -ms=on -mf=off mdk-sdk-${TARGET_OS}.7z mdk-sdk/lib/{x86,x86_64}/libmdk.so.dsym
sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-sdk-${TARGET_OS}.7z ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
md5sum mdk-sdk-${TARGET_OS}.7z | cut -d ' ' -f1 > mdk-sdk-${TARGET_OS}.7z.md5
sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-*.md5 ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
ohos:
runs-on: macos-latest
env:
TARGET_OS: ohos
LTO_SUFFIX: -lto
strategy:
fail-fast: false
matrix:
config: [MinSizeRel]
arch: [arm64-v8a]
steps:
- uses: actions/checkout@v6
- name: Checkout source
uses: actions/checkout@v6
with:
repository: ${{ github.repository_owner }}/mdk
path: mdk
ref: ${{ github.event_name == 'repository_dispatch' && github.event.client_payload.ref || 'master' }}
fetch-depth: 1
token: ${{ secrets.CLONE_PAT }}
submodules: 'recursive'
- name: Setup OpenHarmony SDK
id: setup-ohos-sdk
uses: openharmony-rs/setup-ohos-sdk@v1.0.0
with:
version: ${{ vars.OH_SDK_VERSION }}
cache: true
- run: |
echo "api-version: ${{ steps.setup-ohos-sdk.outputs.api-version }}"
echo "ohos_sdk_native: ${{ steps.setup-ohos-sdk.outputs.ohos_sdk_native }}"
- name: 'Restore External Dep cache'
id: external-dep-cache
uses: actions/cache@v5
with:
path: ./mdk/external
key: external-dep-${{ env.TARGET_OS }}-ffmpeg-${{ env.FF_VER }}-${{ vars.FF_SDK_ID }}
- name: Create Build Environment
shell: bash
env:
# SYSROOT_CACHE_HIT: ${{ steps.sysroot-cache.outputs.cache-hit }}
EXTERNAL_DEP_CACHE_HIT: ${{ steps.external-dep-cache.outputs.cache-hit }}
working-directory: mdk
run: ../ci-before-build.sh
- name: Configure
shell: bash
working-directory: mdk
run: |
export OHOS_NDK=$OHOS_SDK_NATIVE
cmake --preset=${{ env.TARGET_OS }}-${{ matrix.arch }} -DCMAKE_INSTALL_PREFIX=$PWD/mdk-sdk-${{ matrix.arch }}
- name: Build
shell: bash
working-directory: mdk
run: cmake --build --preset=${{ env.TARGET_OS }}-${{ matrix.arch }} --parallel
- name: Make SDK
shell: bash
working-directory: mdk
run: |
export OHOS_NDK=$OHOS_SDK_NATIVE
../ci-after-build.sh
mv mdk-sdk-*.7z ..
- name: Archive SDK
uses: actions/upload-artifact@v7
with:
name: mdk-sdk-${{ env.TARGET_OS }}-${{ matrix.config }}
path: mdk-sdk-${{ env.TARGET_OS }}.7z
- name: Upload to SourceForge
if: ${{ matrix.config == 'MinSizeRel' && env.SF_UPLOAD == 'true' }}
shell: bash
run: |
sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-sdk-${TARGET_OS}.7z ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
md5sum mdk-sdk-${TARGET_OS}.7z | cut -d ' ' -f1 > mdk-sdk-${TARGET_OS}.7z.md5
sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-*.md5 ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
abi:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Checkout source
uses: actions/checkout@v6
with:
repository: ${{ github.repository_owner }}/mdk
path: mdk
ref: ${{ github.event_name == 'repository_dispatch' && github.event.client_payload.ref || 'master' }}
fetch-depth: 1
token: ${{ secrets.CLONE_PAT }}
- name: Make SDK
shell: bash
run: |
mkdir -p mdk-sdk/include/abi/mdk
cp -avf mdk/include/mdk/{AudioFormat,AudioFrame,Buffer,ColorSpace,FrameReader,global,MediaInfo,Property,VideoBuffer,VideoFormat,VideoFrame,VideoDecoder,Packet,MediaIO}.h mdk-sdk/include/abi/mdk
- name: Archive SDK
uses: actions/upload-artifact@v7
with:
name: mdk-abi-sdk
path: mdk-sdk/
- run: sudo apt install -y sshpass p7zip-full
- name: Upload to SourceForge
shell: bash
run: |
7z a mdk-abi-sdk.7z mdk-sdk
sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no mdk-abi-sdk.7z ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
cd mdk && git describe --always >.version
sshpass -p ${SF_PW} scp -o StrictHostKeyChecking=no .version ${SF_USER}@frs.sourceforge.net:/home/frs/project/mdk-sdk/nightly/
- name: test
if: ${{ env.SF_UPLOAD == 'true' }}
run: echo bye
# https://github.com/orgs/community/discussions/26323#discussioncomment-3251451
# https://docs.github.com/en/actions/using-workflows/triggering-a-workflow#triggering-a-workflow-from-a-workflow
# https://github.blog/changelog/2022-09-08-github-actions-use-github_token-with-workflow_dispatch-and-repository_dispatch/
Dispatch:
runs-on: ubuntu-latest
permissions: write-all
needs: [abi, NuGet, Apple, Linux_SDK, Android_SDK]
steps:
# - name: 'Trigger Workflow'
# uses: actions/github-script@v7
# with:
# script: |
# await github.rest.actions.createWorkflowDispatch({
# owner: '${{ github.repository_owner }}',
# repo: 'mdk-examples',
# workflow_id: 'workflows/main.yaml',
# ref: 'master',
# inputs: {
# run_id: ${{ github.run_id }}
# }
# });
- name: Dispatch
if: ${{ env.SF_UPLOAD == 'true' }}
run: |
gh workflow run main.yml --repo ${{ github.repository_owner }}/mdk-examples # -f run_id=${{ github.run_id }}
gh workflow run build.yml --repo ${{ github.repository_owner }}/SPV # -f run_id=${{ github.run_id }}
gh workflow run main.yml --repo ${{ github.repository_owner }}/mdk-braw -f run_id=${{ github.run_id }}
gh workflow run main.yml --repo ${{ github.repository_owner }}/mdk-nvjp2k -f run_id=${{ github.run_id }}
env:
GH_TOKEN: ${{ secrets.ACTION_PAT }} # GITHUB_TOKEN?
Pod:
runs-on: macos-latest
if: startsWith(github.ref, 'refs/tags/')
needs: [Apple]
steps:
- uses: actions/checkout@v6
- name: Deploy to Cocoapods
run: |
set -eo pipefail
pod trunk push mdk.podspec --allow-warnings --verbose
env:
COCOAPODS_TRUNK_TOKEN: ${{ secrets.POD_TRUNK_TOKEN }}
Release:
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
needs: [Apple, NuGet, Linux_SDK, Android_SDK, ClangCL_SDK]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Download iOS sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-iOS
- name: Download tvOS sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-tvOS
- name: Download visionOS sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-visionOS
- name: Download macCatalyst sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-macCatalyst-MinSizeRel
- name: Download macOS sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-macOS
- name: Download Apple sdk txz
uses: actions/download-artifact@v8
with:
name: mdk-sdk-apple
- name: Download Apple sdk zip
uses: actions/download-artifact@v8
with:
name: mdk-sdk-apple-zip
- name: Download win32 vs2026 sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-windows-vs2026-RelWithDebInfo
- name: Download win32 vs2026 ltl sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-windows-vs2026-ltl-RelWithDebInfo
- name: Download uwp sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-uwp-RelWithDebInfo
- name: Download clang-cl sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-clang-windows-MinSizeRel
- name: Download linux sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-linux-MinSizeRel
- name: Download android sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-android-MinSizeRel
- name: Download ohos sdk
uses: actions/download-artifact@v8
with:
name: mdk-sdk-ohos-MinSizeRel
- run: ls -lh
- name: Release
uses: softprops/action-gh-release@v2
with:
draft: true
body: "Changelog.md"
#body_path: Changelog.md
files: |
*.7z
*.xz
mdk-sdk-apple.zip