Date
10 May 19
Transcript

thanks for coming this is about launching your own development

environments on your own servers as quickly and easily as possible otherwise

known as PR environments pull request environments okay so real quick this dev

shop thing is an open source it's on drupal.org it's a Drupal distribution it

has an install script that he is ansible it's a stop on most Linux servers

recommended on a go - LTS or sent to a 7 or derivatives it actually is built on

this anger thing which has been posting Drupal for more than 10 years I started working at Def shop in March of 2012

which means we're already 6 years old which is really cool big drops maya company consulting something on Drupal

for for a long time you think you're blowing the web's since forever ago and

now we have we're offering these support plans to make using desktop just as

reliable and safe and easy as you know cloud bussing provider or something so

in this presentation we're gonna have to go through quick because the videos are long but I can jump through it instead of a dev strip this server desktop

server from scratch on a digitalocean unit cuz they're the fastest I found pulling around domain at it run the

install script ball game and check out the settings we're gonna create a new Drupal 8 project real quick with the composer project and then deploy it to

that dev shop and then if we're going to set up an existing project that having our Drupal 7 that has a lot of tests so

it's a good example for getting that on the server and running the hat tests on

it so yeah second first first section

this is all basically videos

I mean who's this so I can skip easily okay so everybody created a VM before on

volition or Amazon or one of those things has anybody not yeah that's what I thought so about four gigs is probably

that he's safe this back to gigs a little little slow but you can get away with it but for gigs twenty bucks a

month down to the ocean it's just Kim you know it's really getting cheaper and cheaper doesn't matter what region shg

you choose your sh t so you can log in as root hostname most systems let you

set the hostname ahead of time and they set the hostname on the server for you Amazon doesn't exactly do that that depends of the system make this a fully

qualified domain name that you can reach and you set at the NS name for so I owned FF not systems we're going to set

up that subdomain to point at this server once we have the IP but by doing this I don't have to worry about it later so digitalocean fires it up it's

very quick does this dynamic stuff we've got the IP already so I can just go

click that IP go to my DNS record system which I used and simple but you can use

anything you basically need to records to a records on the foot IP address for the full hostname you're going to use

and then one is a wild card because we're going to be generating time environments dynamically underneath that

subdomain so go faster we put a starred I think Jeff that systems pointing at

the same address the today the digital ocean goes and then it's up and running

it's very quick usually 30 seconds or so I can literally already log into it the

DNS has been propagated yet so I usually start with the IP get the domain name later and in as root on my new Bluetooth

server get def shop comm is basically our silly landing page that just has the

install script go there whenever you want it's

just basic stuff and then but the most important thing here as a standalone install script so you just pull that on

to a server and it will run without any other pre dependencies so I just W get

it on to my buddy here I'm gonna run bash install as root not doing sudo

because you need to make sure you're in the home directory because we do use the my CNF file in the home directory to

save the database password this is important check so before you go for you

in the script just make sure you know what the full host name is by running prints name - F I got my full host name

there so because I said it already Amazon might have changed it for you or Jenna might get a dynamic one depending on the server you're using but that's

okay because this install script is designed to handle setting those name for you so you know to worry too much about it uses the ansible host name

module so instead just - install SH I can look at the install script a little

bit of documentation here and go to the docs explanation of the DNS records we just went over how to run install the

sage and the host name argument there right so if you pass the host name argument this script will actually use

ansible to try to set the hostname for you so in case you skip that step or using a system that doesn't let you do

it dynamically except that fails it's not a real command but if I run the real

command install SH man we go so it

detects the system it installs ansible for you and then it loads all our roles

so we use the gear than guy rules so it's the same playbook so you'll see on Drupal VM we pull them all off ansible

galaxy we do also have a docker image so it's like this whole process is now in

just a docker file so it is a little strange to say go ansible when you've got like 30 lines and the same thing

that's a good but this is how it works and it's nice that we share configuration with them we got our own

playbooks here for a cur user and hacci and you know it piles it all in so

really cool because we're sharing we're already sharing it to structure in that way with other other companies other hosting companies this is the

animal run it's nice and long so we'll skip through it down here you get to the dumb master install command deff master

the name of the Drupal distribution that runs as your web control panel for all this stuff there's a weird bug where it

asks for the sudo password even though we haven't set it you can actually just cancel out and it'll work fine it

doesn't have any docker images and it's just them to pick up on the tests and so I just don't do it let me skip it this

desktop status command works and the dev shop login is address you li you get

address your group will URL to login you can run the script again just to be sure

everything is running like supervisor because it's idempotent but if you click that link you should be logging in

already to the Drupal front-end for Def shop which is called death master and

there it is so unless it is actually just a Drupal site so everything you're

kind of used to is there we put the tabs on the left as it kind of looks nice

this is the home page there's no project sample there's nothing there but for we

start a project just wanted to kind of break down the pages there's tasks these

are all the jobs that run so whether it's the verify just means like writing all the configs and creating databases

making sure everything's in order and there's other tasks that do everything from get pulled running updates and everything like that

servers lists your servers out of the box it's just one server two entries

though because data basically connects via localhost but agar is used to connect to any number of remote servers

you can plug it remote and genetics or Apache servers and it will actually deliver the code to those remote servers once he's wired up correctly with an SSH

the gears is a little drop-down for all the active tasks up there and you'll see a gear to change color and numbers show

up when there's tasks funny important feature my account under my account we have an SSH keys tab same SSH keys

module you see on drupal.org so you can log in to your new CI server running dev

shop upload your own SSH key once it verifies the server this little task

runs it saves the SSH keys and you're able to log in directly via the bigger user at your domain name

so that's really cool because you can give each of your developers a user on the dev shop front-end let them manage

their own SSH keys and they'll get access to the main dev machine and there

we are okay so a quick tour on the backend it solves rush aces so each site

and server things gets address alias you guys anyone not used rush great details

here the host master site alias and HM which is its alias for it is the Drupal

front end so you def front-end Drupal site you can use rush HM UI RCC or

whatever else you want to access your Drupal front-end site which is managed just like the rest that are going to be

created in a second so if you ever get logged out you notice there wasn't any passwords there's the ordinary passwords

created just used to dress you a lie we never have an admin password it's a secure the on random password and that's

yeah I didn't need you know we're a little more advanced enough to get into

the details of the drush stuff so again it's just a Drupal site so if you want to put extra modules in those modules

folders and themes folders for you to go in there all the dress commands are available and that's the end of that

section we have installed desktop

so okay real quick creating a new drip aside you guys using Drupal composers

setup now for a Drupal 8 stuff right so I can skip a lot of that setup too right

so you've seen this the template you can

use the command to create a repository you can I did this locally alright to

create an earplug didn't it create a whole new project called pili Drupal II

and composer install runs superfast always of course it's all the things I

create a new I add the get ignore file first I add the rest and there it is and

what I think is cool about this is how short of this like you can have all your drupal in just those 10 or 15 files

2020 so I commit them all and I push them all up there to my new repository I

even had took video of me creating a new repository the scratch but you guys probably have done that before to have

your you know pushes to there so now I've got my drupal composer project in my new drupal repo and I go to my deaf

chef server and create my first projects so create project wizard you need to pick a unique project code-named on your

server the lead Ripley yes sure and then you put the get URL in there it'll any

get URL will technically work there's more features with github is the API is to do pull request data and things but

technically if you can clone it you can put any get URL in there putting the hand down or alchemy to get girls so I'm

not going to walk through the SSH key setup but we try to make it as convenient as possible for you to figure

out what's going on so actually this until it's all script actually generates a new SSH key on the server puts it in a

variable so we can display it to you here so it says if you haven't granted the server access to your git repository you could do that now just copy and

paste it into the new get em account you know which we've done before so

there is a given of API token section two because we do things with the API you can simply put it in there and the this

pull request stuff will work we even I have to fix this actually it doesn't work now but I had a button that

saved the key automatically into the github account so it's good that stuff

okay yeah step two information path to dribble if

it's composure its web right talk we its doctorate if it's something else it's

nothing you know we just need to know where where the dribble is going to be eventually we'll clone it first and scan

and figure it out for you but just put it in there if you're using the proposed Drupal to buzzer project its web I put it in the description so it should be

pretty simple deploy hooks these are the things we run whenever we do it get pull whenever we do a database sink so

they're built-in you don't write your own scripts to clear patches and things like that there's a module that reads a

hooks yellow file if you want to use the analytic define those instead and you

can either hard code it for the project where every environment deploys the same all the time or you can say oh this test

server doesn't you know skip the updates I can run those manually or something deploy code method this is because this

thing is of a source so sometimes people who want to run it behind a firewall or something where github can't ping your server immediately to say there's a new

new commit you can set up cube deployment or manual where it'll just always pull and if there's new code it

comes in and it runs that deploy us or manual just you can go in and press pull

if you really are like I'm their super logged on and you can't do anything rarely use those you want to use get the

web hook access if you can it uses IP based restrictions already so if you could talk to people here fireball guys

say like look I just want access from the github servers there's a static range you can say oh you know let them

into my dad chef server so I can get some CI on our on our site even though your we have to be locked down in some

some system so it's a called environment like I said you can have multiple servers

testing the Hat you just need to tell it your behalf folder path and select the Hat and it'll be able to run those tests

automatically and the github integration section has one check box but if you

check it you get more so whenever there's a new pull request create a new environment when the pull request is

merged or closed it will destroy the environment if that checks box is checked there's multiple ways to create

that PR environment you can either run the install from file or clone a site that exists already when there's another

extra feature where you can completely blow away the environment every single time you push by default def shop just

pulls the code it doesn't like delete the whole database and redo it but with that feature you did you check that it

doesn't like completely erases the environment copies over from production or runs day itself profile from scratch

okay so there's a couple errors you might encounter when you're first running through your project you know we try really hard to explain them but

things happen and it slips through so if you get a failed you're gonna get a failed verified project the first time

probably because you need to set up your host be checking when you first check you know and get URL you need to say oh

is this allowed and you say yes so we you know we wanted to write automated

SSH key things but it was like maybe we shouldn't so you just gotta go in there

and try to clone once to github and you can set up your SSH and then it should verify okay we put the again SSH keys in

there and I'll show you going to add it again you've done that a million times so once you have SH access and once you

can have not known hosts you can hit save and it'll pull and I'll say alright good now we have your branches we did

the ghetto-ass remote we see the master branch that select box you can select

any branch or tag and multiple more environments out something we run again but we load the logs of what happened on

the back end we show them in the front end this is a common composer problem and they have seen my the composer

project to false to seven one and then to 16 to close to 700 so you think the puzzler install and it goes where

so that the thing to do is you're going to compose or update and fix that and call the blob but I actually was gonna

go ahead and tell you about the config platform trick where you can basically

set your maximum PHP version for your project so composer itself uses this to

say all your all packages assume PHP 5:39 is the max so don't try to install

your special doctrine that requires PHP 7 so if you're planning on letting people develop locally and someone's

running on the Mac that's old or someone might be running PHP 5 somewhere and they keep having any ones you just find

yourself running updating whatever environments it's running and you can prevent that by setting the PHP version and then it's like it works at

everywhere because it's not trying to love these advanced libraries so that was that's what was happening on that

failure so I did that I pushed the code I put the v8 fever's

in there and ran the update manually just to try to write because that was

the composer update because I want to do it get status I see the two files that I've changed do a git diff I see that

and I updated composer lock file and commit it

I'll push it and I retry retry to verify so it failed again for a very strange

reason this is a dress problem we're working very hard to solve this but you can't use dress and I'm excited I know

I'm sorry again you can use it if you put it in there somewhere else but if it's in the main composer of the Drupal

8 it conflict it takes over and you can't run drush 8c here I demonstrate it

so like I called rush in that folder and it's 8 because it's global and I called rush in this folder and it wraps it

looks it up and says oh you mean this one and then all the commands we use to do this quick so the way to fix that is

to just pinned rush at a lower version in your composing Jason just instead of running you're gonna eat soon soon this

is all Drupal PHP - so anyone has loves to do Drupal development and once they can find a way to contribute this is

kind of maybe something that could help contributor but I do another composer update it does the same thing

updates dress sexy downgrades Josh I told you the version from 9 to 8 I'm

gonna commit that push it again try to get it to validate one last one one last

problem Drupal fan buzzard project decided to update their dress file in there so it's

Drupal 8 as well so you have to remove this command file from the project so in

addition to forcing you know starting you off and Russia hated it puts this thing in there so I have to remove it

once that's removed we have a repo that we can we can automate in the meantime I

added to get ignore cuz there's always extra files to add to get any more there

5fi verify

come on green okay so that means that those there's Drupal in there it's fine

on the index of PHP it can work with that it can install the site which means boom so this is the final step of the

wizard if your repos already ready you don't have to go through this like you kind of get get there already but

basically it detects all the install profile so you do have a custom one in there it'll say oh this is do you want to use that you can check that it uses

that by default so everyday environment can run your new install profile they'll even set up the get hub left foot for

you if you leave that box checked here keep track of what version of Drupal is running even all the modules and install

profiles click that and you land on your

project dashboard which is where you live most of the time if you use that shop this is like little brawl project

you get a box for each site and as many as you want dev test live demo day make

one for your boss to see the progress and you know to tell your developers to stop messing with it it's isolated

there's a web hook button okay so

there's a strange chicken egg problem where I'm creating the web hook and then it checks again and it says hey there's

already one there but so but it doesn't matter there's a web hook button that lets you do it manually so see the setup

web hook you click that it'll pop up happens it tries to explain where's the URL put it in your github webhook so

that as soon as you do get push you'll notify the server and we'll be able to do things they even tried to link

because it knows what what repo you're using so you can put that directly to the add web hook page and do it manually

if you'd like but it does does actually do that because I actually added it

manually and was already there so the bug is more of a false negative

yeah this is a super-fast walkthrough of the project dashboard so this toolbar

shows off what and when you're in any environment so you can just always click dashboard to go back to the main one settings drop-down has project settings

and then a settings page for every environment spec list grows logs is

tasks logs and error logs and then on the top right is a little widget that

tells you gives you a link always to the git repo that links to github and you

can copy paste and then brush so we generate trash cases you can connect to

the sites really easily if you have that SHP set up you're good to go click down to the file put it in there you can

access your site remotely from your local try to explain that try to explain

everything in the UI

there's a that little this little eye you can click to get more detail it's like I forgot how to get in here's the

SSH command here's a couple drush commands for example

where we put the files so we have dev

where that was it that was the internet section great you got a site running we didn't even

click the URL though so that's in the next next to the oh no yeah that's right so this is the environment widget

doesn't name in the environment master is the branch or tag that it's on changes to a little tag icon if it's tag

what version of Drupal it's running that's the info widget this is the menu has a lot of different options like

clearing caches under they're linked to the domain linked to the running environment login button does the best

thing drops you in is a admin on the site so this is trying to make it useful

for managers as well as developers you know because someone reviewing a developer's work can go in and just click log in don't worry about the

passwords or any of that stuff they've accessed a def shop you have access to all the sites how long it was created

this says like clone of and other things if it was created in a different way

deploy code is to change the branch or tag

to play data is to copy databases from the other environments stack this the

server's under running I'm trying to just get through this we get to the PR

stuff right this is a commit status so if you can see untracked miles that you click that pops up a get status of the

site you're working on and notices there's things you should ignore so it offers it in your template let's skip

adding that and yes that is a commitment push buttons there's even a little

feature where you can commit change files right to the web

so what happened there is I just get pushed things a web hook and run the

deploy which looks like this yes well

then in a second right tells you they're working directory exact commands that

were run the exact output that we got everything nothing there but on some

deploys you'll see like a whole new version of Drupal and all these other things and then it will run the update

the database update after the composer installments are closing install this all outputs in real time I didn't catch

it in the video but like line by line you're just watching database updates

required that one's fun to watch when there's a whole lot of them and then the

cache rebuild so now you have this like basic framework and looked at his actual

Drupal site which has been rolling so far but we're looking at all the buttons instead so yeah there is an actual Drupal site look Drupal 8 has a user's

guide link on my home page now that's cool but again we're gonna go login

what's the password well we don't know don't need to know you can go over here put the login link pops up

so really rapid review things like that so it's in that video but you know

basically you're free to create the environments name whatever you want treat them however you want if it's on a

branch every time you push to that branch pulls to that environment it's on a tag it just stays on that tag because

the tag doesn't change what what get commit is there so you can kind of piece

those together manually sync databases back and forth which is kind of a pain but it's what you do and you have dev

test life it's like these static free environments so instead of just doing that what we started doing was these

pull request environments so

yeah I guess this doubt little little ahead nope

that's cutting the power so you let this run lets you set up that path to tests

and check the Hat testing there's a run test button you put the run test button

spits out all and everyone's all these bastards ever how many people have used

the head test before so not entirely everybody right the text there is the

actual type of test itself like it's just a text file with those options

these lines right so you can go through

these very complicated projects this is a project that's a invoicing system for

a medical school for the departments that are doing research to invoice each other for expenses like using the big

microscopes and the imaging systems and the DNA labs and the glasses and so it's

very important that this staffer logs in and only sees their department and can

only submit an invoice that goes into this state and then the other person has to be able to use it so it's like almost

impossible to test as a human being because you just you're pretending to be multiple people and you're clicking around by writing everything out as a

test like this it's it's like pushing the buttons themselves and you're not

like writing some function or a unit test where it's like abstracted away and the user has no idea you just over there

on the page you're proving expected behavior of your app so this is an

example of a failing failing test right

we've got some extra classes that do some extra fancy stuff like instead of just failing actually should just go to

the site it's spitting out the link that it failed on and it's spitting out the

output so that link is a live link so this is because the site is still

running this isn't like a Travis run where it disappears you can go straight to the site itself so you can you

yourself can click around and see what what might be wrong and you can see the rendered HTML when the test failed

because what happened is the b-hat test could not see that string in that row

and what I also did was with put into class where it spits out the watchdog

blocks that's what you're seeing here so we can debug we'll get more information on it out of these failures so if I

click that I can see the actual site or I think this is the static one notice

the actual site so I'm like debugging I'm like okay is the server is the Search API server and go in there and

figure out everything is actually indexed so this this I don't think it's the index I think that might not be

wrong here I look for cup of content I realize okay alright this is running install profile so all this data is

coming from a CSV file it's not like it's not the live site so the test is

looking for this analytical chemistry but it's not there so if I search for

chemistry I see oh well the search results are working right it's giving me a result it's not finding the one I'm

expecting and so the test is looking for that string and it's not there I could

either taint change the test or I can actually I realize well

changing the test might not necessarily be the right thing but alright because the test was written to also run against

life and so I've done a different server we actually cloned the entire live site

and run the same suite of tests on the live database so some of the tests were written from you live live sites

database so instead of changing the test we're going to go in and change the install profile which has a simple CSV

so I get close to committing it and I think about it hang on you know what maybe this isn't the right way to go and

I realized oh yeah we're importing dynamically there's it's all profile so if I just add that missing core so they

call them then it should work so you can actually edit on github make a small change because any push counts github

edit is a push it'll deploy once I say this it'll deploy

yeah pauses I usually do this live I'm finding life easier now there we go all

these videos and editing sorry so instead of coming in directly I'm gonna use github zone web interface to

create a pull request by choosing a new branch and it's a two-step process you

create the branch create the message and then it takes you to the form to create the pull request and so right before I

submit this pull request up because this is what's going to trigger the whole cloning and test running I want to just

double-check and make sure my settings

are right

testing hat github attack check check check that's all correct I want to run that's

myself profile on a custom one and I want to reinstall so it'll actually wipe out the database and fully run the

install profile and the hat tests on every push

this is not even right video that's why

all right so there I submitted the form and then github pings my server and then

dynamically gets a response and says yes yes I'm deploying and it puts links in

there so you can get back to your site and it says pending right so the deploys

pending that's my icon because it's my API token I sometimes put a box API took

and it has a different icon and there it is so it just creates it clones it pulls

the information from the PR let the weight back to the PR it that images

from the PR payload so I can just load it cuz it gives us a full URL to the picture of the author

when you do

yeah and then here yeah so we notified github

of the deployment so in the github UI we have a link to all our PR environment on

our server which is I had comments originally and I took him out

they were like github comments we automatically posting saying hey you have a new environment and here's the link or whatever

I thought those I said it ah maybe that's too obnoxious and get it up baby I didn't really like it either

and they made this cool deployment thing but then I realize that the UX stinks on that - people are really drawn in to

that deployed link so eventually you're probably gonna see like a friendly bot in your face in the comments just to

give you a little more information as to what happened but that is a little direct link that's the length of the

site and that's a link to the dashboard you have a couple warnings but it's

still right and then you go to the site cleared it so you automatically gets a

title based on the site but you can override that so now I have two copies

of my site so I want to do a little more so I try to edit it to get a failing

test let me go directly to the video I wanted to show

okay so once you get test-driven development some of your PR there just

to get the test working or to make a change like it the test working and that can be cool so and this one I've finally

figured out like what's going on I know the CSV is failing or it doesn't have

the right same data so I came in here

that we saw this far and fast for it

okay when you push again

it's injects a second Michaelis

here we go we're going live [Laughter]

my test failed I want to go at a simplest way to make a PR is just ahead your existing test taking cherries

there's the search who's that

thinking about making changes to do some white space

pull requests dynamically boom there we go in their shop server

there's the new PR actually have a so it takes like it'll take a little while to

install [Music]

yeah this is the one okay so when you get a failing test sometimes deployed

works fine like that's the update DV and other things you want to test that deployment test feel so github shows you

dead multi check thing trouble has the very similar with a lot more checks and

that's a really awesome thing I need more checks definitely need more checks like that but here we have side by side

there's the failure we've already figured out what's wrong so let's skip somewhere we watch watch the magic

happen okay so it's on the right is the

test running the Hat you can actually run dress commands to so we include a drug search index in the test because

we've really it's like critical to psyche to make sure people can access that data so in the test we actually do

the reverse is the index and hopefully it's gonna pass is less there's a couple

steps after the index to make sure I can go to the page I type in a word I see there a word on that page and then when

that passes it'll notify github boom two checks have passed so the Hat tells you

how much memory like how much time you can see the details deaf shop test passed up shuffles employ pass and

that's it you get to go you click merge click click merge driver

oh yeah those dashboards you can watch it watch all the action this things

start happening without you having to click because these little widgets are dynamic so when you click merge we want

to get rid of that second PR environment and the merge is a push to master so the

master environment will automatically get a deploy so I'm going to put a

message in my emerge commit click commit merge and then without doing anything is

the over here the weak site you would deploy sign-on master and that does all

that everything gets rid of the database and files and Apache virtual host and everything else and then if you reload

you've either this project agent will go away and I have a dynamic JavaScript thing to erase the Box yes you know so

that's it it's like the full cycle that you want to get to with all your work

because you know I know once that it's five minutes for the install profile

it's like twenty minutes for the live database because it's indexing the entire thing so there's plenty you could

do to like shrink your database or figure out how to make me fast but I know it's gonna work like I've updated

controls and it broke a whole functionality of the site and this is an invoicing system dealing with money

between research laboratories like they need it to work every day for their job

so I'm putting in these tests in there aren't just for pushing buttons I do a test that tests both uploader so I have

like four spreadsheets in my test folder for bad data for bad data with dates bad data with this and I actually test that

they get rejected and test that they get the right error message so they can the people using it know this is what a live

test run looks like so because the master site was horribly had that hook set it's just configured to run tests

every time any push happens another test run happens again on the rear invar this is kind of a workflow I use

sometimes I'll create a mirror environment which is the production database copy and then the PR is just

from the install profile and those two those paths and then once it's merged it runs again on the mirror so the tests

really are checking that like that really works against the live data and

that way we really reduce the risks of things going out but yeah for a long time they would forget it was one of

those field collection modules or something like I couldn't update it to the new version for like six months

because it was just making a field just disappear so I just I had to put a test

in there because I can't forget it and trying doing an update and it was like all right they haven't fixed that yet so

now I never merge and you know I'm good home you can like lock it down completely and say don't even allow me

to merge unless it receives a green check box you know so you can get really really strict with your apps what

happens to be a merged conference began working together we've got to do it somewhere github

doesn't trigger the notifications the deployment notifications and other things if there's a merge conflicts I

actually have to handle that yeah because camera the exact workflow but you get that merged notification on the

pull request page and it would say cannot and then I had to like send a

separate notification to the deployment basically nothing would happen because it wasn't it wouldn't be able to do

anything since I sent a second modification of the deployment API so on github it shows like oh I'm out of date

please update being or something so it wasn't like a clean solution that I find

just getting into the cycle opal you avoid that more because you're you're on merging faster and the problem we get to

people working parallel working yet both go on adding modules and because a lot changed by human people basically yeah

it was like yeah I like one of the common things as a lead developer you

all have to like merge something and then the ten open developer branches and all need updating and that's a feature

request too just because we could do that it's just code it into the Drupal thing when we get a hook just go ahead and do it let's do it because we have

all the metadata branches we just do git pull git merge and push and so there's more things that are possible that's the

end of the general general presentation I didn't even get to the dashboard but

once you fill up a lot of sites like this so each you know each of those is a digital site and the environments on the

right change color and graphics depending on what they're doing you can see the version of Drupal all up-to-date

what seven class an old screenshot but you get the idea so for more information

the community page is a simple placeholder static on get dep shop but the link there's link to github link to

the Gator chatroom documentation all this stuff I mean this is all eager so

I'm always in the egregore chat rooms as well like I said we're offering like a support plan or sponsors here and then

you may have seen our flyer in near the lunch and loved to talk about anything from just community work to organizing

to like we're part basically again you know firming this stuff to be a reliable

host by providing the support same kind of support you get from you know a close

source whatever hosting provider so any questions

no come on droplet yeah how many how

many PRS are like running things could you have in there there's like no traffic on those so I mean it all

depends it's a lot it's a lot you can put it yeah uh no there's no limit I mean you'd its database size and like

even when you're running a full test run it's like maybe slow but it's not gonna yeah you know just don't yeah don't use

it with your live traffic side you know keep it separate but yeah you could be

surprised I gotta weigh over 2 or 4 cubic Sciences like dozens and dozens and the Granite's on it right now it's

all great but good pr's work there's a little bit of API integration there yeah

there's a separate module you go in and mail it not yet but it'll take it no

it'll take any any webhook so it's not it's just not smart if the API and again

it's a module so I could show you you could go in there copy and paste the desktop bit bucket module and it's

basically a URL and so it'll take a dumb hit from any any web hook and just pull

on all the environments so you can use you can use give out in that way and

like I said we're trying to finance the most important features and make pushed on things so just like show up in the

community and say like well if we really wanted to get get left and Mars in there right or whatever they can the comers

requests I would be nothing motivates we wanted somebody just speaking up and

saying chatroom like let's try to do this and again if your drivel developer I could point at the module and you

could edit it it wouldn't take long yeah well get that shop has a link to

the all the other pages so if you forget just how to get deaf shop just to be on

github the main repo is this one which is a slash snapshot and this is the this is

just the install scripts and Travis and some other things the second repo is dev

master which is the actual Drupal distribution and that's on drew blood org as well so all the Drupal code is in

here modules def shop - shop bitbucket

it's pretty straightforward yeah yeah

this more you use this as like you have staging type thing like what are you

doing it's more comment but I do its production I'll say anything like not in terms of that but like you're doing

local development with something else and then I mean I run it I develop this

myself so I wrote locally yeah there's a robo file in there that I am a doctor

compose the mo file and so it's like a little mini developing environment if

you just get Robo and call Robo up in the directory and then you can put that

into your flight eager stack so you have like that could be like one of your

servers or we do have a totally separate just yeah these acres just is a

distribution that's we essentially don't use it just provision to configure on stage you're not hooking up like it's a

local server to a dancer not directly it's just we just push to get any I mean

use Josh to like sync databases and stuff but there's no extra like special API integration beyond rush you know

it's something that was always talked about and thought about and like fetcher as long as long ago I totally used to do something like that it's just you know

it's open source there's so many pieces that need work that you know don't get

there that's I should mention this all

runs on like the acre three code is that I've been updating the provision project has a separate CLI for a provision for

so that it works as a standalone thing instead of like dress commands so this

is actually working well for local too so we might be able to use this if this is running local and it's also running the deaf shop the mega servers we might

be able to more easily kind of wire them together who is stabilities schedule like

passively at two o'clock or won't miss the kickoff I'm sure it's all popeye dress commands

so you can called rush hm for the alias and then it's like posting tasks - task is the name of the is the

command and then it's like deployed it's all in dress commands so if we wanted to

automate it again cron job or whatever I don't want you to go yeah yeah yeah like

you want yeah baby I know I can schedule Jenkins first time

yep there's a hum yeah yeah it's all

everything that happens in these tasks is passed to the backends is all theirs back in commands for everything

let's get going to the after party a little early maybe no alcohol

so it's a yeah it's a big Phillies Nike for sale its Billy Billy technique event is feeling tech week so yeah I think

people it's like it ends right at this event ends right at 5:00 so we all want

to hear it didn't have a time on there though I think it's at 5:00 who knows

yeah anyway thanks for coming in the up in the chat room or on Twitter or wherever

English (auto-generated)


 

DevShop is an open-source Drupal hosting platform that can be used for production, development and testing environments. 

Powered by a Drupal web interface, simply enter your websites source code, name your environments, pick your branches, and start running Behat tests on every git push.

DevShop allows you to setup automated Behat testing without writing any scripts, creating any YAML files, or learning about Jenkins or Docker. 

Easily launch new environments for every pull request or every branch of your git repository.

Come to this session to get a hands-on walkthough of setting up a Drupal site from scratch for automated Behat testing.