Skip to content

Commit 6a97e6b

Browse files
committed
ci: narrow tardigrade workflow into mainline canary
1 parent 0c5f179 commit 6a97e6b

1 file changed

Lines changed: 39 additions & 14 deletions

File tree

.github/workflows/tardigrade.yaml

Lines changed: 39 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,36 @@
1-
name: tardigrade
1+
name: OTA resilience canary
22

33
on:
4-
pull_request:
54
push:
6-
branches: [main]
5+
branches:
6+
- main
7+
paths:
8+
- .github/workflows/tardigrade.yaml
9+
- boot/**
10+
- scripts/**
11+
- zephyr/**
12+
- root-rsa-2048.pem
13+
schedule:
14+
- cron: '0 8 * * 1'
715
workflow_dispatch:
16+
inputs:
17+
zephyr_ref:
18+
description: 'Which Zephyr ref should be used?'
19+
required: true
20+
default: 'main'
21+
22+
permissions:
23+
contents: read
824

925
concurrency:
1026
group: ${{ github.workflow }}-${{ github.ref }}
1127
cancel-in-progress: true
1228

29+
env:
30+
ZEPHYR_VERSION: main
31+
1332
jobs:
14-
swap-move:
33+
swap-move-canary:
1534
runs-on: ubuntu-24.04
1635
container:
1736
image: zephyrprojectrtos/ci-base:v0.28.4
@@ -22,11 +41,16 @@ jobs:
2241
shell: bash
2342

2443
steps:
44+
- name: Set Zephyr version for manual runs
45+
if: github.event_name == 'workflow_dispatch'
46+
run: |
47+
echo "ZEPHYR_VERSION=${{ github.event.inputs.zephyr_ref }}" >> $GITHUB_ENV
48+
2549
- name: Checkout Zephyr
2650
uses: actions/checkout@v4
2751
with:
2852
repository: zephyrproject-rtos/zephyr
29-
ref: main
53+
ref: ${{ env.ZEPHYR_VERSION }}
3054
path: repos/zephyr
3155

3256
- name: Install Zephyr Python requirements
@@ -42,7 +66,7 @@ jobs:
4266
west-project-filter: -.*,+cmsis,+cmsis_6,+hal_nordic,+mbedtls,+mcuboot,+tinycrypt,+zcbor
4367
ccache-max-size: 256MB
4468

45-
- name: Checkout MCUboot (PR HEAD)
69+
- name: Checkout MCUboot
4670
uses: actions/checkout@v4
4771
with:
4872
fetch-depth: 0
@@ -91,7 +115,7 @@ jobs:
91115
92116
ls -la slot0.bin slot1.bin
93117
94-
- name: Write tardigrade profile
118+
- name: Write canary profile
95119
working-directory: repos
96120
run: |
97121
BOOT_ELF="$(realpath build_boot/zephyr/zephyr.elf)"
@@ -100,11 +124,11 @@ jobs:
100124
101125
cat > tardigrade_profile.yaml << YAML
102126
schema_version: 1
103-
name: mcuboot_swap_move_ci
127+
name: mcuboot_swap_move_canary
104128
description: >
105-
MCUboot swap-using-move on nrf52840dk, built from PR HEAD.
106-
Upgrade scenario: slot0 has confirmed v1, slot1 has pending v2.
107-
After swap, exec slot should contain the v2 image.
129+
Post-merge OTA resilience canary for MCUboot swap-using-move on
130+
nrf52840dk. Upgrade scenario: slot0 has confirmed v1, slot1 has
131+
pending v2. After swap, exec slot should contain the v2 image.
108132
109133
platform: platforms/cortex_m4_flash_fast.repl
110134
bootloader:
@@ -139,9 +163,9 @@ jobs:
139163
sed -i 's/^ //' tardigrade_profile.yaml
140164
cat tardigrade_profile.yaml
141165
142-
- name: Run tardigrade fault injection
166+
- name: Run OTA resilience sweep
143167
id: tardigrade
144-
uses: neilberkman/tardigrade@v1
168+
uses: neilberkman/tardigrade@052e70add7c987f667cf4de9ea22e54d7ac7bddf
145169
with:
146170
profile: repos/tardigrade_profile.yaml
147171
quick: "false"
@@ -151,7 +175,8 @@ jobs:
151175
if: always()
152176
uses: actions/upload-artifact@v4
153177
with:
154-
name: tardigrade-swap-move
178+
name: ota-resilience-swap-move
179+
if-no-files-found: ignore
155180
path: |
156181
repos/tardigrade_profile.yaml
157182
${{ steps.tardigrade.outputs.report-path }}

0 commit comments

Comments
 (0)