Skip to content

Commit

Permalink
Merge branch 'release/1.2.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
TravisCarden committed Dec 9, 2019
2 parents 0f55814 + 735f259 commit 0be0444
Show file tree
Hide file tree
Showing 41 changed files with 2,424 additions and 191 deletions.
6 changes: 5 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
---
language: php

os: [ linux ]

version: ~> 1.0

php: "7.2"

addons:
Expand All @@ -27,7 +31,7 @@ env:
- ORCA_PACKAGES_CONFIG_ALTER=example/tests/packages_alter.yml
- ORCA_SUT_DIR=${TRAVIS_BUILD_DIR}/../example

matrix:
jobs:
fast_finish: true
include:
- { name: "Static code analysis", env: ORCA_JOB=STATIC_CODE_ANALYSIS }
Expand Down
9 changes: 8 additions & 1 deletion bin/pipelines/packages_alter.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
---
acquia/lightning:
type: drupal-profile
version_dev: "*"
version: ~3.0

# Let Lightning manage its own components.
drupal/lightning_api: ~
drupal/lightning_core: ~
drupal/lightning_layout: ~
drupal/lightning_media: ~
drupal/lightning_workflow: ~
4 changes: 2 additions & 2 deletions bin/travis/after_failure.sh
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#!/usr/bin/env bash

# NAME
# after_failure.sh - Display debugging information in case of build failure.
# after_failure.sh - Display debugging information.
#
# SYNOPSIS
# after_failure.sh
#
# DESCRIPTION
# Displays Drupal error log.
# Displays debugging information in case of failure.

cd "$(dirname "$0")" || exit; source _includes.sh

Expand Down
3 changes: 2 additions & 1 deletion bin/travis/after_script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,10 @@ cd "$(dirname "$0")" || exit; source _includes.sh
# Log the job on cron if telemetry is enabled.
if [[ "$TRAVIS_EVENT_TYPE" = "cron" && "$ORCA_TELEMETRY_ENABLE" && "$ORCA_AMPLITUDE_API_KEY" && "$ORCA_AMPLITUDE_USER_ID" ]]; then
orca internal:log-job
orca internal:log-job --simulate
fi

# Show ORCA's own current build status. A failure may signify an upstream issue
# or service level outage that could have affected this build.
# @see https://travis-ci.org/acquia/orca/branches
travis history --no-interactive --repo=acquia/orca --branch=master --limit=1 --date
echo && travis history --no-interactive --repo=acquia/orca --branch=master --limit=2 --date
6 changes: 4 additions & 2 deletions bin/travis/before_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,10 @@ composer global require \
# Install Travis command line client.
gem install travis

# Install ORCA.
composer -d"$ORCA_ROOT" install
# Download and install ORCA libraries if necessary. This provides compatibility
# with the old method of installing ORCA via `git clone` rather than the newer
# `composer create-project` approach.
[[ -d "$ORCA_ROOT/vendor" ]] || composer -d"$ORCA_ROOT" install

orca --version

Expand Down
3 changes: 1 addition & 2 deletions bin/travis/before_script.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@
# before_script.sh
#
# DESCRIPTION
# Displays information about installed Composer packages and Drupal
# projects.
# Displays details about the fixture for debugging purposes.

cd "$(dirname "$0")" || exit; source _includes.sh

Expand Down
2 changes: 1 addition & 1 deletion bin/travis/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# install.sh
#
# DESCRIPTION
# Creates the test fixture.
# Creates the test fixture and places the SUT.

cd "$(dirname "$0")" || exit; source _includes.sh

Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "acquia/orca",
"description": "A tool for testing all of Acquia's software packages together in the context of a realistic, functioning, best practices Drupal build",
"description": "A tool for testing a company's software packages together in the context of a realistic, functioning, best practices Drupal build",
"license": "GPL-2.0-or-later",
"authors": [
{
Expand Down
2 changes: 1 addition & 1 deletion config/VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v1.1.2
v1.2.0
10 changes: 3 additions & 7 deletions config/packages.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
# An array of Acquia software package data. Each package datum is keyed by its
# An array of company software package data. Each package datum is keyed by its
# package name, i.e., the "name" property in its composer.json file, e.g.,
# "drupal/example", and has a corresponding array value that may contain the
# following key-value pairs:
Expand Down Expand Up @@ -40,8 +40,6 @@
# config/services.yml for the relevant code or bin/self-test for a usage
# example.

#drupal/acquia_commercemanager: []

drupal/acquia_connector:
version_dev: 1.x-dev <2.0

Expand All @@ -55,8 +53,6 @@ drupal/acquia_lift:

drupal/acquia_purge: []

#drupal/acquia_search_solr: []

drupal/acsf: []

acquia/blt:
Expand All @@ -69,8 +65,6 @@ acquia/coding-standards:
drupal/cog:
type: drupal-theme

#drupal/cog_tools: []

acquia/drupal-spec-tool:
type: behat-extension

Expand Down Expand Up @@ -152,4 +146,6 @@ drupal/lightning_workflow:
version: ~
version_dev: ~

drupal/mautic: []

drupal/media_acquiadam: []
2 changes: 2 additions & 0 deletions config/services.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ parameters:
env(ORCA_FIXTURE_DIR): "%app.fixture_dir%"
env(ORCA_PACKAGES_CONFIG): config/packages.yml
env(ORCA_PACKAGES_CONFIG_ALTER): ~
env(ORCA_PHPCS_STANDARD): "AcquiaDrupalTransitional"
env(ORCA_TELEMETRY_ENABLE): false

services:
Expand All @@ -17,6 +18,7 @@ services:
bind:
$amplitude_api_key: "%env(ORCA_AMPLITUDE_API_KEY)%"
$amplitude_user_id: "%env(ORCA_AMPLITUDE_USER_ID)%"
$default_phpcs_standard: "%env(ORCA_PHPCS_STANDARD)%"
$fixture_dir: "%env(ORCA_FIXTURE_DIR)%"
$project_dir: "%kernel.project_dir%"
$packages_config: "%env(ORCA_PACKAGES_CONFIG)%"
Expand Down
1 change: 1 addition & 0 deletions docs/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
[README](README.md)
| [Understanding ORCA](understanding-orca.md)
| [Getting Started](getting-started.md)
| [CLI Commands](commands.md)
| [Advanced Usage](advanced-usage.md)
| [Project Glossary](glossary.md)
| [FAQ](faq.md)
Expand Down
17 changes: 11 additions & 6 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,20 @@
# ORCA

[![Latest Stable Version](https://poser.pugx.org/acquia/orca/v/stable)](https://packagist.org/packages/acquia/orca)
[![Total Downloads](https://poser.pugx.org/acquia/orca/downloads)](https://packagist.org/packages/acquia/orca)
[![Latest Unstable Version](https://poser.pugx.org/acquia/orca/v/unstable)](https://packagist.org/packages/acquia/orca)
[![License](https://poser.pugx.org/acquia/orca/license)](https://packagist.org/packages/acquia/orca)
[![Build Status](https://travis-ci.org/acquia/orca.svg?branch=master)](https://travis-ci.org/acquia/orca)

ORCA (Official Representative Customer Application) is a tool for testing Acquia software packages. It ensures their cross compatibility and correct functioning by installing all of them together into a realistic, functioning, best practices Drupal build and running automated tests on them. Its guiding design principle is to use Acquia packages as a customer would. It installs the latest recommended versions and performs no manual setup or configuration.
ORCA (Official Representative Customer Application) is a tool for testing a company's Drupal-adjacent software packages. It ensures their cross compatibility and correct functioning by installing all of them together into a realistic, functioning, best practices Drupal build and running automated tests and static code analysis on them. Its guiding design principle is to use company packages as a customer would. It installs the latest recommended versions via Composer and performs no manual setup or configuration.

| What does it do? | What is the value? |
| --- | --- |
| Adds all Acquia packages to a BLT project via Composer, installs them and their submodules, and runs their automated tests. | Ensures that all Acquia packages can be added to the same codebase via Composer (prevents dependency conflicts), that there are no install time or functional conflicts between them, and that they have no undeclared dependencies, and prevents regressions. |
| Adds only the package under test to a BLT project via Composer, installs it and its submodules, and runs its automated tests. | Ensures that the package under test has no undeclared dependencies on other Acquia packages and functions correctly on its own. |
| Performs the above tests with the recommended, stable versions of Acquia packages. | Ensures that the package under test still works with the versions of other software already released and in use and prevents releases of the package from disrupting the ecosystem. |
| Performs the above tests using the latest development versions of Acquia packages. | Ensures that the package under test will continue to work when new versions of other software are released and prevents changes in the ecosystem from breaking the package. Forces early awareness and collaboration between project teams and prevents rework and emergency support situations. |
| Performs the above tests using a threefold spread of Drupal core versions: the previous minor release, the current supported release, and the next minor dev version. | Ensures that the package under test still works with both supported releases of Drupal and will continue to work with the next one. |
| Adds all company packages to a BLT project via Composer, installs them and their subextensions, and runs their automated tests. | Ensures that all company packages can be added to the same codebase via Composer (prevents dependency conflicts), that there are no adverse install time or functional interactions between them, and that they have no undeclared dependencies, and prevents regressions. |
| Adds only the package under test to a BLT project via Composer, installs it and its subextensions, and runs its automated tests. | Ensures that the package under test has no undeclared dependencies on other company packages and functions correctly on its own. |
| Performs the above tests with the recommended, stable versions of company packages, Drush, and Drupal Console. | Ensures that the package under test still works with the versions of other software already released and in use and prevents releases of the package from disrupting the ecosystem. |
| Performs the above tests using the latest development versions of company packages, Drush, and Drupal Console. | Ensures that the package under test will continue to work when new versions of other software are released and prevents changes in the ecosystem from breaking the package. Forces early awareness and collaboration between project teams and prevents rework and release day emergency support situations. |
| Performs the above tests using a threefold spread of Drupal core versions: the previous minor release, the current supported release, and the next minor dev version. | Ensures that the package under test still works with both supported releases of Drupal and will continue to work when the next one drops. |
| Performs static analysis of the package under test. | Ensures low level construction quality. (Prevents PHP warnings and errors, version incompatibility, etc.) |

See [Continuous integration](understanding-orca.md#Continuous-integration) for exact details.
Expand All @@ -19,6 +23,7 @@ See [Continuous integration](understanding-orca.md#Continuous-integration) for e

* [Understanding ORCA](understanding-orca.md)
* [Getting Started](getting-started.md)
* [CLI Commands](commands.md)
* [Advanced Usage](advanced-usage.md)
* [Project Glossary](glossary.md)
* [FAQ](faq.md)
Expand Down
3 changes: 3 additions & 0 deletions docs/advanced-usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@ These affect ORCA in all contexts.

* <a name="ORCA_PACKAGES_CONFIG_ALTER"></a>**`ORCA_PACKAGES_CONFIG_ALTER`**: Alter the main list of packages ORCA installs in fixtures and runs tests on (add, remove, or change packages and their properties). Acceptable values are any valid path to a YAML file relative to ORCA itself, e.g., `../example/tests/packages_alter.yml`. See [`.travis.yml`](../.travis.yml) and [`example/tests/packages_alter.yml`](../example/tests/packages_alter.yml) for an example and explanation of the schema. **Note:** This option should be used conservatively as it erodes the uniformity at the heart of ORCA's _representative_ nature.

* <a name="ORCA_PHPCS_STANDARD"></a>**`ORCA_PHPCS_STANDARD`**: Change the PHP Code Sniffer standard used by the `qa:static-analysis` and `qa:fixer` commands. Acceptable values are `AcquiaPHP`, `AcquiaDrupalStrict`, and `AcquiaDrupalTransitional`. See [Acquia Coding Standards for PHP](https://packagist.org/packages/acquia/coding-standards) for details.

* <a name="ORCA_TELEMETRY_ENABLE"></a>**`ORCA_TELEMETRY_ENABLE`**: Set to `TRUE` to enable telemetry with Amplitude. Requires [`ORCA_AMPLITUDE_API_KEY`](#ORCA_AMPLITUDE_API_KEY) and [`ORCA_AMPLITUDE_USER_ID`](#ORCA_AMPLITUDE_USER_ID) values. On Travis CI, only takes effect for cron events.

### Travis CI scripts
Expand Down Expand Up @@ -47,6 +49,7 @@ These affect ORCA only as invoked via the Travis CI scripts.
[README](README.md)
| [Understanding ORCA](understanding-orca.md)
| [Getting Started](getting-started.md)
| [CLI Commands](commands.md)
| **Advanced Usage**
| [Project Glossary](glossary.md)
| [FAQ](faq.md)
Expand Down
Loading

0 comments on commit 0be0444

Please sign in to comment.