Skip to content

Commit 6feddd1

Browse files
authored
Merge pull request #321 from lightninglabs/self-hosted-runners
ci: bake custom ARC runner image and migrate CI off depot
2 parents 608a97e + 916987f commit 6feddd1

2 files changed

Lines changed: 21 additions & 22 deletions

File tree

.github/workflows/main.yml

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
########################
3737
commit-message:
3838
name: Commit Message
39-
runs-on: depot-ubuntu-24.04
39+
runs-on: [self-hosted]
4040
steps:
4141
- name: Git checkout
4242
uses: actions/checkout@v5
@@ -67,7 +67,7 @@ jobs:
6767
########################
6868
static-checks:
6969
name: Static Checks
70-
runs-on: depot-ubuntu-24.04
70+
runs-on: [self-hosted]
7171
steps:
7272
- name: Git checkout
7373
uses: actions/checkout@v5
@@ -137,16 +137,13 @@ jobs:
137137
########################
138138
lint:
139139
name: Lint code
140-
runs-on: depot-ubuntu-24.04-8
140+
runs-on: [self-hosted]
141141
steps:
142142
- name: git checkout
143143
uses: actions/checkout@v5
144144
with:
145145
fetch-depth: 0
146146

147-
- name: Clean up runner space
148-
uses: ./.github/actions/cleanup-space
149-
150147
- name: setup go ${{ env.GO_VERSION }}
151148
uses: ./.github/actions/setup-go
152149
with:
@@ -162,7 +159,7 @@ jobs:
162159
########################
163160
cross-compile:
164161
name: Cross compilation
165-
runs-on: depot-ubuntu-24.04-4
162+
runs-on: [self-hosted]
166163
strategy:
167164
fail-fast: true
168165
matrix:
@@ -183,9 +180,6 @@ jobs:
183180
- name: Git checkout
184181
uses: actions/checkout@v5
185182

186-
- name: Clean up runner space
187-
uses: ./.github/actions/cleanup-space
188-
189183
- name: Setup go ${{ env.GO_VERSION }}
190184
uses: ./.github/actions/setup-go
191185
with:
@@ -201,7 +195,7 @@ jobs:
201195
########################
202196
unit-test:
203197
name: Run unit tests
204-
runs-on: depot-ubuntu-24.04-4
198+
runs-on: [self-hosted]
205199
strategy:
206200
# Allow other tests in the matrix to continue if one fails.
207201
fail-fast: false
@@ -218,9 +212,6 @@ jobs:
218212
with:
219213
fetch-depth: 0
220214

221-
- name: Clean up runner space
222-
uses: ./.github/actions/cleanup-space
223-
224215
- name: Fetch and rebase on ${{ github.base_ref }}
225216
if: github.event_name == 'pull_request'
226217
uses: ./.github/actions/rebase
@@ -234,7 +225,10 @@ jobs:
234225
- name: Run ${{ matrix.unit_type }}
235226
# Run with sudo as harness uses user 0:0 which needs extra permissions
236227
# on the github runner in order for docker mounts to work correctly.
237-
run: sudo env "PATH=$PATH" "GOPATH=$GOPATH" make ${{ matrix.unit_type }}
228+
# Bump the per-package test timeout from Go's 10m default because the
229+
# ARC runners boot the test harness slower than Depot/local; 30m is
230+
# generous headroom while still failing on a real hang.
231+
run: sudo env "PATH=$PATH" "GOPATH=$GOPATH" make ${{ matrix.unit_type }} timeout=30m
238232

239233
- name: Clean coverage
240234
run: grep -Ev '(\.pb\.go|\.pb\.json\.go|\.pb\.gw\.go|db/sqlc/)' coverage.txt > coverage-norpc.txt
@@ -280,7 +274,7 @@ jobs:
280274
########################
281275
systest:
282276
name: Run system tests
283-
runs-on: depot-ubuntu-24.04-8
277+
runs-on: [self-hosted]
284278
strategy:
285279
# Allow other tests in the matrix to continue if one fails.
286280
fail-fast: false
@@ -295,9 +289,6 @@ jobs:
295289
with:
296290
fetch-depth: 0
297291

298-
- name: Clean up runner space
299-
uses: ./.github/actions/cleanup-space
300-
301292
- name: Fetch and rebase on ${{ github.base_ref }}
302293
if: github.event_name == 'pull_request'
303294
uses: ./.github/actions/rebase
@@ -311,7 +302,10 @@ jobs:
311302
- name: Run systest with ${{ matrix.db_backend }}
312303
# Run with sudo as harness uses user 0:0 which needs extra permissions
313304
# on the github runner in order for docker mounts to work correctly.
314-
run: sudo env "PATH=$PATH" "GOPATH=$GOPATH" make systest-verbose db=${{ matrix.db_backend }}
305+
# Bump per-package test timeout above the Makefile default for the
306+
# same ARC-vs-Depot harness-boot speed reasons documented in the unit
307+
# test job above.
308+
run: sudo env "PATH=$PATH" "GOPATH=$GOPATH" make systest-verbose db=${{ matrix.db_backend }} SYSTEST_TIMEOUT=30m
315309

316310
- name: Fix artifact permissions
317311
if: always()

Makefile

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -395,13 +395,18 @@ unit-swapruntime: #? Run unit tests with the optional wallet runtime enabled
395395
SYSTEST_DB_TAG := $(if $(filter postgres,$(db)),test_postgres)
396396
SYSTEST_TAGS := systest $(SYSTEST_DB_TAG)
397397

398+
# Per-package test timeout for systest. CI overrides this on ARC runners
399+
# where the test harness boots slower than on local dev; locally 10m is
400+
# typically plenty.
401+
SYSTEST_TIMEOUT ?= 10m
402+
398403
systest: #? Run system integration tests. Use db=postgres for PostgreSQL.
399404
@$(call print, "Running system integration tests (db=$(or $(db),sqlite)).")
400-
$(GOTEST) -tags "$(SYSTEST_TAGS)" -v ./systest/... -timeout 10m
405+
$(GOTEST) -tags "$(SYSTEST_TAGS)" -v ./systest/... -timeout $(SYSTEST_TIMEOUT)
401406

402407
systest-verbose: #? Run system integration tests with verbose logging. Use db=postgres for PostgreSQL.
403408
@$(call print, "Running system integration tests with verbose logging (db=$(or $(db),sqlite)).")
404-
$(GOTEST) -tags "$(SYSTEST_TAGS)" -v ./systest/... -timeout 10m -harness.logstdout
409+
$(GOTEST) -tags "$(SYSTEST_TAGS)" -v ./systest/... -timeout $(SYSTEST_TIMEOUT) -harness.logstdout
405410

406411
# ============
407412
# RPC GENERATION

0 commit comments

Comments
 (0)