-
Notifications
You must be signed in to change notification settings - Fork 7
132 lines (117 loc) · 3.61 KB
/
Copy pathci.yml
File metadata and controls
132 lines (117 loc) · 3.61 KB
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
name: CI
on:
push:
branches: [ main ]
pull_request:
jobs:
fossa:
name: FOSSA Scan
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run FOSSA scan
uses: fossas/fossa-action@v1
with:
api-key: ${{ secrets.FOSSA_API_KEY }}
assemble:
name: Assemble physicsbox
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 17
cache: gradle
- name: Assemble physicsbox
run: ./gradlew :physicsbox:assemble --no-configuration-cache
demo-android:
name: Demo Android (debug apk)
runs-on: ubuntu-latest
needs: [ fossa, assemble ]
steps:
- uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 17
cache: gradle
- name: Build Android debug APK
run: ./gradlew :androidApp:assembleDebug --no-configuration-cache
- name: Collect APK
shell: bash
run: |
set -euo pipefail
mkdir -p dist
APK="androidApp/build/outputs/apk/debug/androidApp-debug.apk"
if [ ! -f "$APK" ]; then
echo "APK not found at: $APK"
find androidApp/build -maxdepth 6 -type f -name "*.apk" -print || true
exit 1
fi
cp -f "$APK" "dist/PhysicsBoxDemo-android-debug.apk"
- name: Upload artifact (Android)
uses: actions/upload-artifact@v4
with:
name: demo-android
path: dist/**
retention-days: 14
demo-desktop:
name: Demo Desktop (${{ matrix.os }})
runs-on: ${{ matrix.os }}
needs: [ fossa, assemble ]
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
gradleTask: :desktopApp:packageDeb
ext: deb
outName: PhysicsBoxDemo-linux.deb
- os: windows-latest
gradleTask: :desktopApp:packageMsi
ext: msi
outName: PhysicsBoxDemo-windows.msi
- os: macos-latest
gradleTask: :desktopApp:packageDmg
ext: dmg
outName: PhysicsBoxDemo-macos.dmg
steps:
- uses: actions/checkout@v4
- name: Git long paths (windows)
if: runner.os == 'Windows'
run: git config --system core.longpaths true
- name: Install WiX (windows)
if: runner.os == 'Windows'
run: choco install wixtoolset -y
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: zulu
java-version: 17
cache: gradle
- name: Build desktop package
shell: bash
run: ./gradlew ${{ matrix.gradleTask }} --no-configuration-cache
- name: Collect package
shell: bash
run: |
set -euo pipefail
mkdir -p dist
ROOT="desktopApp/build/compose/binaries"
FILE="$(find "$ROOT" -type f -name "*.${{ matrix.ext }}" -print0 | xargs -0 ls -t 2>/dev/null | head -n 1 || true)"
if [ -z "$FILE" ]; then
echo "Package not found under: $ROOT"
find "$ROOT" -maxdepth 8 -type f -print || true
exit 1
fi
cp -f "$FILE" "dist/${{ matrix.outName }}"
echo "Collected: $FILE -> dist/${{ matrix.outName }}"
- name: Upload artifact (Desktop)
uses: actions/upload-artifact@v4
with:
name: demo-desktop-${{ matrix.os }}
path: dist/**
retention-days: 14