drainpipe icon indicating copy to clipboard operation
drainpipe copied to clipboard

Thoughts on how we extend and customize the Tugboat integrations

Open deviantintegral opened this issue 2 years ago • 3 comments

I just went through adding the tugboat configs here to an existing project. Because it already had Tugboat configured, it gave me an opportunity to really see how far I could stretch things. Here's my notes from that process.

  • It wasn't clear to me that checking for sync:tugboat was dynamic. I know the README calls it out, but perhaps composer install could log like "Checking for task sync:tugboat: not found, not added to Tugboat scripts".
  • I think we should document how you can remove the composer config at https://github.com/Lullabot/drainpipe#tugboat after setup if you need to do significant overrides.

We needed to extend the tugboat config to add:

  1. Visual diff URLs
  2. A redis service (should this have come automatically?)
  3. An additional dependency on a redis service
  4. Aliases for multisites
  5. A storybook service
  6. Commands in mariadb to create additional databases and permissions for multisite databases
  7. A command to clear the redis cache on start to ensure it's not stale in incorrect due to an unclean shutdown.

We ended up just not tracking upstream updates for now. But perhaps we could reuse the existing twig support to allow sites to customize the tugboat config? Also, I expected that task hooks were automatic, so that if we had a redis service, it would call task tugboat:redis:build and so on. It turns out that's hardcoded just for the PHP service.

deviantintegral avatar Sep 14 '23 12:09 deviantintegral

@deviantintegral would it be at all possible to get access to the existing project so I can see what changed you've had to make specifically?

justafish avatar Sep 28 '23 11:09 justafish

One thought I had for approaching this would be to support a .tugboat/config-overrides.yml which is merged with the .tugboat/config.yml prior to submitting it to the Tugboat API. Unfortunately Tugboat has no such feature itself.

tess-ten7 avatar Dec 20 '23 19:12 tess-ten7

Solving this would also give users a way to work on and work around somewhat-bugs like https://github.com/Lullabot/drainpipe/issues/410.

deviantintegral avatar Feb 13 '24 12:02 deviantintegral