canonical / canonical/testflinger
feat: add retry option and count to github action
- 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
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