Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docksal documentation #3268

Merged
merged 7 commits into from
Dec 17, 2018
Merged

Conversation

shelane
Copy link
Contributor

@shelane shelane commented Nov 28, 2018

Changes proposed:

(What are you proposing we change?)

  • Adding documentation for the Docksal environment
  • Fixing links for alternative environment tips
  • Making resource links clickable for ACSF setup page

At the request of @mikemadison13, I put together this documentation page on using BLT in the Docksal environment. I had a little help from @lpeabody in the direction of what should be included in this page. This PR is for 10.0.x, but should be committed to 9.2.x as well.

@mikemadison13 This addresses Les's suggestion as well with an additional comment on setup strategy. BLT should really have more extensive documentation on that as it specific to BLT and not an environment. I rerolled this to 10.0.x since the DDEV docs were included and there would have been a merge conflict with the change to the page with the list of environment tips.

@mikemadison13
Copy link
Contributor

@shelane @lpeabody think the new docs help there. however, i'm still confused, why not just use blt sync if you want to sync and blt setup if you want a clean install? significantly simplifies the command structure. am i overlooking something that blt setup -D setup.strategy=sync does that blt sync does not?

@lpeabody
Copy link
Contributor

lpeabody commented Nov 28, 2018

@mikemadison13 In 99.9999% of cases there is probably going to be no functional difference between the two of those individual commands. It might be a philosophical question: manually running commands to do different things, or, running a smaller set of commands whose behavior is influenced by configuration. BLT has an extremely strong configuration model, and so it benefits us to leverage that and integrate it with Docksal's robust custom command architecture.

I'll provide some use cases:

Developing and launching a new site
You've been building a profile and testing the site installation process by running fin blt setup. This installs the site. Once the site has launched, you now want the development workflow to synchronize with the remote before starting new work. You update sites/default/blt.yml to reflect the following:

setup:
  strategy: sync
drush:
  aliases:
    remote: group.siteid

You make this change once, it is shared with everyone, and everyone continues to run the same, single command, fin blt setup. Instead of the site installing, the site now synchronizes for everyone.

Docksal-enabled CI environment
I want to continuously verify that my profile installs successfully and existing sites also synchronize correctly. I have two different environment-specific blt.yml files in my default site directory (install.blt.yml and sync.blt.yml). Each of those contain different behat/setup configuration for installing/syncing sites and then running different sets of Behat tests on each. I have a Docksal command fin test-environment which accepts an argument meant to be the environment indicator. That command in turn runs fin blt setup --environment=$1 && fin blt tests --environment=$1, which will setup my site according to configuration as well as run tests against that site according to the same set of configuration.

Finalizing thoughts
The point is, instead of sending an @everyone notification to your developers in Slack to say "as of this commit please start using fin blt sync instead of fin blt drupal:install, you standardize everyone on just running fin blt setup and change the project's configuration to perform a new site setup differently. You can then rope this into Docksal commands like I did above for implementing higher level project operations, such as testing site setups in different environment scenarios like above.

If we're going to be providing documentation on how to best integrate BLT with Docksal, we should be providing some level of philosophical guidance around normalizing your project's command architecture since that is one of the biggest benefits of using Docksal.

EDIT: Just to be clear, I am not saying "this is the way you need to use Docksal with BLT". It is very much open to interpretation and experimentation, that's what makes our jobs so fun :) This is my take on how Docksal and BLT can be integrated in a symbiotic way.

@shelane
Copy link
Contributor Author

shelane commented Nov 28, 2018

I have included the text about the use with a CI environment.

By default, BLT is set to work with Drupal VM. It is easy to set up to use with Docksal, but
you will have to install the Docksal `blt` addon command and make some configuration changes.

## Setting Your Project to Use Docksal
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe substitute in fin config generate --stack=acquia here. This will set up the project with memcache and solr as well

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good call, makes sense given what we're integrating with...

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added with the preferred fin config set DOCKSAL_STACK=acquia.

@mikemadison13 mikemadison13 merged commit cd6c83c into acquia:10.0.x Dec 17, 2018
@shelane shelane deleted the Docksal-Documentation branch January 9, 2019 16:43
mikemadison13 pushed a commit to mikemadison13/blt that referenced this pull request Feb 21, 2019
mikemadison13 pushed a commit to mikemadison13/blt that referenced this pull request Feb 21, 2019
mikemadison13 added a commit that referenced this pull request Feb 25, 2019
* Fixes #3265 to expand alias documentation. (#3399)

* Fixes #3401 for 9.2.x to update devel.

* Moved pipelines-deploy from build event to post-deploy event (#3374)

* Docksal documentation (#3268)

* Add links to docsal and ddev pages.

* Updates ignore-existing to include .editorconfig. (#3300)

Fixes #3169 
--------

Changes proposed:
---------
(What are you proposing we change?)

- adds the .editorconfig file to the ignore list for blt updates

* Updating BLT's docs to remove nvm and point to Cog's documentation for theme installation. (#3313)

* Fix broken link to Cloud Hooks docs. (#3331)

* Added steps to install nfs-utils and enable access via firewalld; without it DrupalVm gets stuck at mounting NFS (#3376)

* Updates release and readme docs. (#3382)

* Updates Travis and Pipelines to PHP 7.1 by default.

* Adds FAQ for drush 8/9 permission denied issue. (#3264)

* Add setup instructions for PHPStorm + PHPUnit (#1787) (#3198)

* Update INSTALL.md (#3273)

* Speed up deploys with shallow fetching (#3271)

Before:
```
real	4m11.340s
user	1m3.430s
sys	1m23.638s
```

After:
```
real	3m14.776s
user	0m47.570s
sys	1m6.415s
```

* Fixes #3217 to provide acsf-init-verify as part of git hooks and blt validate. (#3218)

* Updating Drupal VM config versions. (#3328)

* Fixes #3345 to run db updates even when config strategy is none. (#3363)

* Fixes #3362 to better identify why the site URI is not found. (#3369)

* Test tests:acsf:validate (#3392)

* Test tests:acsf:validate

* Delete README.md

Remove cloud hook readme.

* Update AcsfHooksTest.php

* Update AcsfHooksTest.php

* Update DeployTest.php

* Fixes #3383 to backport Pipelines update to 9.2.x.

* Increase wait timeout. (#3163)

* Fixes #3122 to remove misleading jmeter example. (#3230)

* Fixes #3223 to update git docs. (#3226)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants