Home - Waterfall Grid T-Grid Console Builders Recent Builds Buildslaves Changesources - JSON API - About

Console View


Tags: all-branches master
Legend:   Passed Failed Warnings Failed Again Running Exception Offline No data

all-branches master
James O'Gorman
Order build tasks

Place the builds in alphabetic order of OS name
Chris Wilson
Fix KillServer on Windows

Don't hold the PID file open when trying to delete it, as this prevents
us from deleting it on Windows. If we still can't delete it, then
another process (a zombie server) must have it open.
  • CentOS 6 amd64 all-branches: compile client failed -  stdiowarnings (2)
  • SmartOS all-branches: cleanup _test failed -  stdio
James O'Gorman
Cirrus: Use GCE for both Debian and FreeBSD

Use my GCE account for both Debian and FreeBSD as the Cirrus shared
FreeBSD instance is pretty slow. The FreeBSD image has a disk size of
29GB so we need to specify something bigger than that in the instance,
so we use 30GB.

Try the g1-small instance as n1-standard-2 is way too big.
James O'Gorman
Add build user

The build is running things as root! There doesn't seem to be a way to change the default user.

This adds a build user and some debug lines in the pre_script to show the current user (before switching). Each task has to be run under su. This can be fixed later by using a wrapper script.
James O'Gorman
Cirrus: Order build tasks

Place the builds in alphabetic order of OS name.
James O'Gorman
Cirrus: Run debug and release tests

Only the debug tests were being run. This adds the release tests too.
James O'Gorman
Remove jessie, increase resources

Jessie build doesn't work currently - need to split this out because of packages.

The Stretch debug tests take too long and some things time out, so try increasing resources.
James O'Gorman
Cirrus: MacOS: Set CPPFLAGS and LDFLAGS, use Xcode image

Homebrew doesn't link openssl by default so as not to interfere with the
system's libssl.

Set CPPFLAGS and LDFLAGS so autoconf can find libssl.

The infrastructure/BoxPlatform.pm script needs to run `xcodebuild` to
check which version of XCode is installed. This doesn't work with the
Command-Line Tools only installation.
James O'Gorman
Rework GCE so it doesn't apply to MacOS

Now that we have a MacOS build task, not every task uses the
gce_instance, but the defaults get applied to the MacOS task as the
top-level is applied. This errors because we didn't specify the project
or image.

Change GCE to use YAML anchors and apply these to all GCE tasks. The
anchor has to be included first in each task so it doesn't overwrite
task-specific settings; this currently only affects FreeBSD, which
changes the disk size.
Chris Wilson
Fix e7c3d2f144c76a15fa3bbdd330bcaa90f337da67 on Windows

Code now relies on being able to copy struct dirents, but our Windows
emulation library used a pointer to a static buffer for the filename,
which was overwritten while iterating over the directory. Now fixed by
replacing it with a static buffer in struct dirent, as Unixes seem to.
  • CentOS 6 amd64 all-branches: compile client failed -  stdiowarnings (2)
  • SmartOS all-branches: cleanup _test failed -  stdio
James O'Gorman
Add Cirrus CI config

Add a minimal Cirrus CI config to start testing this service.
Chris Wilson
Fix failing test/bbackupd tests

When did they get broken, and how?
  • CentOS 6 amd64 all-branches: compile client failed -  stdiowarnings (2)
  • SmartOS all-branches: cleanup _test failed -  stdio
James O'Gorman
Cirrus: Add MacOS build

First attempt at trying a MacOS build. Not entirely sure if the brew
packages are enough, and I don't know what user the build runs as so for
now this doesn't use the standard build set.
Chris Wilson
Remove unused support for Berkeley DB

Replaced long ago by the built-in copy of QDBM.
  • CentOS 6 amd64 all-branches: compile client failed -  stdiowarnings (2)
  • SmartOS all-branches: cleanup _test failed -  stdio
James O'Gorman
Cirrus: Switch Debian to a custom GCE instance

The Docker builds on shared infrastructure have odd behaviour. Fedor
from Cirrus confirmed that some processes were being OOM killed,
possibly because Docker/cgroup resource limits are hidden from
containers, which can see all host resources. The tests might be trying
to use as much memory as the Docker host has, and getting killed.

The GCE n1-standard-2 has plenty of memory so should be fine for the
tests.

Add a commented preemtible block as this could be useful later.
James O'Gorman
Cirrus: Run debug and release tests

Only the debug tests were being run. This adds the release tests too.
  • FreeBSD 11.1 amd64 all-branches: cleanup _test failed -  stdio
James O'Gorman
Add CentOS 7 and Ubuntu
James O'Gorman
Switch Debian to a custom GCE instance

The Docker builds have odd behaviour. Fedor from Cirrus confirmed that
some processes were being OOM killed, possibly because Docker/cgroup
resource limits are hidden from containers, which can see all host
resources. The tests might be trying to use as much memory as the Docker
host has, and getting killed.

The GCE n1-standard-2 has plenty of memory so should be fine for the
tests.

Add a commented preemtible block as this could be useful later.
James O'Gorman
Add chroot support and Debian i386 build

The Debian project requires both amd64 and i386 builds to pass. In
Buildbot we accomplished this by creating an i386 chroot on an amd64 EC2
instance and running the buildbot daemon inside that.

This tries to accomplish similar, but as Cirrus doesn't run a daemon, we
need to run many chroot commands. Debian's schroot allows setting up a
persistent environment with things like /tmp bind mounted from the host.
This is useful as Cirrus uses a directory in /tmp as its working dir.
James O'Gorman
Cirrus: Add CentOS 7 and Ubuntu
James O'Gorman
Split tasks
Chris Wilson
Refactor GetConfiguredBackupClient to not Login automatically

This makes Login() a separate, publicly visible operation, which can also check
the client store marker against an expected value, and raise an exception if it
differs, making this code easily reusable.
  • CentOS 6 amd64 all-branches: compile client failed -  stdiowarnings (2)
  • SmartOS all-branches: cleanup _test failed -  stdio
James O'Gorman
Switch GCE instance type to n1-standard-1

The small (shared CPU) instance is pretty slow. Let's try on the smallest non-shared CPU.
James O'Gorman
Add MacOS build

First attempt at trying a MacOS build. Not entirely sure if the brew
packages are enough, and I don't know what user the build runs as so for
now this doesn't use the standard build set.
James O'Gorman
Re-encrypt Cirrus GCP creds to boxbackup org

Encrypted variables are encrypted to the GitHub organisation. The GCP
credentials were encrypted to my account previously. This re-encrypts to
the boxbackup organisation.
James O'Gorman
Use GCE for both Debian and FreeBSD

Use my GCE account for both Debian and FreeBSD as the Cirrus shared
FreeBSD instance is pretty slow. The FreeBSD image has a disk size of
29GB so we need to specify something bigger than that in the instance,
so we use 30GB.

Try the g1-small instance as n1-standard-2 is way too big.
James O'Gorman
Cirrus: Switch GCE instance type to n1-standard-1

The small (shared CPU) instance is pretty slow. Let's try on the
smallest non-shared CPU.
James O'Gorman
Add FreeBSD build

Refactor the build steps into a YAML anchor and add a FreeBSD builder.
James O'Gorman
Cirrus: Add build user

The build is running things as root! There doesn't seem to be a way to
change the default user.

This adds a build user and some debug lines in the pre_script to show
the current user (before switching). Each task has to be run under su.
This could be fixed later by using a wrapper script.
James O'Gorman
Cirrus: Re-encrypt GCP creds to boxbackup org

Encrypted variables are encrypted to the GitHub organisation. The GCP
credentials were encrypted to my account previously. This re-encrypts to
the boxbackup organisation.
James O'Gorman
Cirrus: Add chroot support and Debian i386 build

The Debian project requires both amd64 and i386 builds to pass. In
Buildbot we accomplished this by creating an i386 chroot on an amd64 EC2
instance and running the buildbot daemon inside that.

This tries to accomplish similar, but as Cirrus doesn't run a daemon, we
need to run many chroot commands. Debian's schroot allows setting up a
persistent environment with things like /tmp bind mounted from the host.
This is useful as Cirrus uses a directory in /tmp as its working dir.
Chris Wilson
Simplify and rename test_bbackupd_exclusions
  • CentOS 6 amd64 all-branches: compile client failed -  stdiowarnings (2)
  • SmartOS all-branches: cleanup _test failed -  stdio
James O'Gorman
Cirrus: Add FreeBSD build

Refactor the build steps into a YAML anchor and add a FreeBSD builder.
Chris Wilson
Improve handling of exceptions in destructors

Destructors are not allowed to throw exceptions, and although we log a warning
if we catch one, it was easy to miss in automated tests. Now the exception is
recorded and causes a test failure during tearDown() instead.
  • CentOS 6 amd64 all-branches: compile client failed -  stdiowarnings (2)
  • SmartOS all-branches: cleanup _test failed -  stdio
Chris Wilson
Fix failing test_backup_hardlinked_files

Remove assertion that inode numbers were not reused, which was incompatible
with hard links and violated under certain circumstances. Add a test that
reproduces those circumstances.
  • CentOS 6 amd64 all-branches: compile client failed -  stdiowarnings (2)
  • SmartOS all-branches: cleanup _test failed -  stdio
James O'Gorman
Cirrus Remove jessie, increase resources

Jessie builds don't work currently - need to split this out because of
package names/versions.

The Stretch debug tests take too long and some things time out, so try
increasing resources.
James O'Gorman
Add Cirrus CI config

Add a minimal Cirrus CI config to start testing this service.
James O'Gorman
Cirrus: Rework GCE so it doesn't apply to MacOS

Now that we have a MacOS build task, not every task uses the
gce_instance, but the defaults get applied to the MacOS task as the
top-level is applied. This errors because we didn't specify the project
or image.

Change GCE to use YAML anchors and apply these to all GCE tasks. The
anchor has to be included first in each task so it doesn't overwrite
task-specific settings; this currently only affects FreeBSD, which
changes the disk size.
James O'Gorman
MacOS: Set CPPFLAGS and LDFLAGS, use Xcode image

Homebrew doesn't link openssl by default so as not to interfere with the
system's libssl.

Set CPPFLAGS and LDFLAGS so autoconf can find libssl.

The infrastructure/BoxPlatform.pm script needs to run `xcodebuild` to
check which version of XCode is installed. This doesn't work with the
Command-Line Tools only installation.
James O'Gorman
Cirrus: Split tasks

Split the build into multiple tasks to identify build step failures in
the UI.