Config for Magento 2
This is a sample configuration that suffices for most magento2 installations:
<?php
namespace Hypernode\DeployConfiguration;
$configuration = new ApplicationTemplate\Magento2(['en_US']);
$productionStage = $configuration->addStage('production', 'magento2.komkommer.store');
$productionStage->addServer('appname.hypernode.io');
return $configuration;
By using the Magento2 ApplicationTemplate, a bunch of default configuration gets set in Hypernode Deploy, and should work out-of-the-box for most magento 2 stores.
Common issues
Error: The default website isn’t defined. Set the website and try again.
When this error is thrown, please assure the app/etc/config.php
has the keys scopes
and themes
. This is needed for the deployment software to be aware of what themes are installed without a database present (during pipeline run).
You can fix this by running the following command and then commiting the result to your codebase:
$ php bin/magento app:config:dump scopes themes
Done. Config types dumped: scopes, themes
Advanced
However, for advanced configurations you can override most steps and variables set my Hypernode Deploy:
Static Content Locales
When the deployer runs bin/magento static-content:deploy
it will require locales to know what to build, this variable is set for this. It is included when you run new ApplicationTemplate\Magento2
or can be overriden with:
$this->setVariable('static_content_locales', 'nl_NL en_US');
Defining custom steps
You potentially need to add custom steps to the deployment, for example to build npm assets or do server actions after deployment.
task('node:install', static function () {
run("npm ci");
});
task('node:build', static function () {
run('npm run build');
});
// Add builder task to run in the pipeline, use addDeployTask to run on the server
$configuration->addBuildTask('node:install');
$configuration->addBuildTask('node:build');