29
Automating & Integrating Pantheon with JIRA, Slack, Jenkins, and More

Automating & Integrating Pantheon with JIRA, Slack, Jenkins and More

Embed Size (px)

Citation preview

Automating & Integrating Pantheon with JIRA, Slack, Jenkins, and More

Pantheon.io

Who Are We?

2

Brian Thompson, Lead Software Engineer, Mindgrub

Dave Wikoff, Lead Software Engineer, Mindgrub

Ari Gold, Associate Product Manager, Pantheon

LOTS OF COMPLEXITYLOTS OF DETAIL

LOTS OF TEDIUM

HUMAN BEINGS ARE NOT GOOD AT ROBOT WORK

MAKE THE ROBOTS DO THE WORK

Pantheon.io 9

Automation Benefits

✓ Frees developer time to improve quality, skills, or deliver features faster.

✓ Machines aren’t prone to human error.

✓ Improves project visibility through dependable notifications.

Pantheon.io 10

The

Pantheon.io 11

Cloud Integration Tools

● Quicksilver Platform Hooks

● The pantheon.yml config file

● Terminus Command Line Interface

● SAML Centralized Authentication

Pantheon.io 12

SAML Centralized Authentication

● Integrate Pantheon into your organization-wide security strategy.

● Authenticate against your identity provider (IdP) when logging into the Pantheon dashboard.

● If your organization does not already make use of SAML, you can use Okta, OneLogin, or open-source tools as a no-cost way to get started.

Pantheon.io 13

Terminus Command Line Interface

● Now supports token-based authentication

● Securely use Terminus on remote servers,

a must-have for continuous integration.

● Includes advanced interfaces to track

workflows on Pantheon

Pantheon.io 14

Quicksilver Platform Hooks

Some examples of what you can do:

● Update issue tracker (e.g. JIRA) based on Pantheon activity

● Automatically sanitize Dev databases after cloning from Live

● Post notifications to Slack to keep your teams in sync

● Clear CDN caches on deploy

● Integrate almost anything via simple webhooks

Pantheon.io 15

Pull Requests are Most Welcome!

pantheon-systems/quicksilver-examples

Pantheon.io

Developers trigger workflows identified in pantheon.yml

● sync_code

● deploy

● clone_database

● clear_cache

16

Quicksilver Platform Hooks

Platform Hooks respond by running the Quicksilver operations listed for that workflow in pantheon.yml and stored in code/private/scripts/example.php

Pantheon.io 17

----api_version: 1workflows: sync_code: after: - type: webphp description: 'Clear cache after code push.' script: private/scripts/cc_after_push.php

The pantheon.yml configuration file

Pantheon.io 18

<?php

echo "Hello, Quicksilver.";echo "\n\n";echo "\n========= START PAYLOAD ===========\n";print_r($_POST);echo "\n========== END PAYLOAD ============\n";echo "\n";echo "\n---------- ENVIRONMENT ------------\n";passthru("printenv");

Quicksilver WebPHP Scripts

- Web-requested PHP- Subject to 120s timeout

Pantheon.io 19

files/private/secrets.json

- Keep machine tokens, Slack webhook URLs, and keys - files is not in git- Must add to all environments (doesn’t deploy with code)- Script! https://github.com/pantheon-systems/quicksilver-

examples/pull/14

secrets.json

[email protected] | mindgrub.com | @mindgrub

1. Agencies have a lot of simultaneous projects 2. Moving configuration between environments3. Code quality enforcement4. Continuous integration

The Hard Way

[email protected] | mindgrub.com | @mindgrub

1. Features solves configuration Issues in Drupal 72. Drupal 8 makes it easier with CMI3. Solve similar issues in WordPress using WP-CFM4. This can all be run synced using Quicksilver

Moving Configuration Between Environments

[email protected] | mindgrub.com | @mindgrub

Enforcing Code Quality

● SimpleTest / PHPUnit● PHP Mess Detector, PHP Code Style● JS Linting

[email protected] | mindgrub.com | @mindgrub

● Run any CI build on push● Mindgrub uses Jenkins, works for anything● Opens many other possibilities

Continuous Integration

[email protected] | mindgrub.com | @mindgrub

● Deployments should be stress free● Multiple moving parts● Communication between all parties is important● https://github.com/rvtraveller/pantheon-slack-integration

Turning Deployments from High Stress to Low Stress

[email protected] | mindgrub.com | @mindgrub

Demo

[email protected] | mindgrub.com | @mindgrub

● Integration with ticket tracking system to automatically update tickets

● Polling via Slack● Enhanced Terminus integration

Future Enhancements

Questions?