generated from Start9Labs/hello-world-startos
-
Notifications
You must be signed in to change notification settings - Fork 7
131 lines (112 loc) · 4.08 KB
/
buildService.yml
File metadata and controls
131 lines (112 loc) · 4.08 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
name: Build Service
on:
workflow_dispatch:
pull_request:
paths-ignore: ['*.md']
branches: ['main', 'master', 'update/040']
push:
paths-ignore: ['*.md']
branches: ['main', 'master', 'update/040']
jobs:
Build_aarch64:
name: Build S9PK (aarch64)
runs-on: ubuntu-24.04-arm
steps:
- name: Prepare StartOS SDK
uses: k0gen/sdk@v3-optimization
- name: Checkout services repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Build aarch64 package
id: build
shell: bash
run: |
start-cli init
chmod 600 ~/.startos/developer.key.pem
RUST_LOG=debug RUST_BACKTRACE=1 make aarch64
PACKAGE_FILE=$(ls *_aarch64.s9pk 2>/dev/null | head -n1)
if [ -z "$PACKAGE_FILE" ]; then
echo "❌ No aarch64 package found!"
ls -la *.s9pk || echo "No .s9pk files found"
exit 1
fi
PACKAGE_ID=$(start-cli s9pk inspect "$PACKAGE_FILE" manifest | jq -r '.id')
echo "package_id=${PACKAGE_ID}" >> $GITHUB_ENV
echo "package_file=${PACKAGE_FILE}" >> $GITHUB_ENV
printf "\n aarch64 SHA256: $(sha256sum "${PACKAGE_FILE}") \n"
- name: Upload aarch64 .s9pk
uses: actions/upload-artifact@v4
with:
name: ${{ env.package_file }}
path: ./${{ env.package_file }}
Build_x86_64:
name: Build S9PK (x86_64)
runs-on: ubuntu-24.04
steps:
- name: Prepare StartOS SDK
uses: k0gen/sdk@v3-optimization
- name: Checkout services repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Build x86_64 package
id: build
shell: bash
run: |
start-cli init
chmod 600 ~/.startos/developer.key.pem
RUST_LOG=debug RUST_BACKTRACE=1 make x86
PACKAGE_FILE=$(ls *_x86_64.s9pk 2>/dev/null | head -n1)
if [ -z "$PACKAGE_FILE" ]; then
echo "❌ No x86_64 package found!"
ls -la *.s9pk || echo "No .s9pk files found"
exit 1
fi
PACKAGE_ID=$(start-cli s9pk inspect "$PACKAGE_FILE" manifest | jq -r '.id')
echo "package_id=${PACKAGE_ID}" >> $GITHUB_ENV
echo "package_file=${PACKAGE_FILE}" >> $GITHUB_ENV
printf "\n x86_64 SHA256: $(sha256sum "${PACKAGE_FILE}") \n"
- name: Upload x86_64 .s9pk
uses: actions/upload-artifact@v4
with:
name: ${{ env.package_file }}
path: ./${{ env.package_file }}
BuildUniversal:
name: Build S9PK (Universal)
runs-on: ubuntu-24.04
needs: [Build_aarch64, Build_x86_64]
steps:
- name: Prepare StartOS SDK
uses: k0gen/sdk@v3-optimization
- name: Checkout services repository
uses: actions/checkout@v4
with:
submodules: recursive
- name: Build Universal package
id: build
shell: bash
run: |
start-cli init
chmod 600 ~/.startos/developer.key.pem
RUST_LOG=debug RUST_BACKTRACE=1 make
# Prefer a non-arch-suffixed universal package if present
PACKAGE_FILE=$(ls *.s9pk 2>/dev/null | grep -Ev '_(aarch64|x86_64)\.s9pk$' | head -n1)
if [ -z "$PACKAGE_FILE" ]; then
# Fallback: if packaging already renames to id.s9pk only, just take the first .s9pk
PACKAGE_FILE=$(ls *.s9pk 2>/dev/null | head -n1)
fi
if [ -z "$PACKAGE_FILE" ]; then
echo "❌ No universal package found!"
ls -la *.s9pk || echo "No .s9pk files found"
exit 1
fi
PACKAGE_ID=$(start-cli s9pk inspect "$PACKAGE_FILE" manifest | jq -r '.id')
echo "package_id=${PACKAGE_ID}" >> $GITHUB_ENV
echo "package_file=${PACKAGE_FILE}" >> $GITHUB_ENV
printf "\n ⚡ Universal SHA256: $(sha256sum "${PACKAGE_FILE}") \n"
- name: Upload Universal .s9pk
uses: actions/upload-artifact@v4
with:
name: ${{ env.package_file }}
path: ./${{ env.package_file }}