Hello everyone, since (partially) moving to an Apple M1 laptop I’ve had to find a replacement for VVV as a local environment and I’m using the opportunity to re-think my local and remote deployment workflow. I would like to write up a small guide to share with everyone (probably on dev.to), but want to make sure the whole thing is sound first.
Basically I use Laravel Valet for my local environment (here’s a good guide on how to install it + homebrew on the m1), download bedrock via composer, use that as my development environment and then use wordmove to push / pull to staging / production. I would maintain the composer.json only locally, require everything there and then push accordingly.
There are advantages and disadvantages to this compared to Trellis / VVV (most of all parity), if anybody is interested in getting into the details let me know.
Wordmove — My Question
Anyways, on to my question: how to best push a local bedrock install to a production / staging site. I could either push the bedrock folder including the vendor, config and web folders and exclude the .env, composer.json, composer.lock or manually copy everything above the /web/ folder and merely push / pull the /web/ folder.
My abbreviated movefile.yml (WIP) looks something like this now:
local: vhost: http://<local_site>.test wordpress_path: <path_to_bedrock_folder> database: name: <local_db> user: <local_user> password: "<local_pw>" host: localhost paths: wp_content: web/wp/wp-content uploads: web/app/uploads plugins: web/app/plugins mu_plugins: web/app/mu-plugins themes: web/app/themes languages: web/app/languages
Alternatively I could point the wordpress_path not to the bedrock folder but the /web/ folder and change paths accordingly:
paths: wp_content: wp/wp-content uploads: app/uploads plugins: app/plugins mu_plugins: app/mu-plugins themes: app/themes languages: app/languages
I would then have to either download bedrock via composer on my staging / production server and Push (mirror) from local, this would take care of everything above /web/ or simply manually copy the necessary folders (which I assume are vendor and config).
I am also open to ideas of any kind on how to improve this.