The DrupalCI initiative is geared towards developing tools for the next generation of testing on Drupal.org. In the following video I will demonstrate the "Results" component responsible for providing build feedback.
One component which had not received much attention until the DrupalCon Amsterdam sprints is the results server. This is responsible for archiving and exposing test results and build artefacts for all DrupalCI jobs. Im happy to announce that this component is now implemented as a minimal viable product (MVP). So what does MVP mean? It means we now need to have a serious discussion about how the project should progress from here. This MVP is broken into 2 pieces.
We had 2 requirements for this item:
- Easy to hack on.
- Expose an API so the console application can manipulate this site.
With these requirements in mind we ran with..... Drupal 8! That's right, we decided to prototype our project and test Drupal 8 at the same time. What we ended up with was a simple installation profile containing a content type, some views, REST configuration and a theme based on Bootstrap (http://getbootstrap.com). All the code can be found in the links at the end of this post. Drupal 8 was alot of fun to develop with so expect a blog post later down the track documenting my experience.
The console is all about the workflow and updating the results Drupal 8 site. We implemented this as a Symfony console application with Guzzle for all the API endpoint heavy lifting. The console application provides the following workflow.
- Create a new build
- Setting the build to "Building"
- Submitting the build results summary based on the artefacts
- Uploading build artefacts to remote storage and linking via the Drupal 8 results site
So let's put this all together. Below is a demonstration of how both of these projects interact together.
Short term roadmap
From here I would like to see the following things happen:
- Add test coverage to the Drupal 8 and console application
- Start having a discussion around what we should add to get this component ready for release
- Drupal.org - https://www.drupal.org/project/drupalci_results
- Github - https://github.com/nickschuch/drupalci-results