Skip to content

Commit 564ea2d

Browse files
committed
ci: retire the CircleCI job, GitHub Actions already supersedes it
emulator-build-test duplicated the integration job in .github/workflows, and did the same work worse in three ways: * it cloned firmware `master` unconditionally, so any branch carrying a newer test harness ran against older firmware and failed for reasons the PR did not cause. That is why it has been red since build #673 while GitHub Actions stayed green on the same commits. * it set no timeouts, so a hung test produced no output until CircleCI killed the job at ten minutes -- reported as a timeout rather than a failing test, and discarding every result after the hang. * it also ran the firmware's C++ firmware-unit suite, which covers firmware code that no change in this repo can affect, and which the firmware repo already runs in its own CI. The integration job builds from current firmware and bounds every step with timeout-minutes, so a hang fails fast and names the test. master has no required status checks, so removing the context does not block any pull request. Also corrects the ci.yml header, which still described pulling a published DockerHub image -- the job stopped doing that when it started building from firmware.
1 parent 598097e commit 564ea2d

2 files changed

Lines changed: 23 additions & 73 deletions

File tree

.circleci/config.yml

Lines changed: 0 additions & 71 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,34 @@
11
# KeepKey python-keepkey CI
22
#
3-
# Pulls the published emulator image (kktech/kkemu) from DockerHub
4-
# and runs the full python integration test suite against it.
3+
# BUILDS an emulator from current firmware and runs the full python
4+
# integration suite against it. It does not pull a published image: a
5+
# published image ages out of step with the tests, and a suite that gates on
6+
# requires_firmware() then SKIPS instead of failing, so the run stays green
7+
# while covering nothing.
58
#
69
# Stage 1: GATE (seconds)
710
# └─ lint basic Python syntax check
811
#
912
# Stage 2: TEST (gated by Stage 1)
1013
# └─ integration full pytest suite against emulator
14+
#
15+
# This is the ONLY CI for this repo. A CircleCI job (emulator-build-test) used
16+
# to run alongside it and was retired -- see .circleci/config.yml in history.
17+
# It is not worth restoring:
18+
#
19+
# * It cloned firmware `master` unconditionally, so a branch carrying a newer
20+
# test harness was always run against older firmware. Tests written for
21+
# unreleased firmware then hang or fail for a reason the PR did not cause.
22+
# * It set no timeouts. When a test hung, the job produced no output until
23+
# CircleCI killed it, reporting a timeout rather than a failing test and
24+
# discarding every result after the hang.
25+
# * It also ran the firmware's C++ `firmware-unit` suite. That covers firmware
26+
# code, which no change in THIS repo can affect, and the firmware repo
27+
# already runs it in its own CI.
28+
#
29+
# The integration job below fixes the first two directly: it builds from current
30+
# firmware, and every step is bounded by timeout-minutes so a hang fails fast
31+
# and points at the test that hung.
1132

1233
name: CI
1334

0 commit comments

Comments
 (0)