Flocon de toile | Freelance Drupal: Working with the Drupal Commerce 2 checkout flows

Planet Drupal - 4. April 2018 - 14:00

Drupal Commerce 2 allows to define out of the box multiple checkout flows, allowing to customize according to the order, the product purchased, the customer profile this buying process and modify it accordingly. This is an extremely interesting feature, in that it can simplify as much as necessary this famous checkout flows. Do you sell physical (and therefore with associated delivery) and digital (without delivery) products? In a few clicks you can have two separate checkout flows that will take into account these specificities.

Vorwerk Kobold VR200 im Test: unkomplizierter und gründlicher Saugroboter

heise online Newsticker - 4. April 2018 - 13:30
Der Firmenname Vorwerk steht für hohe Qualität bei anspruchsvollen Preisen. TechStage hat den Kobold VR200 ausprobiert und zeigt, wie sich der einfach zu bedienende Saugroboter in der Praxis schlägt.

Caboost - Außenbordmotor fürs Fahrrad

heise online Newsticker - 4. April 2018 - 13:00
Ein 3. Rad mit Akku und E-Motor soll herkömmliche Fahrräder anschieben - zu einem Fünftel der Kosten eines E-Bikes.

init – der Wochenausblick: DecompileD, SensAbility und Autismus

heise online Newsticker - 4. April 2018 - 13:00
Die Woche nach Ostern ist beinahe so ruhig wie die nach Weihnachten. Dennoch gibt es zwei Events an der WHU und in Dresden, einen interessanten Kinostart, ein paar neue Alben und wichtige Gedenktage.

Linux 4.16 freigegeben: Spectre-v1-Schutz, längere Akkulauzeit und bessere Performance

heise online Newsticker - 4. April 2018 - 13:00
Mehr Akkulaufzeit und Schutz vor der Prozessorlücke Spectre v1 sind zwei Highlights des neuen Linux-Kernels. Der integrierte Hypervisor unterstützt jetzt AMDs Speicherverschlüsselung. Außerdem läuft Linux auch als Gast unter einem Hardware-Partitionierer.

Lullabot: Continuous Integration in Drupal 8 with Travis CI

Planet Drupal - 4. April 2018 - 12:07

This article is the second in our series on Continuous Integration tools for Drupal 8, which started with CircleCI. This time, we explore Travis CI.

Travis CI is the most well known CI tool for open source projects. Its setup process is straightforward and it offers a lot of flexibility and resources to implement Continuous Integration for any kind of project. In this article we will implement the same set of jobs that we did with CircleCI and then compare both tools.


This article makes references to the following resources:

Browse the demo project to discover where the CI components are placed, then use the one-line installer to add these components automatically to your project.

The goal

We want to run the following jobs in a Drupal 8 project when someone creates a pull request:

To accomplish the above, we will use the following tools in Travis CI:

  • Drush, Drupal’s command line interface, to perform Drupal-related tasks like installing Drupal or updating the database.
  • Docker Compose, via docker4drupal, to build the environment where Behat tests run.
  • Robo, a PHP task runner, to define a set of tasks for each of the above jobs.

Here is a screenshot of the Travis CI dashboard with the above setup in place:


Now, let’s see how this has been set up. If you want to dive straight into the code, have a look at the demo Drupal 8 repository.

Setting up Travis CI

Travis CI requires the presence of a .travis.yml file at the root of the repository that dictates how it will build and test the project. I have used this installer that adds the following files:

Additionally, a few dependencies are added via Composer, which are required for the CI jobs.

After adding the above files to the repository, it’s time to give Travis CI access to it. Open https://travis-ci.org and authenticate there with your GitHub account. Next, add the repository at the Travis CI dashboard as shown below:


That’s it! After this, future changes to the repository should trigger builds at Travis CI. If you create a pull request, you will see a status message like the following one:

undefined Seeing the jobs at work

Here is an excerpt of the .travis.yml file. We are leveraging Travis’ build matrix for spinning up three jobs that run in parallel:

env: matrix: - JOB=job:check-coding-standards - JOB=job:run-unit-tests - JOB=job:run-behat-tests install: - composer --verbose install script: - vendor/bin/robo $JOB

The script section is called three times: one for each value assigned to the $JOB variable. It calls a different Robo task each time. We decided to write the implementation of each job as Robo tasks because:

  • It makes the .travis.yml file easier to read and maintain.
  • It makes the job implementations portable between CI tools.
  • It gives developers an opportunity to run the jobs locally.

If you are curious what a Robo task looks like, here is the implementation of the one that runs Behat tests:

/** * Command to run behat tests. * * @return \Robo\Result * The result of the collection of tasks. */ public function jobRunBehatTests() { $collection = $this->collectionBuilder(); $collection->addTaskList($this->downloadDatabase()); $collection->addTaskList($this->buildEnvironment()); $collection->addTask($this->waitForDrupal()); $collection->addTaskList($this->runUpdatePath()); $collection->addTaskList($this->runBehatTests()); return $collection->run(); } Building the environment with Docker Compose

The build environment task shown above, $this→buildEnvironment(), uses Docker Compose to build a Docker environment where the Drupal site will be configured, the database will be updated, and finally, Behat tests will run.

In contrast with CircleCI, where we define the mix of Docker images that the test environment will use to run the jobs, Travis CI offers two environments (Precise and Trusty) with common pre-installed services. Trusty has everything that we need for checking coding standards or running PHPUnit tests, but Behat tests require more setup which we find easier to manage via Docker Compose.

Here are the contents of the build environment task. For simplicity, we have removed a few unrelated lines:

/** * Builds the Docker environment. * * @return \Robo\Task\Base\Exec[] * An array of tasks. */ protected function buildEnvironment() { $force = true; $tasks = []; $tasks[] = $this->taskFilesystemStack() ->copy('.travis/docker-compose.yml', 'docker-compose.yml', $force); $tasks[] = $this->taskExec('docker-compose pull --parallel'); $tasks[] = $this->taskExec('docker-compose up -d'); return $tasks; }

The above task uses this docker-compose.yml file to build the environment.

Generating and visualizing coverage reports

Travis CI does not support storing artifacts like CircleCI does. Therefore, we need to use a third-party service to host them. Travis documentation suggests either uploading them to an Amazon S3 bucket or using Coveralls, a hosted analysis tool. We chose the latter because it posts a summary in each pull request with a link to the full coverage report.

Setting up Coveralls is straightforward. Start by opening https://coveralls.io and then, after authenticating with your GitHub account, use their browser to find and connect to a repository, like this:


Next, it is recommended to review the repository settings so we can customize the developer experience:


With that in place, new pull requests will show a status message with a one-line summary of the coverage report, plus a link to the full details:


Finally, when we click on Details, we see the following coverage report:

undefined A comparison to CircleCI

CircleCI can do all that Travis CI does with less setup. For example, coverage reports and Behat screenshots can be stored as job artifacts and visualized at the CircleCI dashboard. Additionally, CircleCI’s Command Line Interface gives a chance to developers to debug jobs locally.

Travis CI shines on flexibility: for example, only the Behat job uses Docker Compose to build the environment while the rest of the jobs use the Trusty image. Additionally, there is a huge amount of articles and documentation, which you will surely find helpful when tweaking the jobs to fit your team's needs.

If you liked Travis CI, check out this installer to get started quickly in your Drupal 8 project.

What next?

We aren’t sure about which tool to pick for our next article in this series on CI tools for Drupal 8. Do you have a preference? Do you have feedback on what you’ve found relevant about this article? Please let us know by posting a comment.


Chinesische Raumstation Tiangong 1 über dem Südpazifik verglüht

heise online Newsticker - 4. April 2018 - 12:00
In der Nacht zum Montag ist die chinesische Raumstation wie prognostiziert in die Atmosphäre eingetreten und verglüht. Das geschah über dem Südpazifik, weitab der Landmassen, die auch hätten betroffen sein können.

Online-Brauchtum "Aprilscherz": Von Nano-Tinkturen und höheren Mächten

heise online Newsticker - 4. April 2018 - 11:00
Der erste Tag im April bringt wie gewohnt auch im Internet Scherzhaftes und nicht Ernst Gemeintes hervor. Die Redaktion hat einige Fundstücke zusammengestellt - von Hardware bis Bot, von Bildung bis Religion ist einiges dabei.

Ecuador: Assange verpflichtete sich zu Verzicht auf Politisches

heise online Newsticker - 4. April 2018 - 10:30
Assange habe sich sehr wohl dazu verpflichtet, sich nicht zu inneren Angelegenheit anderer Staaten zu äußern, wehrt sich Ecuador in dem Streit, den Internet-Zugang von Julian Assange in der Londoner Botschaft zu unterbinden.

Deutschland als "Digital-Weltmeister": Mehr Tempo bei Digitalisierung gefordert

heise online Newsticker - 4. April 2018 - 10:30
Wird die Digitalisierung das Mega-Projekt der großen Koalition in dieser Wahlperiode? Wer der neuen Staatsministerin für diesen Bereich zuhört, könnte dies glauben. Es gibt aber Skeptiker.

Dells 8K-Monitor UP3218K: Platz schaffen mit 33 Millionen Pixeln

heise online Newsticker - 4. April 2018 - 10:00
Als Dells 8K-Monitor in die Redaktion kam, habe ich mich gefragt, welchen Qualitätsgewinn derart viele Pixel in der Praxis eigentlich bringen – und bat die Kollegen zum Sichttest: Ein Erfahrungsbericht von Ulrike Kuhlmann.

Digitalministerin: Facebook muss zeigen, wer Zugriff auf Daten hat

heise online Newsticker - 4. April 2018 - 9:30
Digitalministerin Dorothee Bär verlangt von Facebook, sein Geschäftsmodell zu ändern und alle Datenzugriffe transparent zu machen. Grünen-Chef Habeck denkt sogar über eine Zerschlagung des Konzerns nach.

Neue Umweltministerin will beim Diesel Druck auf Autobranche machen

heise online Newsticker - 4. April 2018 - 9:00
Svenja Schulze ist noch nicht lange im Amt. Nun positioniert sich die neue Umweltministerin beim Thema Blaue Plakette - und macht der Autobranche Vorwürfe.

eCall: Notfallsystem für neue Fahrzeugmodelle in der EU

heise online Newsticker - 4. April 2018 - 9:00
Mehr als 25.000 Menschen sterben jährlich bei Verkehrsunfällen in der Europäischen Union, 135.000 werden schwer verletzt. Die EU erwartet sehr viel vom neuen System eCall, das künftig viele von ihnen retten soll. Andere Experten sind skeptisch.

Weniger Geoblocking: EU-Nutzer dürfen ihre Digital-Abos jetzt mit auf die Reise nehmen

heise online Newsticker - 4. April 2018 - 8:30
Am 1. April ist die Verordnung zur "grenzüberschreitenden Portabilität" bezahlter Inhaltsdienste wie Netflix & Co in Kraft getreten. EU-Bürger können Online-Abonnements damit auch zeitweilig in anderen Mitgliedsstaaten nutzen.

50 Jahre "2001 Odyssee im Weltraum" – oder: Wie ich lernte, den Computer zu lieben

heise online Newsticker - 4. April 2018 - 8:30
Am 6. April 1968 kam der Film "2001 – Odyssee im Weltraum" in die Kinos und veränderte das Genre des Science-Fiction-Films für immer. Der Film ist heute aufgrund der Diskussionen über Machine Learning aktueller denn je.

Kalamuna Blog: How-to: Using Drupal-Project to Craft Your Perfect Start State

Planet Drupal - 4. April 2018 - 8:05
How-to: Using Drupal-Project to Craft Your Perfect Start State Shannon O'Malley Tue, 04/03/2018 - 23:05

The drupal-project repository is quickly becoming the de facto starter for all Drupal 8 projects. So how can you quickly spin up a new site with Composer and drupal-project? How do you take drupal-project and customize it to suit your particular needs? And, how do you leverage post-install tasks to keep yourself DRY? This February I gave a talk at DrupalCamp Florida where I got into all of these questions.

Categories Articles Drupal

Natur, Architektur und ihre Verschmelzung: Die Bilder der Woche (KW 13)

heise online Newsticker - 4. April 2018 - 8:00
Natur und Kunstbauten waren die Themen, die auf den Bildern des Tages in der vergangenen Woche im Vordergrund standen – und Lorenza Cancian gelang sogar eine Verbindung von beiden.

OSTraining: A Further Look at the New Layout Builder in Drupal 8

Planet Drupal - 4. April 2018 - 7:48

Earlier in this blog, OSTraining's Steve Burge made an excellent introduction to the new Drupal Layout Builder.

Many users have been eagerly expecting this module and it was released in version 8.5.

In this tutorial, you will take a further look at how to work with this module. You will see how to use the Layout Builder to configure:

  • Content types.
  • Nodes.

Börsenhandel beschert Kurzwellenfunk ein Comeback

heise online Newsticker - 4. April 2018 - 7:30
Börsenhändler sind auf schnelle Datenverbindungen angewiesen. Ein Startup-Unternehmen unterbietet die Latenz von Glasfaserverbindungen auf Transatlantikstrecken mit Kurzwellen-Technik.