/tux3-buildbot

buildbot config for tux3

Primary LanguagePython

Buildbot setup
==============

Required packages
-----------------

On master machine

    buildbot

    [For now (2019/08/22), debian testing doesn't have buildbot-www package,
     so to install buildbot from PyPI

         $ python3 -mvenv buildbot
	 $ cd buildbot
	 $ . bin/active
	 $ pip install --upgrade pip
	 $ pip install 'buildbot[bundle]'
     ]

On worker machine

    buildbot-worker

    gcc
    cpp
    binutils
    bison
    flex
    make
    bc
    dc
    libc6-dev
    libfuse-dev
    libaio-dev
    libacl1-dev
    libattr1-dev
    libssl-dev
    pkg-config
    sparse
    valgrind
    lcov
    fuse
    git
    time
    gnuplot

    task-ssh-server
    gawk
    python
    perl
    gdb
    w3m-img
    lftp
    acl
    attr
    hdparm
    sdparm

KVM guest setup
---------------
See <https://github.com/OGAWAHirofumi/linux-tux3/wiki/KVM-setup> for KVM
setup itself.

1. Install debian testing

2. Install required packages

    Required packages are same with "Worker machine" except buildbot-worker.

3. Make ssh key to login as "root" without password

    Login as root to guest, and make key for ssh

        $ ssh-keygen
        [press entry for all questions]
        $ cp .ssh/id_rsa.pub .ssh/authorized_keys

    Send .ssh/id_rsa by e.g. ftp to host machine

4. For fast boot, set grub timeout to 0

    In the guest,

        $ sed -ie 's/\(GRUB_TIMEOUT\)=.*/\1=0/' /etc/default/grub
        $ update-grub

5. Make tarball of guest image

        $ tar cJf kvm-<arch>.tar.xz kvm-<arch>.qcow2 id_rsa-<arch>

6. Deploy for buildbot-worker

    Buildbot-worker download guest image from <master-dir>/guest-images/

        $ mv kvm-<arch>.tar.xz to <master-dir>/guest-images/

Test setup
----------
tux3 test tools are in follwing repository

<git://github.com/OGAWAHirofumi/tux3-tests.git>

See README in the repository.

Run buildbot master
-------------------

    $ buildbot create-master -r <master-dir>
    $ cd <master-dir>
    $ mv master.cfg.sample master.cfg
    $ edit master.cfg
    $ buildbot start

Run buildbot worker
------------------

    $ buildbot-worker create-worker -r <worker-dir> localhost:9989 <worker-name> <worker-pass>
    $ cd <worker-dir>
    $ buildbot-worker start

TODO
----
- Add performance test for kernel
- When test was fail with coredump, we would want to save coredump and binary