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.