Skip to content

Commit

Permalink
Initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
sayan goswami committed Jul 4, 2023
1 parent a0dbcc6 commit 8f3b14d
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 3 deletions.
1 change: 1 addition & 0 deletions bin/ci/_includes.sh
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ allowed_failures=(
)
if [[ " ${allowed_failures[*]} " =~ " ${ORCA_JOB} " ]]; then
set +e
export ORCA_IS_ALLOWED_FAILURE="TRUE"
notice "This job is allowed to fail and will report as passing regardless of outcome."
fi

Expand Down
2 changes: 2 additions & 0 deletions config/services.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ parameters:
env(ORCA_PACKAGES_CONFIG_ALTER): ~
env(ORCA_PHPCS_STANDARD): "AcquiaDrupalTransitional"
env(ORCA_TELEMETRY_ENABLE): "false"
env(ORCA_IS_ALLOWED_FAILURE): "%env(ORCA_IS_ALLOWED_FAILURE)%"

services:

Expand All @@ -30,6 +31,7 @@ services:
$packages_config: "@=container.getParameter('ORCA_PACKAGES_CONFIG') === '' ? 'config/packages.yml' : parameter('ORCA_PACKAGES_CONFIG')"
$packages_config_alter: "%env(ORCA_PACKAGES_CONFIG_ALTER)%"
$telemetry_is_enabled: "%env(bool:ORCA_TELEMETRY_ENABLE)%"
$is_allowed_failure: "%env(ORCA_IS_ALLOWED_FAILURE)%"
public: true

Acquia\Orca\:
Expand Down
16 changes: 16 additions & 0 deletions src/Domain/Composer/ComposerFacade.php
Original file line number Diff line number Diff line change
Expand Up @@ -261,6 +261,22 @@ private function runComposer(array $command, array $args = [], string $cwd = NUL
$this->processRunner->runExecutable('composer', $command, $cwd);
}

/**
* Set config to root composer.json.
*
* @param array $config
* A list of config elements to be removed, e.g., "platform".
*/
public function setConfig(array $config): void {
if (empty($config)) {
throw new \InvalidArgumentException('No config provided to remove.');
}

$this->runComposer([
'config',
], $config);
}

/**
* Validates a composer.json.
*
Expand Down
50 changes: 47 additions & 3 deletions src/Domain/Fixture/FixtureCreator.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
use Acquia\Orca\Domain\Package\Package;
use Acquia\Orca\Domain\Package\PackageManager;
use Acquia\Orca\Exception\OrcaException;
use Acquia\Orca\Helper\EnvFacade;
use Acquia\Orca\Helper\Filesystem\FixturePathHandler;
use Acquia\Orca\Helper\Process\ProcessRunner;
use Acquia\Orca\Options\FixtureOptions;
Expand Down Expand Up @@ -135,6 +136,11 @@ class FixtureCreator {
*/
private $fixtureCustomizer;

/**
* @var \Acquia\Orca\Helper\EnvFacade
*/
private EnvFacade $env;

/**
* Constructs an instance.
*
Expand Down Expand Up @@ -169,7 +175,22 @@ class FixtureCreator {
* @param \Acquia\Orca\Domain\Fixture\FixtureCustomizer $fixtureCustomizer
* The fixture customizer.
*/
public function __construct(CloudHooksInstaller $cloud_hooks_installer, CodebaseCreator $codebase_creator, ComposerFacade $composer, ComposerJsonHelper $composer_json_helper, DrupalSettingsHelper $drupal_settings_helper, FixturePathHandler $fixture_path_handler, FixtureInspector $fixture_inspector, GitFacade $git, SiteInstaller $site_installer, SymfonyStyle $output, ProcessRunner $process_runner, PackageManager $package_manager, SubextensionManager $subextension_manager, VersionFinder $version_finder, FixtureCustomizer $fixtureCustomizer) {
public function __construct(CloudHooksInstaller $cloud_hooks_installer,
CodebaseCreator $codebase_creator,
ComposerFacade $composer,
ComposerJsonHelper $composer_json_helper,
DrupalSettingsHelper $drupal_settings_helper,
FixturePathHandler $fixture_path_handler,
FixtureInspector $fixture_inspector,
GitFacade $git,
SiteInstaller $site_installer,
SymfonyStyle $output,
ProcessRunner $process_runner,
PackageManager $package_manager,
SubextensionManager $subextension_manager,
VersionFinder $version_finder,
FixtureCustomizer $fixtureCustomizer,
EnvFacade $env) {
$this->cloudHooksInstaller = $cloud_hooks_installer;
$this->codebaseCreator = $codebase_creator;
$this->composer = $composer;
Expand All @@ -185,6 +206,7 @@ public function __construct(CloudHooksInstaller $cloud_hooks_installer, Codebase
$this->subextensionManager = $subextension_manager;
$this->versionFinder = $version_finder;
$this->fixtureCustomizer = $fixtureCustomizer;
$this->env = $env;
}

/**
Expand All @@ -199,6 +221,7 @@ public function __construct(CloudHooksInstaller $cloud_hooks_installer, Codebase
public function create(FixtureOptions $options): void {
$this->options = $options;
$this->createComposerProject();
$this->configureComposerExitOnPatchFailure();
$this->removeComposerConfigPlatform();
$this->replaceCoreRecommendedWithCore();
$this->fixDefaultDependencies();
Expand All @@ -223,6 +246,28 @@ private function createComposerProject(): void {
$this->codebaseCreator->create($this->options);
}

/**
* Configures composer "composer-exit-on-patch-failure" parameter.
*/
private function configureComposerExitOnPatchFailure(): void {

if ($this->env->get('ORCA_IS_ALLOWED_FAILURE')) {
return;
}

$this->output->section("Setting composer-exit-on-patch-failure to false.");
try {
$this->composer->setConfig([
'extra.composer-exit-on-patch-failure',
'false',
'--json',
]);
}
catch (\Exception $e) {
$this->output->writeln("Failed to remove Composer platform requirements.");
}
}

/**
* Remove "config.platform" parameter from fixture root composer.json.
*/
Expand Down Expand Up @@ -431,7 +476,7 @@ private function shouldSymlinkNonSut(Package $package): bool {
*/
private function addAssetPackagistPathRepositories(): void {
$this->composerJsonHelper->addRepository(
'asset-packagist',
'asset-packagist',
'composer',
'https://asset-packagist.org'
);
Expand Down Expand Up @@ -591,7 +636,6 @@ private function verifySut(): void {
* Add packages defined in "allow-plugins" config of SUT to root composer.
*/
private function addSutAllowedPluginsToRootComposer(): void {

$this->output->section("Adding Allowed Plugins from SUT");

$package = $this->options->getSut();
Expand Down

0 comments on commit 8f3b14d

Please sign in to comment.