Skip to content

Commit 1c6e249

Browse files
committed
Create UWP.yml
Create an automated Github Action that syncs with upstream then does a release once a week.
1 parent b494905 commit 1c6e249

1 file changed

Lines changed: 214 additions & 0 deletions

File tree

.github/workflows/UWP.yml

Lines changed: 214 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,214 @@
1+
name: UWP
2+
'on':
3+
push:
4+
branches:
5+
- master
6+
pull_request:
7+
branches:
8+
- master
9+
schedule:
10+
- cron: '0 0 * * 1'
11+
workflow_dispatch:
12+
13+
jobs:
14+
SyncUpstream:
15+
runs-on: ubuntu-latest
16+
permissions:
17+
contents: write
18+
steps:
19+
- name: Checkout master
20+
uses: actions/checkout@v4
21+
with:
22+
ref: master
23+
fetch-depth: 0
24+
25+
- name: Sync with Upstream
26+
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
27+
uses: aormsby/Fork-Sync-With-Upstream-action@v3.4.1
28+
with:
29+
target_sync_branch: master
30+
target_repo_token: ${{ secrets.GITHUB_TOKEN }}
31+
upstream_sync_branch: master
32+
upstream_sync_repo: libretro/RetroArch
33+
test_mode: false
34+
XboxOne:
35+
needs: SyncUpstream
36+
runs-on: windows-latest
37+
steps:
38+
- name: Add msbuild to PATH
39+
uses: microsoft/setup-msbuild@v2
40+
- name: Checkout Repository
41+
uses: actions/checkout@v6.0.1
42+
with:
43+
fetch-depth: 0
44+
submodules: false
45+
- name: Download ANGLE Cores, DLLs and Extract
46+
run: >
47+
curl -L "https://github.com/TheRhysWyrill/RA-Xbox-Files/raw/main/Angle%%20Cores.zip" --output Angle_Cores.zip
48+
"https://github.com/TheRhysWyrill/RA-Xbox-Files/raw/main/DLLs.zip.001" --output DLLs.zip.001
49+
"https://github.com/TheRhysWyrill/RA-Xbox-Files/raw/main/DLLs.zip.002" --output DLLs.zip.002 &&
50+
7z x Angle_Cores.zip -o"pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64\cores" *.* -r -y && 7z x DLLs.zip.001 -o"pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64" *.* -r -y &&
51+
del /q /f "pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64\.empty" "pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64\cores\.empty"
52+
shell: cmd
53+
- name: Compile ANGLE build
54+
run: |
55+
msbuild pkg\msvc-UWP\RetroArch-msvcUWP.sln `
56+
/p:AppxBundle=Always `
57+
/p:UapAppxPackageBuildMode==SideloadOnly `
58+
/p:AppxBundlePlatforms="x64" `
59+
/p:Configuration="ReleaseANGLE" `
60+
/p:Platform="x64"
61+
shell: pwsh
62+
- name: Grab AppX package
63+
shell: cmd
64+
run: >
65+
cd pkg\msvc-uwp\x64\ReleaseANGLE\RetroArch-msvcUWP && copy /B *ReleaseANGLE.appx ..\..\RetroArch-XboxOne.appx
66+
- name: Upload AppX package
67+
uses: actions/upload-artifact@v6
68+
with:
69+
name: "RetroArch-XboxOne"
70+
path: ./pkg/msvc-uwp/x64/RetroArch-XboxOne.appx
71+
72+
SeriesConsoles:
73+
needs: SyncUpstream
74+
runs-on: windows-latest
75+
steps:
76+
- name: Add msbuild to PATH
77+
uses: microsoft/setup-msbuild@v2
78+
- name: Checkout Repository
79+
uses: actions/checkout@v6.0.1
80+
with:
81+
fetch-depth: 0
82+
submodules: false
83+
- name: Download and Extract DLLs
84+
run: >
85+
curl -L "https://github.com/TheRhysWyrill/RA-Xbox-Files/raw/main/DLLs.zip.001" --output DLLs.zip.001
86+
"https://github.com/TheRhysWyrill/RA-Xbox-Files/raw/main/DLLs.zip.002" --output DLLs.zip.002 &&
87+
7z x DLLs.zip.001 -o"pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64" *.* -r -y &&
88+
del /q /f "pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64\.empty" "pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64\cores\.empty"
89+
shell: cmd
90+
- name: Compile Mesa build
91+
run: |
92+
msbuild pkg\msvc-UWP\RetroArch-msvcUWP.sln `
93+
/p:AppxBundle=Always `
94+
/p:UapAppxPackageBuildMode==SideloadOnly `
95+
/p:AppxBundlePlatforms="x64" `
96+
/p:Configuration="Release" `
97+
/p:Platform="x64"
98+
shell: pwsh
99+
- name: Grab AppX package
100+
shell: cmd
101+
run: >
102+
cd pkg\msvc-uwp\x64\Release\RetroArch-msvcUWP && copy /B *x64.appx ..\..\RetroArch-SeriesConsoles.appx
103+
- name: Upload AppX package
104+
uses: actions/upload-artifact@v6
105+
with:
106+
name: "RetroArch-SeriesConsoles"
107+
path: ./pkg/msvc-uwp/x64/RetroArch-SeriesConsoles.appx
108+
109+
XboxOneAllCores:
110+
needs: SyncUpstream
111+
runs-on: windows-latest
112+
steps:
113+
- name: Add msbuild to PATH
114+
uses: microsoft/setup-msbuild@v2
115+
- name: Checkout Repository
116+
uses: actions/checkout@v6.0.1
117+
with:
118+
fetch-depth: 0
119+
submodules: false
120+
- name: Download Cores, DLLs and Extract
121+
run: >
122+
curl -L "https://buildbot.libretro.com/nightly/windows/x86_64/RetroArch_cores.7z" --output Cores.7z
123+
"https://github.com/TheRhysWyrill/RA-Xbox-Files/raw/main/Angle%%20Cores.zip" --output Angle_Cores.zip
124+
"https://github.com/TheRhysWyrill/RA-Xbox-Files/raw/main/DLLs.zip.001" --output DLLs.zip.001
125+
"https://github.com/TheRhysWyrill/RA-Xbox-Files/raw/main/DLLs.zip.002" --output DLLs.zip.002 &&
126+
7z e Cores.7z -o"pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64\cores\" && 7z x Angle_Cores.zip -aoa -o"pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64\cores" *.* -r -y && 7z x DLLs.zip.001 -o"pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64" *.* -r -y &&
127+
del /q /f "pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64\.empty" "pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64\cores\.empty" "pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64\cores\citra2018_libretro.dll" "pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64\cores\citra_libretro.dll"
128+
shell: cmd
129+
- name: Compile ANGLE build
130+
run: |
131+
msbuild pkg\msvc-UWP\RetroArch-msvcUWP.sln `
132+
/p:AppxBundle=Always `
133+
/p:UapAppxPackageBuildMode==SideloadOnly `
134+
/p:AppxBundlePlatforms="x64" `
135+
/p:Configuration="ReleaseANGLE" `
136+
/p:Platform="x64"
137+
shell: pwsh
138+
- name: Grab AppX package
139+
shell: cmd
140+
run: >
141+
cd pkg\msvc-uwp\x64\ReleaseANGLE\RetroArch-msvcUWP && copy /B *ReleaseANGLE.appx ..\..\RetroArch-XboxOne-AllCores.appx
142+
- name: Upload AppX package
143+
uses: actions/upload-artifact@v6
144+
with:
145+
name: "RetroArch-XboxOne-AllCores"
146+
path: ./pkg/msvc-uwp/x64/RetroArch-XboxOne-AllCores.appx
147+
148+
SeriesConsolesAllCores:
149+
needs: SyncUpstream
150+
runs-on: windows-latest
151+
steps:
152+
- name: Add msbuild to PATH
153+
uses: microsoft/setup-msbuild@v2
154+
- name: Checkout Repository
155+
uses: actions/checkout@v6.0.1
156+
with:
157+
fetch-depth: 0
158+
submodules: false
159+
- name: Download Cores, DLLs and Extract
160+
run: >
161+
curl -L "https://buildbot.libretro.com/nightly/windows/x86_64/RetroArch_cores.7z" --output Cores.7z
162+
"https://github.com/TheRhysWyrill/RA-Xbox-Files/raw/main/DLLs.zip.001" --output DLLs.zip.001
163+
"https://github.com/TheRhysWyrill/RA-Xbox-Files/raw/main/DLLs.zip.002" --output DLLs.zip.002 &&
164+
7z e Cores.7z -o"pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64\cores\" && 7z x DLLs.zip.001 -o"pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64" *.* -r -y &&
165+
del /q /f "pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64\.empty" "pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64\cores\.empty" "pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64\cores\citra2018_libretro.dll" "pkg\msvc-uwp\RetroArch-msvcUWP\cores\x64\cores\citra_libretro.dll"
166+
shell: cmd
167+
- name: Compile Mesa build
168+
run: |
169+
msbuild pkg\msvc-UWP\RetroArch-msvcUWP.sln `
170+
/p:AppxBundle=Always `
171+
/p:UapAppxPackageBuildMode==SideloadOnly `
172+
/p:AppxBundlePlatforms="x64" `
173+
/p:Configuration="Release" `
174+
/p:Platform="x64"
175+
shell: pwsh
176+
- name: Grab AppX package
177+
shell: cmd
178+
run: >
179+
cd pkg\msvc-uwp\x64\Release\RetroArch-msvcUWP && copy /B *x64.appx ..\..\RetroArch-SeriesConsoles-AllCores.appx
180+
- name: Upload AppX package
181+
uses: actions/upload-artifact@v6
182+
with:
183+
name: "RetroArch-SeriesConsoles-AllCores"
184+
path: ./pkg/msvc-uwp/x64/RetroArch-SeriesConsoles-AllCores.appx
185+
186+
Publish-release:
187+
needs: [XboxOne, SeriesConsoles, XboxOneAllCores, SeriesConsolesAllCores]
188+
name: Publish Release
189+
if: github.ref == 'refs/heads/master'
190+
permissions: write-all
191+
runs-on: ubuntu-slim
192+
193+
steps:
194+
- name: Get current date
195+
id: date
196+
run: echo "::set-output name=date::$(date +'%m-%d-%Y')"
197+
198+
- name: Download Artifacts
199+
uses: actions/download-artifact@v6
200+
with:
201+
path: ./artifacts/
202+
203+
- name: Create a new release
204+
uses: marvinpinto/action-automatic-releases@latest
205+
with:
206+
repo_token: ${{ secrets.GITHUB_TOKEN }}
207+
automatic_release_tag: ${{ steps.date.outputs.date }}
208+
prerelease: false
209+
title: Xbox Builds [${{ steps.date.outputs.date }}]
210+
files: |
211+
./artifacts/RetroArch-XboxOne/RetroArch-XboxOne.appx
212+
./artifacts/RetroArch-SeriesConsoles/RetroArch-SeriesConsoles.appx
213+
./artifacts/RetroArch-XboxOne-AllCores/RetroArch-XboxOne-AllCores.appx
214+
./artifacts/RetroArch-SeriesConsoles-AllCores/RetroArch-SeriesConsoles-AllCores.appx

0 commit comments

Comments
 (0)