Skip to content

Commit

Permalink
fixup! Add RELEASE.md integration and release testing doc
Browse files Browse the repository at this point in the history
  • Loading branch information
silkeh authored Feb 29, 2024
1 parent 0cf3d4f commit 3d764af
Showing 1 changed file with 132 additions and 23 deletions.
155 changes: 132 additions & 23 deletions RELEASE.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,142 @@
# Cutting a Release
Perform the following steps after tagging the Solbuild release in order to verify that it introduces no major regressions:

To ensure that we have a uniform release process, the current recommendation is to tag the release, then do the following integration tests below.
- Build and install a local update of the solbuild package:
```
gotosoluspkgs
gotopkg solbuild
yupdate X.Y.Z https://github.com/getsolus/solbuild/archive/refs/tags/vX.Y.Z.tar.gz
go-task
sudo eopkg it *.eopkg
```

The idea is to thoroughly exercise commands, flags and known pain points re. package fetching before builds.
- Ensure the version number is correct:
```
solbuild version
```
Verify that this shows the correct version number.

## Integration tests
- Delete cache and existing solbuild images:
```
sudo solbuild dc -dai
```

- `git switch master && git pull && git switch the-the-new-tag && go build` (does the new release build from its tag commit?)
- `alias soltest="sudo $PWD/solbuild" && command -v soltest` (ensure we have a convenient full path to the item under test)
- `soltest dc -d -i` (delete cache and existing solbuild images on the default unstable profile)
- `soltest init -d -u -p unstable-x86_64` (initialise Unstable profile)
- `soltest dc -n -i -p main-x86_64` (delete cache and existing solbuild images on the stable Shannon profile)
- `soltest init -n -u -p main-x86_64` (initialise Shannon profile)
- `sudo rm -rvf /var/lib/solbuild/local/*` (delete local repo packages)
- `gotosoluspkgs && gotopkg zlib && soltest build -n -p main-x86_64 > zlib-stable.log` (build zlib using the stable profile w/no color output)
- `soltest -d -n chroot -p main-x86_64` (chroot into the stable build built above)
- `soltest build -d && sudo cp zlib*eopkg /var/lib/solbuild/local/ && soltest index /var/lib/solbuild/local` (buuild unstable zlib w/debug option and copy to build to local repo)
- `soltest index -d -n /var/lib/solbuild/local/` (create an eopkg index in the local profile dir)
- Initialise unstable profile:
```
sudo solbuild init -du
```
Verify that this uses the unstable profile.

## Packaging tests
- Initialise Shannon profile:
```
sudo solbuild init -nup main-x86_64
```
Verify that this shows non-colored output.

After the above integration testing has been completed, build the following packages with the `soltest` alias defined above:
- Delete local repo:
```
sudo rm -rvf /var/lib/solbuild/local/*
```
- Build `zlib` against stable without colored output:
```
gotosoluspkgs
gotopkg zlib
sudo solbuild build -n -p main-x86_64 > zlib-stable.log
```
Verify that this shows non-colored output.

- zsh, giflib and glew (they all use SourceForge mirrors, which can be a bit ... "particular")
- android-tools (exercises git-submodule functionality)
- Chroot into the build environment:
```
sudo solbuild -d -n chroot -p main-x86_64
```
- Build zlib against unstable and copy to local repo:
```
sudo solbuild build -d
sudo cp zlib*.eopkg /var/lib/solbuild/local/
```

## Land the newly cut and tagged solbuild release in -unstable
- Index the local repo:
```
sudo solbuild index -d /var/lib/solbuild/local/
```

Assuming all of the above packages build successfully, proceed to bump and update the solbuild package.yml on -unstable.
- Build the test set of packages:
```
for p in android-tools giflib glew zsh
do
sudo solbuild build >> /tmp/builds.log
done
```

The release manager should then use the repository version to do a quick smoketest for zlib on both main-x86_64 profile and default profile,
using the `go-task` aliases.
If all of the above completes successfully, proceed to `go-task publish` the Solbuild update.
```
Rendered version:
---
Perform the following steps after tagging the Solbuild release in order to verify that it introduces no major regressions:
- Build and install a local update of the solbuild package:
```
gotosoluspkgs
gotopkg solbuild
yupdate X.Y.Z https://github.com/getsolus/solbuild/archive/refs/tags/vX.Y.Z.tar.gz
sudo eopkg it *.eopkg
```
- Ensure the version number is correct:
```
solbuild version
```
Verify that this shows the correct version number.
- Delete cache and existing solbuild images:
```
sudo solbuild dc -dai
```
- Initialise unstable profile:
```
sudo solbuild init -du
```
Verify that this uses the unstable profile.
- Initialise Shannon profile:
```
sudo solbuild init -nup main-x86_64
```
Verify that this shows non-colored output.
- Delete local repo:
```
sudo rm -rvf /var/lib/solbuild/local/*
```
- Build `zlib` against stable without colored output:
```
gotosoluspkgs
gotopkg zlib
sudo solbuild build -n -p main-x86_64 > zlib-stable.log
```
Verify that this shows non-colored output.
- Chroot into the build environment:
```
sudo solbuild chroot -dnp main-x86_64
```
- Build zlib against unstable and copy to local repo:
```
sudo solbuild build
sudo cp zlib*.eopkg /var/lib/solbuild/local/
```
- Index the local repo:
```
sudo solbuild index -d /var/lib/solbuild/local/
```
- Build the test set of packages:
```bash
for p in android-tools giflib glew zsh
do
gotopkg $p
sudo solbuild build >> /tmp/builds.log
done

0 comments on commit 3d764af

Please sign in to comment.