ARTIFACTORY: How to install Drupal using Artifactory php composer repository

ARTIFACTORY: How to install Drupal using Artifactory php composer repository

AuthorFullName__c
Shisiya Sebastian
articleNumber
000006196
ft:sourceType
Salesforce
FirstPublishedDate
2024-10-06T12:18:15Z
lastModifiedDate
2024-10-06
VersionNumber
1

Composer is a powerful dependency management tool for PHP, designed to simplify the process of installing and managing libraries and packages required for your projects. As an open-source platform built on PHP, Drupal leverages Composer to streamline its installation and dependency management. This article will guide you through the steps to install Drupal using Artifactory, ensuring a smooth and efficient setup process.

Create PHP composer Repositories in the Artifactory

In order to successfully install Drupal with all the dependencies, we need two remote repositories.

1. Create a PHP Composer remote repository(php-drupal) for drupal with the below information:

URL : https://ftp.drupal.org/
Registry URL : https://packages.drupal.org/8

2. Create another PHP Composer repository(php-default) for other dependencies
URL : https://github.com
Registry URL : https://packagist.org/

3. Create a virtual PHP Composer repository(drupal-virtual) and aggregate the above two repositories.

Configure the Composer Client to Work with Artifactory

1. Set up config.json
{
"repositories": [{
            "type": "composer",
            "url": "https://ARTIFACTORY_HOST/artifactory/api/composer/drupal-virtual"
        },
        {
            "packagist": false
        }
    ]
}

2. Set up auth.json
{
    "http-basic": {
        "ARTIFACTORY_HOST": {
            "username": "<user>",
            "password": "<token>"
        }
  }
}

Install Drupal

Drupal can be installed using the sample code found here. Feel free to change the branch according to your preferred version.

Composer.json:
{
    "name": "drupal-composer/drupal-project",
    "description": "Project template for Drupal 10 projects with Composer",
    "license": "GPL-2.0-or-later",
    "type": "project",
    "authors": [
        {
            "name": "",
            "role": ""
        }
    ],
    "require": {


        "composer/installers": "^2.0",

        "drupal/admin_toolbar": "^3.4",

        "drupal/apigee_api_catalog": "^3.0",

        "drupal/apigee_edge": "^3.0",

        "drupal/better_exposed_filters": "^6.0",

        "drupal/bootstrap5": "^4.0",

        "drupal/components": "^3.0@beta",

        "drupal/core-composer-scaffold": "^10.3",

        "drupal/core-project-message": "^10.3",

        "drupal/core-recommended": "^10.3",

        "drupal/devel": "^5.2",

        "drupal/easy_breadcrumb": "^2.0",
        "drupal/email_registration": "^2.0@RC",
        "drupal/field_group": "^3.6",
        "drupal/formdazzle": "^3.0",
        "drupal/graphql": "^4.8",
        "drupal/paragraphs": "^1.17",
        "drupal/pathauto": "^1.12",
        "drupal/swagger_ui_formatter": "^4.1",
        "drupal/twig_tweak": "^3.4",
        "drupal/viewsreference": "^2.0@beta",
        "drupal/webform": "^6.2",
        "drush/drush": "^12.5"
    },
    "conflict": {
        "drupal/drupal": "*"
    },
    "minimum-stability": "stable",
    "prefer-stable": true,
    "config": {
        "allow-plugins": {
            "composer/installers": false,
            "drupal/core-composer-scaffold": false,
            "php-http/discovery": true,
            "drupal/core-project-message": true
        }
    }
}

Commands:
composer clearcache
composer install

Sample snippet from the Installation:
 - Downloading phootwork/collection (v3.2.2)
  - Downloading phpowermove/docblock (v4.0)
  - Downloading consolidation/output-formatters (4.5.0)
  - Downloading consolidation/annotated-command (4.10.0)
  - Downloading consolidation/robo (4.0.6)
  - Downloading consolidation/filter-via-dot-access-data (2.0.2)
  - Downloading chi-teck/drupal-code-generator (3.6.1)
  - Downloading drush/drush (12.5.3)
  - Installing composer/installers (v2.3.0): Extracting archive
  - Installing php-http/discovery (1.19.4): Extracting archive
  - Installing drupal/core-composer-scaffold (10.3.5): Extracting archive
  - Installing drupal/core-project-message (10.3.5): Extracting archive
  - Installing symfony/polyfill-mbstring (v1.29.0): Extracting archive
  - Installing symfony/polyfill-intl-normalizer (v1.29.0): Extracting archive
  - Installing symfony/polyfill-intl-grapheme (v1.29.0): Extracting archive
  - Installing symfony/polyfill-ctype (v1.29.0): Extracting archive
  - Installing symfony/string (v6.4.12): Extracting archive
  - Installing symfony/deprecation-contracts (v3.5.0): Extracting archive
  - Installing psr/container (2.0.2): Extracting archive



Reference:
Set up Remote repositories 
Using composer to install Drupal
​​​​​​​