LocalSetup

Differences between revisions 7 and 12 (spanning 5 versions)
Revision 7 as of 2019-07-25 12:57:10
Size: 3959
Editor: racb
Comment: Update britney-indexes to fetch-indexes. Untested, but the old URL 404s, so this must be better
Revision 12 as of 2023-08-11 15:29:52
Size: 4007
Editor: tsimonq2
Comment: yakkety is ancient
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
git clone https://git.launchpad.net/~ubuntu-release/+git/britney2-ubuntu britney2-ubuntu git clone https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu britney2-ubuntu
git clone https://git.launchpad.net/bileto
Line 12: Line 13:
wget http://people.canonical.com/~pitti/scripts/britney-indexes
Line 15: Line 15:
 The [[https://git.launchpad.net/bileto/tree/britney/fetch-indexes|fetch-indexes]] script downloads the source and binary package indexes to `data/<series>` and `data/<series>-proposed`.  The [[https://git.launchpad.net/bileto/tree/britney/fetch-indexes|fetch-indexes]] script inside the bileto repository downloads the source and binary package indexes to `data/<series>` and `data/<series>-proposed`.
Line 17: Line 17:
 * The default [[https://git.launchpad.net/~ubuntu-release/+git/britney2-ubuntu/tree/britney.conf|./britney.conf]] contains the production values for the architecture list, autopkgtest AMQP server (but without the actual password) and swift. For a purely local run you need to install the `rabbitmq-server` package, either locally or into a container, and adjust `ADT_AMQP` accordingly; use `amqp://localhost` or `amqp://10.0.3.XXX` respectively (this will use the default `guest` user of RabbitMQ).  * The default [[https://git.launchpad.net/~ubuntu-release/+git/britney2-ubuntu/tree/britney.conf|./britney.conf]] contains the production values for the architecture list, autopkgtest AMQP server (but without the actual password) and swift. For a purely local run you need to install the `rabbitmq-server` package, either locally or into a container, and adjust `ADT_AMQP` accordingly; use `amqp://guest:guest@localhost` or `amqp://guest:guest@10.0.3.XXX` respectively (this will use the default `guest` user of RabbitMQ).
Line 24: Line 24:
    amqp-declare-queue -u amqp://<server IP> -d -q debci-yakkety-$arch     amqp-declare-queue -u amqp://<server IP> -d -q debci-mantic-$arch
Line 33: Line 33:
./britney-indexes yakkety ../bileto/britney/fetch-indexes mantic
Line 39: Line 39:
./britney.py -c britney.conf --series=yakkety -v ./britney.py -c britney.conf --series=mantic -v
Line 42: Line 42:
 You will then have the `excuses.*` and some other files in `output/yakkety/`.  You will then have the `excuses.*` and some other files in `output/mantic/`.
Line 44: Line 44:
 * The list of issued test requests can be found in `data/yakkety-proposed/autopkgtest/pending.txt`. If you declared AMQP queues above, you can also read/flush them, e. g.  * The list of issued test requests can be found in `data/mantic-proposed/autopkgtest/pending.txt`. If you declared AMQP queues above, you can also read/flush them, e. g.
Line 47: Line 47:
while amqp-get -u amqp://<server IPP> -q debci-yakkety-armhf; do echo; done while amqp-get -u amqp://<server IPP> -q debci-mantic-armhf; do echo; done

This page describes how to set up proposed-migration on a clean system.

Installability checks and autopkgtests

In the simplest case you just want to reproduce the "first stage" of britney2-ubuntu, which checks that -proposed packages were built on all expected architectures, are installable by themselves, issue autopkgtests, collect their test results, and produce a production-like excuses.html and excuses.yaml.

  • Check out the code:
    git clone https://git.launchpad.net/~ubuntu-release/britney/+git/britney2-ubuntu britney2-ubuntu
    git clone https://git.launchpad.net/bileto
    cd britney2-ubuntu

    The fetch-indexes script inside the bileto repository downloads the source and binary package indexes to data/<series> and data/<series>-proposed.

  • The default ./britney.conf contains the production values for the architecture list, autopkgtest AMQP server (but without the actual password) and swift. For a purely local run you need to install the rabbitmq-server package, either locally or into a container, and adjust ADT_AMQP accordingly; use amqp://guest:guest@localhost or amqp://guest:guest@10.0.3.XXX respectively (this will use the default guest user of RabbitMQ).

  • If you care about inspecting the issued autopkgtest requests in the AMQP queues, you need to declare them for a particular Ubuntu series:
    sudo apt install -y amqp-tools
    for arch in i386 amd64 armhf ppc64el; do
        amqp-declare-queue -u amqp://<server IP> -d -q debci-mantic-$arch
    done
    You can skip this step, then the test requests will simply go into the void.
  • Download archive indexes for the desired Ubuntu series:
    ../bileto/britney/fetch-indexes mantic
  • Run britney for the same series:
    ./britney.py -c britney.conf --series=mantic -v

    You will then have the excuses.* and some other files in output/mantic/.

  • The list of issued test requests can be found in data/mantic-proposed/autopkgtest/pending.txt. If you declared AMQP queues above, you can also read/flush them, e. g.

    while amqp-get -u amqp://<server IPP> -q debci-mantic-armhf; do echo; done

Installability checks and autopkgtests against a PPA

This works similarly to the above, except that the PPA is now playing the role of series-proposed. Download and use the britney-indexes-ppa scripts instead and run it with the PPA's archive URL:

wget http://people.canonical.com/~pitti/scripts/britney-indexes-ppa
./britney-indexes-ppa vivid http://ppa.launchpad.net/ci-train-ppa-service/stable-phone-overlay/ubuntu
./britney.py -c britney.conf --series=vivid -v

If you have a PPA which only builds packages for i386 and amd64, you need to run britney's build/installability checks against this reduced list:

./britney-indexes-ppa xenial http://ppa.launchpad.net/pitti/systemd/ubuntu/
./britney.py -c britney.conf --series=xenial -v --architectures='i386 amd64'

Full Ubuntu production setup

The full Ubuntu production setup is done by britney1-ubuntu. This creates the archive index lists, per-series configuration files, calls the first and second stages of britney2-ubuntu, and issues the actual copying of packages from -proposed to -release. It assumes having a local mirror and a helper script promote-to-release which does the actual copying.

TODO: Fully document and/or provide charm for this.

ProposedMigration/LocalSetup (last edited 2023-08-11 15:29:52 by tsimonq2)