canonical / canonical/starflow
Create a workflow for testing dev environments
- Dominant language
- Python
- Stars
- 3
- Forks
- 8
- Avg merge
- 2h 36m
- Merged PRs (30d)
- 11
Description
## Overview
Our development environment should be tested across a variety of distros and architectures.
## Rationale
Project maintainers rarely set up pristine development environments, so we rarely experience what it's like for new contributors to follow our [getting started guides](https://github.com/canonical/snapcraft/blob/main/CONTRIBUTING.md#set-up-for-development).
## Specification
* Create a `test-dev-environment.yaml` workflow that runs:
```bash
make setup
make lint
make format
make test
make docs
```
* Run the workflow in clean LXD environments.
* Note that a github runner isn't a good environment, since it has tons of pre-installed software.
* By default, the workflow should run 6 tests with the matrix:
* distros
* Ubuntu 22.04
* Ubuntu 24.04
* Debian Trixie
* architectures:
* amd64
* arm64
* The distros and architectures should be configurable inputs, similar to other workflows ([example](https://github.com/canonical/starflow/blob/b447744488c725ad99f00498b85ddec3edce2f4a/.github/workflows/test-python.yaml#L4))
* Create a `self-test-dev-environment.yaml` workflow that clones starbase and runs the `test-dev-environment.yaml` workflow
* Use this workflow in starbase (https://github.com/canonical/starbase/issues/438)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing existing workflows and the linked starflow example for configurable workflow inputs. Create test-dev-environment.yaml to run make setup, lint, format, test, and docs across the six distro and architecture combinations in clean LXD environments, then add self-test-dev-environment.yaml to clone starbase and invoke it. Done means the matrix runs successfully and the workflow is usable by starbase.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, python, yaml
- Domain
- build-system, ci-cd, devops
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100