Skip to content

3.0.19

3.0.19 #122

Workflow file for this run

name: CI
on:
push:
branches:
- main
- master
tags:
- '*'
pull_request:
env:
VLC_VERSION: 3.0.19
UWP_LIBVLC_BUILD_FLAGS: -z -r -u -w
jobs:
libvlc:
runs-on: ubuntu-latest
container:
image: registry.videolan.org/vlc-debian-llvm-uwp:20211020111246
options: -u root
strategy:
matrix:
arch: [x86, x64, arm]
include:
- arch: x86
short-arch: win32
host-arch: i686
- arch: x64
short-arch: win64
host-arch: x86_64
- arch: arm
short-arch: winarm
host-arch: armv7
env:
SHORTARCH: ${{ matrix.short-arch }}
HOST_ARCH: ${{ matrix.host-arch }}
TRIPLET: ${{ matrix.host-arch }}-w64-mingw32
steps:
- name: Checkout
uses: actions/checkout@v3
with:
submodules: true
- name: Apply patches
run: |
cd vlc
git config --global user.email "[email protected]"
git config --global user.name "Cony Cone"
git am -3 ../patches/*.patch
if [ $? -ne 0 ]; then
git am --abort
echo "Applying the patches failed, aborting git-am"
exit 1
fi
- name: Build
run: vlc/extras/package/win32/build.sh -c -a ${{ matrix.host-arch }} $UWP_LIBVLC_BUILD_FLAGS
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: libvlc-${{ matrix.arch }}
path: ${{ matrix.short-arch }}-uwp/vlc-${{ env.VLC_VERSION }}-*.7z
if-no-files-found: error
UWP_access_v3:
strategy:
matrix:
arch: [x64, x86, arm]
runs-on: windows-2019
steps:
- name: Checkout libvlc uwp access module code
shell: bash
run: |
git clone https://code.videolan.org/mfkl/vlc-winrt && cd vlc-winrt && git checkout uwp-access-v3
mkdir -p libvlc/Universal/vlc-${{ matrix.arch }}/Release
- name: Download VLC headers
run: Invoke-WebRequest -Uri "https://code.videolan.org/videolan/vlc/-/archive/3.0.x/vlc-3.0.x.zip" -OutFile "vlc-3.0.x.zip"
- name: Extract LibVLC
shell: bash
run: |
7z x vlc-3.0.x.zip -ovlc
mv vlc/vlc-3.0.x/include vlc-winrt/libvlc/Universal/vlc-${{ matrix.arch }}/Release
- name: Add msbuild to PATH
uses: microsoft/[email protected]
- name: MSBuild x64/ARM
if: matrix.arch != 'x86'
working-directory: vlc-winrt/modules/libaccess_winrt_plugin.UWP
run: msbuild libaccess_winrt_plugin.UWP.vcxproj /p:Configuration=Release /p:Platform=${{ matrix.arch }}
- name: MSBuild x86
if: matrix.arch == 'x86'
working-directory: vlc-winrt/modules/libaccess_winrt_plugin.UWP
run: msbuild libaccess_winrt_plugin.UWP.vcxproj /p:Configuration=Release /p:Platform=Win32
- name: Upload build
uses: actions/upload-artifact@v3
with:
name: libvlc-uwp-access-build-${{ matrix.arch }}
path: vlc-winrt/modules/libaccess_winrt_plugin.UWP/Release/libaccess_winrt_plugin.UWP
if-no-files-found: error
UWP_NuGet:
runs-on: ubuntu-latest
needs:
- UWP_access_v3
- libvlc
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
- uses: NuGet/[email protected]
with:
nuget-version: '5.x'
- name: Authenticate to GitHub Packages
run: nuget sources add -Username ${{ github.actor }} -Password ${{ secrets.GITHUB_TOKEN }} -StorePasswordInClearText -Name github -Source "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json"
- name: Create NuGet folders
shell: bash
run: |
mkdir -p build/win10-arm/native
mkdir -p build/win10-x64/native
mkdir -p build/win10-x86/native
- name: Download and extract UWP builds
shell: bash
run: |
7z x libvlc-arm/vlc-$VLC_VERSION-win32.7z -oarm/vlc/winarm-uwp -y
7z x libvlc-x86/vlc-$VLC_VERSION-win32.7z -ox86/vlc/win32-uwp -y
7z x libvlc-x64/vlc-$VLC_VERSION-win64.7z -ox64/vlc/win64-uwp -y
mv arm/vlc/winarm-uwp/vlc-$VLC_VERSION/lua build/win10-arm/native
mv arm/vlc/winarm-uwp/vlc-$VLC_VERSION/plugins build/win10-arm/native
mv libvlc-uwp-access-build-arm/libaccess_winrt_plugin.dll build/win10-arm/native/plugins/access
mv arm/vlc/winarm-uwp/vlc-$VLC_VERSION/sdk build/win10-arm/native
mv arm/vlc/winarm-uwp/vlc-$VLC_VERSION/libvlc.dll build/win10-arm/native
mv arm/vlc/winarm-uwp/vlc-$VLC_VERSION/libvlccore.dll build/win10-arm/native
mv x86/vlc/win32-uwp/vlc-$VLC_VERSION/lua build/win10-x86/native
mv x86/vlc/win32-uwp/vlc-$VLC_VERSION/plugins build/win10-x86/native
mv libvlc-uwp-access-build-x86/libaccess_winrt_plugin.dll build/win10-x86/native/plugins/access
mv x86/vlc/win32-uwp/vlc-$VLC_VERSION/sdk build/win10-x86/native
mv x86/vlc/win32-uwp/vlc-$VLC_VERSION/libvlc.dll build/win10-x86/native
mv x86/vlc/win32-uwp/vlc-$VLC_VERSION/libvlccore.dll build/win10-x86/native
mv x64/vlc/win64-uwp/vlc-$VLC_VERSION/lua build/win10-x64/native
mv x64/vlc/win64-uwp/vlc-$VLC_VERSION/plugins build/win10-x64/native
mv libvlc-uwp-access-build-x64/libaccess_winrt_plugin.dll build/win10-x64/native/plugins/access
mv x64/vlc/win64-uwp/vlc-$VLC_VERSION/sdk build/win10-x64/native
mv x64/vlc/win64-uwp/vlc-$VLC_VERSION/libvlc.dll build/win10-x64/native
mv x64/vlc/win64-uwp/vlc-$VLC_VERSION/libvlccore.dll build/win10-x64/native
- name: Package NuGet
shell: bash
run: |
if [[ "${{ github.ref_type }}" == "tag" ]]; then
nuget pack VideoLAN.LibVLC.UWP.nuspec
else
nuget pack VideoLAN.LibVLC.UWP.nuspec -Version $VLC_VERSION-${{ github.sha }}
fi
- name: Upload NuGet package
uses: actions/upload-artifact@v3
with:
name: libvlc-uwp
path: '*.nupkg'
- name: Push to GitHub Packages
if: github.ref_type == 'tag'
run: nuget push *.nupkg -Source github -ApiKey ${{ secrets.GITHUB_TOKEN }}