-
-
Notifications
You must be signed in to change notification settings - Fork 10
156 lines (146 loc) · 5.96 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
name: CI
on:
push:
branches:
- main
- master
pull_request:
env:
VLC_VERSION: 3.0.20
UWP_LIBVLC_BUILD_FLAGS: -z -r -u -w
jobs:
libvlc:
runs-on: ubuntu-latest
container:
image: registry.videolan.org/vlc-debian-llvm-uwp:20220713124227
options: -u root
strategy:
matrix:
arch: [x86, x64, arm64]
include:
- arch: x86
short-arch: win32
host-arch: i686
- arch: x64
short-arch: win64
host-arch: x86_64
- arch: arm64
short-arch: winarm64
host-arch: aarch64
env:
SHORTARCH: ${{ matrix.short-arch }}
HOST_ARCH: ${{ matrix.host-arch }}
TRIPLET: ${{ matrix.host-arch }}-w64-mingw32
steps:
- name: Checkout
uses: actions/checkout@v4
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@v4
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, arm64]
runs-on: windows-2019
steps:
- name: Checkout libvlc uwp access module code
shell: bash
run: |
git clone --depth 1 https://github.com/huynhsontung/vlc-winrt.git && cd vlc-winrt
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/setup-msbuild@v2
- name: MSBuild x64/ARM64
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@v4
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@v4
- uses: actions/download-artifact@v4
- uses: NuGet/setup-nuget@v2
with:
nuget-version: '5.x'
- name: Create NuGet folders
shell: bash
run: |
mkdir -p build/win10-arm64/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-arm64/vlc-$VLC_VERSION-win32.7z -oarm64/vlc/winarm64-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 arm64/vlc/winarm64-uwp/vlc-$VLC_VERSION/lua build/win10-arm64/native
mv arm64/vlc/winarm64-uwp/vlc-$VLC_VERSION/plugins build/win10-arm64/native
mv libvlc-uwp-access-build-arm64/libaccess_winrt_plugin.dll build/win10-arm64/native/plugins/access
mv arm64/vlc/winarm64-uwp/vlc-$VLC_VERSION/sdk build/win10-arm64/native
mv arm64/vlc/winarm64-uwp/vlc-$VLC_VERSION/libvlc.dll build/win10-arm64/native
mv arm64/vlc/winarm64-uwp/vlc-$VLC_VERSION/libvlccore.dll build/win10-arm64/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: Get tag
id: get-tag
run: echo "tag=$(date +'%y%m%d%H%M')" >> "$GITHUB_OUTPUT"
- name: Package NuGet
shell: bash
run: nuget pack VideoLAN.LibVLC.UWP.nuspec -Version $VLC_VERSION-${{ steps.get-tag.outputs.tag }}+$(printf '%.10s' $GITHUB_SHA)
- name: Upload NuGet package
uses: actions/upload-artifact@v4
with:
name: libvlc-uwp
path: '*.nupkg'
- name: Push to Nuget
if: github.event_name == 'push'
run: nuget push *.nupkg -Source "https://api.nuget.org/v3/index.json" -ApiKey ${{ secrets.NUGET_TOKEN }} -SkipDuplicate