Skip to content

Commit aebf76e

Browse files
committed
Actions: add self-hosted
1 parent 6ccee5f commit aebf76e

File tree

3 files changed

+100
-2
lines changed

3 files changed

+100
-2
lines changed

.github/workflows/build-nightly.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ on:
1111
default: false
1212
type: boolean
1313
workflow_call:
14-
pull_request:
15-
types: [ assigned ]
14+
1615

1716
jobs:
1817
set-envs:
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: Build self hosted devices
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
DEVICE:
7+
required: true
8+
type: string
9+
10+
jobs:
11+
Build:
12+
runs-on: self-hosted
13+
env:
14+
CCACHE_DIR: $HOME/ccache-${{ inputs.DEVICE }}
15+
CCACHE_SLOPPINESS: pch_defines,time_macros
16+
SOURCES_DIR: /opt/rocknix-sources
17+
steps:
18+
- name: Fix permissions
19+
run: |
20+
chmod -R u+rwX $GITHUB_WORKSPACE/build.ROCKNIX-*.aarch64/build/syncthing-* || true
21+
- uses: actions/checkout@v4
22+
with:
23+
fetch-depth: 0
24+
- name: Build
25+
uses: corrupt952/[email protected]
26+
with:
27+
command: |
28+
CCACHE_DIR=$HOME/ccache-${{ inputs.DEVICE }} ccache --max-size=20G
29+
CCACHE_DIR=$HOME/ccache-${{ inputs.DEVICE }} ccache --set-config sloppiness=pch_defines,time_macros
30+
set -o pipefail
31+
make ${{ inputs.DEVICE }} | tee output.log | grep -E --color=never --line-buffered "^GET|^UNPACK|^BUILD|^INSTALL"
32+
exit ${PIPESTATUS[0]}
33+
max_attempts: 4
34+
retry_interval: 10
35+
36+
- name: Archive output.logs (${{ inputs.DEVICE }}-aarch64)
37+
if: failure()
38+
uses: actions/upload-artifact@v4
39+
with:
40+
name: output.logs-${{ inputs.DEVICE }}-aarch64
41+
path: |
42+
output.log
43+
./build.ROCKNIX-${{ inputs.DEVICE }}.aarch64/.threads/logs/
44+
- name: Get date
45+
run: echo "DATE=$(date +'%Y%m%d')" >> $GITHUB_ENV
46+
47+
- uses: actions/upload-artifact@v4
48+
with:
49+
name: ROCKNIX-image-${{ inputs.DEVICE }}-${{ env.DATE }}
50+
path: |
51+
target/ROCKNIX-*.img.gz
52+
target/ROCKNIX-*.img.gz.sha256
53+
compression-level: 0
54+
if-no-files-found: error
55+
56+
- uses: actions/upload-artifact@v4
57+
with:
58+
name: ROCKNIX-update-${{ inputs.DEVICE }}-${{ env.DATE }}
59+
path: |
60+
target/ROCKNIX-*.tar
61+
target/ROCKNIX-*.tar.sha256
62+
compression-level: 0
63+
if-no-files-found: error
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: Build self-hosted
2+
3+
on:
4+
workflow_dispatch:
5+
workflow_call:
6+
pull_request:
7+
types: [ assigned ]
8+
9+
jobs:
10+
require-approval:
11+
runs-on: ubuntu-24.04
12+
environment:
13+
name: ${{ github.event_name == 'pull_request' && 'pr-approval' || 'auto' }}
14+
steps:
15+
- run: echo "PR approved"
16+
build-devices:
17+
name: Build Devices
18+
needs: require-approval
19+
strategy:
20+
fail-fast: false
21+
matrix:
22+
include:
23+
- device: RK3326
24+
- device: RK3399
25+
- device: RK3566
26+
- device: RK3588
27+
- device: S922X
28+
- device: H700
29+
- device: SDM845
30+
- device: SM8250
31+
- device: SM8550
32+
- device: SM8650
33+
uses: ./.github/workflows/build-self-hosted-device.yml
34+
secrets: inherit
35+
with:
36+
DEVICE: ${{ matrix.device }}

0 commit comments

Comments
 (0)