Giter Club home page Giter Club logo

Comments (9)

greylabel avatar greylabel commented on May 28, 2024

I would propose the idea of making the type of deploy artifact configurable/plug-able so we can easily add support for non-Acquia hosting services that need a differently structured deploy payload.

from blt.

grasmash avatar grasmash commented on May 28, 2024

@danepowell Can you provide more detail around the constraints that ACSF puts on settings.php, and why the pose issues? We can then brainstorm solutions.

I agree I'd like to prevent needing multiple deployment artifacts of different types.

@greylabel We did just merge a PR that will let you more easily customize the files that are copied into the deployment artifact, and those that are ignored. Though, we don't have a well developed concept of deployment artifact "types" which I think is a bit of a rabbit hole. In what way do you need to modify the artifact?

from blt.

greylabel avatar greylabel commented on May 28, 2024

@grasmash That might address most of my initial concerns. I was thinking about not needing to deploy Acquia hooks, factory-hooks, etc to non-AH. The other case I am considering is a deployment including rather involved front-end workflows/artifacts. Let me explore this a bit more and see where I run into hard edges with the new functionality you mentioned.

Speaking of a rabbit hole...

This does touch more broadly on how environment configuration is considered throughout the project and looking at alternative approaches to how local, hosting, and CI are differentiated. To @danepowell's point, right now we address environmental differences in settings.php, but I think this is a higher-level issue for the project and we will need to solve similar problems in many of the tasks, deployment artifacts in this case.

By not treating everything non-AH as local, but treating all environments as high-level peers, many of BLT's tasks could be made more contextual to the environment in which they are running. Thinking there might be reasons to have commands like setup:travis / setup:tugboat or deploy:acquia / deploy:internal-hosting. Even if only the Acquia options are bundled with BTL, I see value in extensibility, especially with the ever-growing number or local, CI, and hosting solution out there.

from blt.

grasmash avatar grasmash commented on May 28, 2024

@greylabel We did introduce some commands that target local and ci environments specifically--we could expand that to more tasks. See https://github.com/acquia/blt/blob/8.x/template/build/core/phing/tasks/ci.xml.

from blt.

danepowell avatar danepowell commented on May 28, 2024

So ACSF actually does a checksum of settings.php to make sure that it's bit-for-bit identical to the copy it provides here:
http://cgit.drupalcode.org/acsf/tree/acsf_init/lib/sites/default/settings.php?h=8.x-1.x

It runs this verification whenever acsf_init is run. BLT runs acsf_init during deploys to put this settings.php in place, and then ACSF runs the copy of acsf_init included in your project whenever it deploys code to verify that settings.php hasn't changed.

As you can see, that settings.php will not work as-is on ACE, and there's no way at all that I can see to extend or override it out of the box. I think it will be necessary to patch the ACSF module to make settings.php more flexible. Ideally we could get this patch accepted upstream, but more likely we'd have to maintain it locally.

from blt.

grasmash avatar grasmash commented on May 28, 2024

@danepowell I agree that the correct path forward is to make a change in the ACSF module upstream. I'm strongly opposed to maintaining a patch. We should have a discussion with the ACSF team and agree on a mutually beneficial solution.

from blt.

danepowell avatar danepowell commented on May 28, 2024

In the meantime, for anyone needing to deploy to ACE and ACSF in parallel, you should define one environment (let's assume ACE) as the "default" by configuring it in project.yml. Then create a file build/custom/phing/acsf.yml and in it define hosting: acsf and the git config for ACSF. Finally, add a second deploy step to .travis.yml and modify the BLT command like so:
./blt.sh -propertyfile build/custom/phing/acsf.yml -propertyfileoverride deploy

from blt.

msherron avatar msherron commented on May 28, 2024

@danepowell quick add to the steps you listed above: you also need to add the ACSF repo url to the ssh_known_hosts lists in .travis.yml. Otherwise the build will time out while waiting to verify the host. Otherwise this worked out well for me.

from blt.

grasmash avatar grasmash commented on May 28, 2024

This was resolved by #471

from blt.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.