Skip to content

Commit 844636d

Browse files
committed
Improve artifact fallback logic in release workflow
1 parent 166fde3 commit 844636d

1 file changed

Lines changed: 36 additions & 7 deletions

File tree

.github/workflows/release.yml

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ on:
55
branches:
66
- main
77
tags:
8-
- 'v*'
8+
- "v*"
99
workflow_dispatch:
1010

1111
permissions:
12-
contents: write # needed to create releases
12+
contents: write # needed to create releases
1313

1414
jobs:
1515
assemble_driver:
@@ -29,24 +29,53 @@ jobs:
2929
run: |
3030
TAG=${GITHUB_REF_NAME}
3131
mkdir -p steamvr_zip/rayneo/bin/win64 steamvr_zip/rayneo/bin/linux64
32+
33+
# Copy driver manifest with fallbacks from artifacts
3234
if [ -f openvr_driver/driver.vrdrivermanifest ]; then
3335
cp openvr_driver/driver.vrdrivermanifest steamvr_zip/rayneo/
3436
else
35-
echo "Manifest missing"; ls -l openvr_driver || true
37+
echo "Manifest missing in repo, trying artifacts..."
38+
MANIFEST_PATH=$(find dist -type f -name driver.vrdrivermanifest -print -quit 2>/dev/null || true)
39+
if [ -n "$MANIFEST_PATH" ]; then
40+
cp "$MANIFEST_PATH" steamvr_zip/rayneo/
41+
echo "Copied manifest from $MANIFEST_PATH"
42+
else
43+
echo "Manifest missing everywhere"; ls -l openvr_driver || true
44+
fi
3645
fi
46+
47+
# Windows DLL: try expected path, then search broadly in artifacts
3748
if [ -f dist/openvr-driver-windows-latest/rayneo/bin/win64/driver_rayneo.dll ]; then
3849
cp dist/openvr-driver-windows-latest/rayneo/bin/win64/driver_rayneo.dll steamvr_zip/rayneo/bin/win64/driver_rayneo.dll
3950
else
40-
WIN_DLL=$(find dist/openvr-driver-windows-latest -type f -name driver_rayneo.dll -print -quit 2>/dev/null || true)
51+
WIN_DLL=$(find dist -type f -name driver_rayneo.dll -print -quit 2>/dev/null || true)
52+
if [ -z "$WIN_DLL" ]; then
53+
# as a last resort, accept any driver DLL variant name
54+
WIN_DLL=$(find dist -type f -name 'driver_*.dll' -print -quit 2>/dev/null || true)
55+
fi
4156
if [ -n "$WIN_DLL" ]; then
4257
cp "$WIN_DLL" steamvr_zip/rayneo/bin/win64/driver_rayneo.dll || echo "Copy win64 failed"
58+
echo "Copied Windows driver from $WIN_DLL"
4359
else
44-
echo "Windows driver dll not found; tree:"; ls -R dist/openvr-driver-windows-latest || true
60+
echo "Windows driver dll not found; dist tree:"
61+
ls -R dist/openvr-driver-windows-latest 2>/dev/null || ls -R dist || true
4562
fi
4663
fi
47-
if [ -d dist/openvr-driver-ubuntu-latest/rayneo/bin/linux64 ]; then
64+
65+
# Linux SO: try expected path, then search broadly in artifacts
66+
if [ -f dist/openvr-driver-ubuntu-latest/rayneo/bin/linux64/driver_rayneo.so ]; then
4867
cp dist/openvr-driver-ubuntu-latest/rayneo/bin/linux64/driver_rayneo.so steamvr_zip/rayneo/bin/linux64/ || echo "Linux64 driver missing"
68+
else
69+
LINUX_SO=$(find dist -type f -name driver_rayneo.so -print -quit 2>/dev/null || true)
70+
if [ -n "$LINUX_SO" ]; then
71+
cp "$LINUX_SO" steamvr_zip/rayneo/bin/linux64/driver_rayneo.so || echo "Copy linux64 failed"
72+
echo "Copied Linux driver from $LINUX_SO"
73+
else
74+
echo "Linux driver .so not found; dist tree:"
75+
ls -R dist/openvr-driver-ubuntu-latest 2>/dev/null || ls -R dist || true
76+
fi
4977
fi
78+
5079
(cd steamvr_zip && zip -r steamvr_rayneo_driver-${TAG}.zip rayneo)
5180
mkdir -p dist/steamvr_driver
5281
cp steamvr_zip/steamvr_rayneo_driver-${TAG}.zip dist/steamvr_driver/
@@ -77,7 +106,7 @@ jobs:
77106
if: startsWith(matrix.os, 'windows')
78107
uses: actions/setup-node@v4
79108
with:
80-
node-version: '20.x'
109+
node-version: "20.x"
81110
# Using setup-node to ensure Git is modern; vcpkg bootstrap uses Git.
82111
- name: Bootstrap vcpkg (Windows)
83112
if: startsWith(matrix.os, 'windows')

0 commit comments

Comments
 (0)