canonical / canonical/starflow

Create a workflow for testing dev environments

Open
#85 2 comments 0 reactions 0 assignees View on GitHub
Status: Triaged Type: Enhancement
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.