No description
Find a file
2025-10-09 14:57:52 +01:00
.github/workflows ci: remove charm library check from CI 2025-10-09 14:57:52 +01:00
charm chore: fix linting error 2025-10-09 14:57:03 +01:00
cmd chore: fix linting error 2025-10-09 14:57:03 +01:00
internal refactor: adopt a cleaner go package structure 2025-10-09 14:52:39 +01:00
tests test: add spread tests for ubuntu-release go project 2025-10-08 16:10:57 +01:00
.gitignore fix(charm): fix go build for charm 2025-10-09 14:52:40 +01:00
charmcraft.yaml fix(charm): fix go build for charm 2025-10-09 14:52:40 +01:00
go.mod refactor: adopt a cleaner go package structure 2025-10-09 14:52:39 +01:00
go.sum refactor: adopt a cleaner go package structure 2025-10-09 14:52:39 +01:00
LICENSE Initialize ubuntu-release Go utility 2025-08-21 12:25:53 +02:00
README.md refactor: adopt a cleaner go package structure 2025-10-09 14:52:39 +01:00
spread.yaml refactor: adopt a cleaner go package structure 2025-10-09 14:52:39 +01:00

Ubuntu Release

This repo hosts the tooling used to generate Ubuntu images hosted on the not yet existing https://images.ubuntu.com.

DISCLAIMER: this is very early work, as we're trying to move away from a very manual process and setup on https://cdimage.ubuntu.com. This repo is still very much the future, and not everything is clearly defined yet. If you want to submit feature requests, please make sure you already understand Ubuntu's release mechanisms, and have a strong use-case in mind to show that it needs to be taken into account early.

ubuntu-release go binary

ubuntu-release is a Go utility to facilitate the Ubuntu Release activities.

Quick start local run

To start the local Temporal server:

 temporal server start-dev

To start the Temporal worker:

 go run cmd/ubuntu-release-worker

To start the HelloUbuntu Temporal workflow:

 go run cmd/ubuntu-release hello

Running Tests

The ubuntu-release project has both unit and integration tests. To run them:

# Unit tests
 go test ./...

# List integration tests
 spread -list ubuntu-release

# Run an integration test
 spread -v lxd:ubuntu-24.04:tests/hello

Charm Test & Release

Charm code can be found in charm.

Charm tests

The charm has unit, functional and integration tests. To run them, follow these steps:

# Unit tests
 make -C charm unit

# List spread tests (for functional and integration tests)
 charmcraft test --list charm/
lxd:ubuntu-24.04:charm/tests/spread/functional/temporal
lxd:ubuntu-24.04:charm/tests/spread/functional/worker
lxd:ubuntu-24.04:charm/tests/spread/integration/deploy-charm:juju_3_6
lxd:ubuntu-24.04:charm/tests/spread/integration/ingress:juju_3_6

# Run a particular functional test
 charmcraft test lxd:ubuntu-24.04:charm/tests/spread/functional/temporal

# Run a particular integration test
 charmcraft test lxd:ubuntu-24.04:charm/tests/spread/integration/ingress:juju_3_6

Generating the charmhub token for the CI

charmcraft login \
  --export=secrets.auth \
  --charm=ubuntu-release-worker \
  --permission=package-manage \
  --permission=package-view \
  --ttl=$((3600*24*365))
cat secrets.auth | wl-copy
shred -u secrets.auth

Go to https://github.com/ubuntu/ubuntu-release/settings/secrets/actions and update the CHARMHUB_TOKEN secret.