Home / The new Docker testbot that will power Drupal Quality Assurance

The new Docker testbot that will power Drupal Quality Assurance

Drupaldevdays 2014 at Szeged was a huge success, especially regarding the seven-day long sprints, where a lot of work was done, from the core development initiatives to drupal.org improvements and infrastructure developments.

On the Drupal infrastructure team we have been quite busy, trying to improve processes, making things easier and faster for Drupal and the Drupal community. Therefore I went to Szeged and engaged live with jthorson, dasrecht and beejeebus on a mission to modernize the Drupal automated testing, on qa.drupal.org, commonly known as the “testbots.”

The primary working results are available at the public repo:

Git Commit statistics:

  1. Ricardo Amaro 132 commits
  2. Jeremy Thorson 7 commits
  3. Bastian Widmer 1 commit (via pull request)

and 40 retweets of the announcement.

Based on this work, Nick Veenhof wrote up a great post on
How to reliably test sandbox projects using the drupal.org testbot locally.


Why do we need this and why do we think it’s awesome?

  • Test patches on your local box the same you do on http://qa.drupal.org
  • Test multiple patches and multiple modules/sandboxes at once
  • Test any Drupal version/branch
  • Get realtime output from the Docker container
  • Choose mysql, sqlite
  • Choose PHP5.3/5.4/5.5 versions
  • Test offline with caching feature
  • Test only what you need and faster!
  • Runs natively on Linux and on MAC/windows via vagrant

Here are the quick Linux instructions for building the containers:

git clone https://github.com/ricardoamaro/modernizing_testbot__dockerfiles.git
cd
modernizing_testbot__dockerfiles
sudo ./build_all.sh cleanup

… and Vagrant MAC/Windows instructions:

(You do need Vagrant and Virtualbox installed)

git clone https://github.com/ricardoamaro/modernizing_testbot__dockerfiles.git
cd
modernizing_testbot__dockerfiles
vagrant up

Example of one run, using one patch, against D8 Bootstrap tests:

sudo \
TESTGROUPS="Bootstrap" \
DRUPALBRANCH="8.x" \
PATCH="https://drupal.org/files/issues/1942178-config-schema-user-28.patch,." \
./run.sh


docker testbot run

More examples and documentation at: https://github.com/ricardoamaro/modernizing_testbot__dockerfiles

Try it out now. Seriously! It's easy!

Read the full “Modernizing Testbot: Drupal Dev Days report” at: https://groups.drupal.org/node/417188

What are the next steps?

Aside from keeping improving the docker testbot we will:

  • Integrate with the Jenkins service
  • Connect with qa.drupal.org
  • Improve drupal.org issues with the new options
  • Use the new OpenStack to run the containers

And possibly integrate with travis.ci in order to have testbots on pull request off github repos.

Thank you to all who are supporting, helping and testing this project!

Comments

Posted on by Nick_vh (not verified).

I really enjoyed working with stuff like this that make complex matter really easy. Thanks to all that helped and hopefully we can see this on the testbots soon

Posted on by Paul Mitchum (not verified).

When's it going to roll out, or has it already?

Moving this documentation to d.o would be great when that happens.

Posted on by Nicolas Leroy.

This looks very nice. What a great feature to being able to test code on your local machine in an easy way. A great way to improve code quality.

Posted on by Nick Stinemates (not verified).

Please let me know if you need any help. This is such a cool/great project.

Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.

Filtered HTML

  • Use [acphone_sales], [acphone_sales_text], [acphone_support], [acphone_international], [acphone_devcloud], [acphone_extra1] and [acphone_extra2] as placeholders for Acquia phone numbers. Add class "acquia-phones-link" to wrapper element to make number a link.
  • To post pieces of code, surround them with <code>...</code> tags. For PHP code, you can use <?php ... ?>, which will also colour it based on syntax.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <h4> <h5> <h2> <img>
  • Lines and paragraphs break automatically.
By submitting this form, you accept the Mollom privacy policy.