Acquia Copilot is a conversational AI connected into our product documentation and knowledge base. Ask Copilot about product features, technical details, troubleshooting and how to get started with Acquia products.
The Validate Code Structure job validates that your repository is following the best practices in terms of which files are committed or ignored.
This job is permitted to fail. However, failure to follow the best practices can result in unexpected outcomes during the rest of the pipeline. Notably, it can result in problems with your deployment artifact.
Manage Secrets job
The Manage Secrets job is responsible for SSH key management.
Test Drupal stage
Test Drupal job
The Test Drupal job runs three types of tests. For each type, the tests run only if the defined conditions are met.
Test Name
Purpose
Conditions
To enable:
PHP Code Sniffer
Validates that your custom code follows the established Drupal coding standards.
Your application has acquia/coding-standards or squizlabs/php_codesniffer in the root composer.json require or require-dev array.
Your root directory contains phpcs.xml or phpcs.xml.dist.
The SAST jobs statically scan your code for security vulnerabilities. This may be one or more jobs depending on the types of files committed to your repository. For example:
If PHP files are detected, jobs are scanned with phpcs-security-audit.
If Ruby files are detected, jobs are scanned with brakeman.
The Secrets Detection job scans your code to confirm that you have not accidentally committed any secrets, such as login credentials, to your repository.
If you enable the Test Drupal job, Code Studio sets up the Drupal site before it performs the tests. For more information about enabling the Drupal site setup during the pipeline, and choosing a setup strategy, see Selecting the Drupal setup strategy in Code Studio.
Deploy Drupal stage
Deploy Branch to Acquia and Deploy Tag to Acquia jobs
The Deploy Branch to Acquia and Deploy Tag to Acquia jobs construct a build artifact that includes committed, contributed, and vendor directories. For example, it includes vendor and docroot/modules/contrib even if these directories are not committed to the source repository.
This job uses aclipush:artifact to create the artifact.
Each time a pipeline runs in Code Studio on any branch, the system generates an artifact from that branch and pushes it to Acquia Cloud. The uploaded branch appears on Acquia Cloud with the name: CodestudioBranchName-codestudio-build
Note
CodestudioBranchName refers to the branch name in Code Studio where the pipeline ran.
To deploy the branch to any environment on Acquia Cloud, follow these steps:
Log in to Acquia Cloud.
Select your application and go to the Environment section.
Select the Switch code button for your target environment.
Enter the branch name, using the same branch name as in Code Studio. The branch name on Acquia Cloud appears as CodestudioBranchName-codestudio-build.
Select the branch for deployment.
Enabling deploy tags in Code Studio
To automate the tag creation process during deployment, set the ACQUIA_JOBS_DEPLOY_TAG_ARTIFACT CI/CD job to true in your Code Studio project.
After you set this job to true, Code Studio automatically performs the following steps every time you create a tag in Code Studio:
Generates a deployment artifact
Tags the artifact
Pushes the tag to Cloud Platform
Deploys the tag to production
To configure this variable for all tags:
Modify the settings of your CI/CD variable ACQUIA_JOBS_DEPLOY_TAG_ARTIFACT.
Do one of the following:
Clear the Protect variable checkbox.
Select the Protect variable checkbox and configure Code Studio to protect your tags automatically at https://code.acquia.com/help/user/project/protected_tags.md.
To automatically deploy tags to an environment other than production, set the ACQUIA_CLOUD_SOURCE_ENVIRONMENT_ID CI/CD variable to be the environment ID of your target environment.
The Composer Update job runs composerupdate against your repository, and submits any changes in a merge request.
Deprecated Code Update job
The Deprecated Code Update job scans your custom code, such as custom modules and themes, for deprecated code. Using Drupal Rector, the job automatically replaces the deprecated code with updated, supported replacements. This is designed to preserve the same functionality, while removing any dependencies on deprecated functions, methods, classes, and so on.
The Validate Code Structure job validates that your repository is following the best practices in terms of which files are committed or ignored.
This job is permitted to fail. However, failure to follow the best practices can result in unexpected outcomes during the rest of the pipeline. Notably, it can result in problems with your deployment artifact.
Manage Secrets job
The Manage Secrets job is responsible for SSH key management.
Test Drupal stage
Test Drupal job
The Test Drupal job runs three types of tests. For each type, the tests run only if the defined conditions are met.
Test Name
Purpose
Conditions
To enable:
PHP Code Sniffer
Validates that your custom code follows the established Drupal coding standards.
Your application has acquia/coding-standards or squizlabs/php_codesniffer in the root composer.json require or require-dev array.
Your root directory contains phpcs.xml or phpcs.xml.dist.
The SAST jobs statically scan your code for security vulnerabilities. This may be one or more jobs depending on the types of files committed to your repository. For example:
If PHP files are detected, jobs are scanned with phpcs-security-audit.
If Ruby files are detected, jobs are scanned with brakeman.
The Secrets Detection job scans your code to confirm that you have not accidentally committed any secrets, such as login credentials, to your repository.
If you enable the Test Drupal job, Code Studio sets up the Drupal site before it performs the tests. For more information about enabling the Drupal site setup during the pipeline, and choosing a setup strategy, see Selecting the Drupal setup strategy in Code Studio.
Deploy Drupal stage
Deploy Branch to Acquia and Deploy Tag to Acquia jobs
The Deploy Branch to Acquia and Deploy Tag to Acquia jobs construct a build artifact that includes committed, contributed, and vendor directories. For example, it includes vendor and docroot/modules/contrib even if these directories are not committed to the source repository.
This job uses aclipush:artifact to create the artifact.
Each time a pipeline runs in Code Studio on any branch, the system generates an artifact from that branch and pushes it to Acquia Cloud. The uploaded branch appears on Acquia Cloud with the name: CodestudioBranchName-codestudio-build
Note
CodestudioBranchName refers to the branch name in Code Studio where the pipeline ran.
To deploy the branch to any environment on Acquia Cloud, follow these steps:
Log in to Acquia Cloud.
Select your application and go to the Environment section.
Select the Switch code button for your target environment.
Enter the branch name, using the same branch name as in Code Studio. The branch name on Acquia Cloud appears as CodestudioBranchName-codestudio-build.
Select the branch for deployment.
Enabling deploy tags in Code Studio
To automate the tag creation process during deployment, set the ACQUIA_JOBS_DEPLOY_TAG_ARTIFACT CI/CD job to true in your Code Studio project.
After you set this job to true, Code Studio automatically performs the following steps every time you create a tag in Code Studio:
Generates a deployment artifact
Tags the artifact
Pushes the tag to Cloud Platform
Deploys the tag to production
To configure this variable for all tags:
Modify the settings of your CI/CD variable ACQUIA_JOBS_DEPLOY_TAG_ARTIFACT.
Do one of the following:
Clear the Protect variable checkbox.
Select the Protect variable checkbox and configure Code Studio to protect your tags automatically at https://code.acquia.com/help/user/project/protected_tags.md.
To automatically deploy tags to an environment other than production, set the ACQUIA_CLOUD_SOURCE_ENVIRONMENT_ID CI/CD variable to be the environment ID of your target environment.
The Composer Update job runs composerupdate against your repository, and submits any changes in a merge request.
Deprecated Code Update job
The Deprecated Code Update job scans your custom code, such as custom modules and themes, for deprecated code. Using Drupal Rector, the job automatically replaces the deprecated code with updated, supported replacements. This is designed to preserve the same functionality, while removing any dependencies on deprecated functions, methods, classes, and so on.