11name : Build Service
2+
23on :
34 workflow_dispatch :
45 pull_request :
910 branches : ['main', 'master', 'update/040']
1011
1112jobs :
12- Build_aarch64 :
13- name : Build S9PK (aarch64)
14- runs-on : ubuntu-24.04-arm
15- steps :
16- - name : Prepare StartOS SDK
17- uses : k0gen/sdk@v3-optimization
18-
19- - name : Checkout services repository
20- uses : actions/checkout@v4
21- with :
22- submodules : recursive
23-
24- - name : Build aarch64 package
25- id : build
26- shell : bash
27- run : |
28- start-cli init-key
29- chmod 600 ~/.startos/developer.key.pem
30- RUST_LOG=debug RUST_BACKTRACE=1 make aarch64
31-
32- PACKAGE_FILE=$(ls *_aarch64.s9pk 2>/dev/null | head -n1)
33- if [ -z "$PACKAGE_FILE" ]; then
34- echo "❌ No aarch64 package found!"
35- ls -la *.s9pk || echo "No .s9pk files found"
36- exit 1
37- fi
38-
39- PACKAGE_ID=$(start-cli s9pk inspect "$PACKAGE_FILE" manifest | jq -r '.id')
40- echo "package_id=${PACKAGE_ID}" >> $GITHUB_ENV
41- echo "package_file=${PACKAGE_FILE}" >> $GITHUB_ENV
42- printf "\n aarch64 SHA256: $(sha256sum "${PACKAGE_FILE}") \n"
43-
44- - name : Upload aarch64 .s9pk
45- uses : actions/upload-artifact@v4
46- with :
47- name : ${{ env.package_file }}
48- path : ./${{ env.package_file }}
49-
50- Build_x86_64 :
51- name : Build S9PK (x86_64)
52- runs-on : ubuntu-24.04
53- steps :
54- - name : Prepare StartOS SDK
55- uses : k0gen/sdk@v3-optimization
56-
57- - name : Checkout services repository
58- uses : actions/checkout@v4
59- with :
60- submodules : recursive
61-
62- - name : Build x86_64 package
63- id : build
64- shell : bash
65- run : |
66- start-cli init-key
67- chmod 600 ~/.startos/developer.key.pem
68- RUST_LOG=debug RUST_BACKTRACE=1 make x86
69-
70- PACKAGE_FILE=$(ls *_x86_64.s9pk 2>/dev/null | head -n1)
71- if [ -z "$PACKAGE_FILE" ]; then
72- echo "❌ No x86_64 package found!"
73- ls -la *.s9pk || echo "No .s9pk files found"
74- exit 1
75- fi
76-
77- PACKAGE_ID=$(start-cli s9pk inspect "$PACKAGE_FILE" manifest | jq -r '.id')
78- echo "package_id=${PACKAGE_ID}" >> $GITHUB_ENV
79- echo "package_file=${PACKAGE_FILE}" >> $GITHUB_ENV
80- printf "\n x86_64 SHA256: $(sha256sum "${PACKAGE_FILE}") \n"
81-
82- - name : Upload x86_64 .s9pk
83- uses : actions/upload-artifact@v4
84- with :
85- name : ${{ env.package_file }}
86- path : ./${{ env.package_file }}
87-
88- BuildUniversal :
89- name : Build S9PK (Universal)
90- runs-on : ubuntu-24.04
91- needs : [Build_aarch64, Build_x86_64]
92- steps :
93- - name : Prepare StartOS SDK
94- uses : k0gen/sdk@v3-optimization
95-
96- - name : Checkout services repository
97- uses : actions/checkout@v4
98- with :
99- submodules : recursive
100-
101- - name : Build Universal package
102- id : build
103- shell : bash
104- run : |
105- start-cli init-key
106- chmod 600 ~/.startos/developer.key.pem
107- RUST_LOG=debug RUST_BACKTRACE=1 make
108-
109- # Prefer a non-arch-suffixed universal package if present
110- PACKAGE_FILE=$(ls *.s9pk 2>/dev/null | grep -Ev '_(aarch64|x86_64)\.s9pk$' | head -n1)
111- if [ -z "$PACKAGE_FILE" ]; then
112- # Fallback: if packaging already renames to id.s9pk only, just take the first .s9pk
113- PACKAGE_FILE=$(ls *.s9pk 2>/dev/null | head -n1)
114- fi
115-
116- if [ -z "$PACKAGE_FILE" ]; then
117- echo "❌ No universal package found!"
118- ls -la *.s9pk || echo "No .s9pk files found"
119- exit 1
120- fi
121-
122- PACKAGE_ID=$(start-cli s9pk inspect "$PACKAGE_FILE" manifest | jq -r '.id')
123- echo "package_id=${PACKAGE_ID}" >> $GITHUB_ENV
124- echo "package_file=${PACKAGE_FILE}" >> $GITHUB_ENV
125- printf "\n ⚡ Universal SHA256: $(sha256sum "${PACKAGE_FILE}") \n"
126-
127- - name : Upload Universal .s9pk
128- uses : actions/upload-artifact@v4
129- with :
130- name : ${{ env.package_file }}
131- path : ./${{ env.package_file }}
13+ build :
14+ uses : start9labs/shared-workflows/.github/workflows/buildService.yml@master
15+ secrets :
16+ DEV_KEY : ${{ secrets.DEV_KEY }}
0 commit comments