canonical / canonical/testflinger

feat: add retry option and count to github action

Open
#953 5 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
26
Forks
49
Avg merge
4d 8h
Merged PRs (30d)
16

Description

Our CI relies on the `submit` github action. It is currently quite flakey, with the majority of fails due to the following sort of error where MAAS fails to deploy a machine:

```
This job is waiting on a node to become available.
**********************************************
* Starting testflinger setup phase on *
**********************************************
Cleaning up container if it exists...
**************************************************
* Starting testflinger provision phase on *
**************************************************
2026-03-01 00:32:16,961 INFO: DEVICE CONNECTOR: Running pre-provision hook
2026-03-01 00:32:16,962 INFO: DEVICE CONNECTOR: MAAS: Reading node's block device information
2026-03-01 00:32:19,157 INFO: DEVICE CONNECTOR: BEGIN provision
2026-03-01 00:32:19,157 INFO: DEVICE CONNECTOR: Provisioning device
2026-03-01 00:32:19,157 INFO: DEVICE CONNECTOR: MAAS: Fixing EFI boot order before provisioning
2026-03-01 00:33:07,545 INFO: DEVICE CONNECTOR: MAAS: Fixing EFI boot order before provisioning
2026-03-01 00:33:55,931 INFO: DEVICE CONNECTOR: MAAS: Releasing node
2026-03-01 00:34:11,260 INFO: DEVICE CONNECTOR: MAAS: Successfully released node
2026-03-01 00:34:13,891 WARNING: DEVICE CONNECTOR: MAAS: 'default_disks' and/or 'disks' unspecified; setting default storage layout to flat
2026-03-01 00:34:16,445 INFO: DEVICE CONNECTOR: MAAS: Acquiring node
2026-03-01 00:34:19,817 INFO: DEVICE CONNECTOR: MAAS: Starting node with distro noble
2026-03-01 00:34:39,785 INFO: DEVICE CONNECTOR: MAAS: Timeout value: 60 minutes.
2026-03-01 00:35:39,846 INFO: DEVICE CONNECTOR: MAAS: 1 minutes passed since deployment.
2026-03-01 00:36:42,533 INFO: DEVICE CONNECTOR: MAAS: 2 minutes passed since deployment.
2026-03-01 00:37:45,244 INFO: DEVICE CONNECTOR: MAAS: 3 minutes passed since deployment.
2026-03-01 00:38:47,763 INFO: DEVICE CONNECTOR: MAAS: 4 minutes passed since deployment.
2026-03-01 00:38:50,301 ERROR: DEVICE CONNECTOR: MAAS: MAAS reports Failed Deployment
2026-03-01 00:38:50,301 ERROR: DEVICE CONNECTOR: Provisioning failed: Provisioning failed because MAAS got unexpected or deployment failure status signal.
2026-03-01 00:38:50,301 INFO: DEVICE CONNECTOR: END provision
2026-03-01 00:38:50,301 ERROR: DEVICE CONNECTOR: Provisioning failed because MAAS got unexpected or deployment failure status signal.
```

To reduce flakiness, perhaps a retry option could be useful for this action, perhaps allowing a user to specify number of retries too.

Action version used:
`canonical/testflinger/.github/actions/submit@987fd7ab1467065217a9c6496eb2c3d85a250509`

Contributor guide

Open the contributing guide

Research direction

Start with the submit action at .github/actions/submit@987fd7ab1467065217a9c6496eb2c3d85a250509, which is the version named in the issue. Trace how the action invokes the submission and handles provisioning failures, then define completion as supporting an optional retry setting and a user-specified retry count for failures like the MAAS deployment error shown.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions
Domain
ci-cd
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.