Skip to content

Acquia CMS CRON

Acquia CMS CRON #745

name: "Acquia CMS CRON"
on:
schedule:
- cron: "0 0 * * *"
# Set ORCA related environment variables.
env:
# Provide your package's name.
ORCA_SUT_NAME: acquia/acquia_cms
ORCA_SUT_BRANCH: develop
ORCA_VERSION: ^4
ORCA_PACKAGES_CONFIG_ALTER: ../acquia_cms/tests/packages_alter.yml
ORCA_ENABLE_NIGHTWATCH: "FALSE"
ORCA_PHPCS_STANDARD: AcquiaPHP
ORCA_SUT_DIR: /home/runner/work/acquia_cms/acquia_cms
# Set Required API Keys.
CONNECTOR_ID: ${{ secrets.CONNECTOR_ID }}
SEARCH_UUID: ${{ secrets.SEARCH_UUID }}
CONNECTOR_KEY: ${{ secrets.CONNECTOR_KEY }}
GMAPS_KEY: ${{ secrets.GMAPS_KEY }}
SITESTUDIO_API_KEY: ${{ secrets.SITESTUDIO_API_KEY }}
SITESTUDIO_ORG_KEY: ${{ secrets.SITESTUDIO_ORG_KEY }}
#Add other required environment variables.
COMPOSER_PROCESS_TIMEOUT: 1800
CI: true
jobs:
static_code_analysis:
runs-on: ubuntu-latest
env:
ORCA_JOB: ${{ matrix.orca-job }}
GITHUB_EVENT: $ {{ github.event_name }}
JOB_TYPE: "static-code-analysis"
strategy:
matrix:
orca-job:
- STATIC_CODE_ANALYSIS
- STRICT_DEPRECATED_CODE_SCAN
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 20.x
- uses: shivammathur/setup-php@v2
with:
php-version: 8.3
#coverage: xdebug
- name: Download ORCA
run: |
composer self-update
composer create-project --no-dev --ignore-platform-req=php acquia/orca ../orca "$ORCA_VERSION" -n
curl https://gist.githubusercontent.com/rajeshreeputra/170586f217b422eb9cdfd9ca9457a2e3/raw/c2f277ba9005b91d7f662cacf37b3940a66a9b8c/sut-path-reposories.patch | git -C ../orca apply
- name: Before Install
run: ../orca/bin/ci/before_install.sh
- name: Install
shell: 'script -q -e -c "bash {0}"'
run: ./tests/ci/install.sh
- name: Before script
run: ../orca/bin/ci/before_script.sh
- name: Script
run: ./tests/ci/script.sh
- name: Before Cache
run: ../orca/bin/ci/before_cache.sh
- name: After script
run: |
../orca/bin/ci/after_success.sh
../orca/bin/ci/after_failure.sh
../orca/bin/ci/after_script.sh
integrated_tests:
name: ${{ matrix.acms_job }} (${{ matrix.orca-job }})
runs-on: ubuntu-latest
env:
ORCA_JOB: ${{ matrix.orca-job }}
ACMS_JOB: ${{ matrix.acms_job }}
JOB_TYPE: "integrated-tests"
strategy:
fail-fast: false
matrix:
orca-job:
- INTEGRATED_TEST_ON_LATEST_LTS
acms_job:
- integrated_php_unit_tests
- integrated_existing_site_tests
- backstop_tests
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 20.x
- uses: shivammathur/setup-php@v2
with:
php-version: 8.3
- name: Setup MySQL
run: |
sudo /etc/init.d/mysql start
mysql -uroot -proot < ./tests/ci/install.sql
- name: Download ORCA
run: |
composer self-update
composer create-project --no-dev --ignore-platform-req=php acquia/orca ../orca "$ORCA_VERSION" -n
curl https://gist.githubusercontent.com/rajeshreeputra/170586f217b422eb9cdfd9ca9457a2e3/raw/c2f277ba9005b91d7f662cacf37b3940a66a9b8c/sut-path-reposories.patch | git -C ../orca apply
curl https://gist.githubusercontent.com/vishalkhode1/342a0eee801e51f48b4d9701749c1c94/raw/orca-oldest-support.patch | git -C ../orca apply
- name: Before Install
run: |
# Remove all PHPUnit tests from individual modules, except the integrated & ExistingSite tests.
if [ "${ACMS_JOB}" = "integrated_existing_site_tests" ]; then
find modules/*/tests tests -type f -name "*Test.php" ! -path "*/ExistingSite*/*" -exec rm -fr '{}' ';'
elif [ "${ACMS_JOB}" = "integrated_php_unit_tests" ]; then
# Remove all isolated/existing_site phpunit tests from acquia_cms modules.
find modules/*/tests -type f -name "*Test.php" -exec rm -fr '{}' ';'
# Remove all existing_site phpunit tests from acquia_cms repo as those get's covered from integrated_existing_site_tests.
find tests/src -type f -name "*Test.php" -path "*/ExistingSite*/*" -exec rm -fr '{}' ';'
fi
# Change requireSameDimensions to true in backstop settings.
if [ "${ACMS_JOB}" = "backstop_tests" ]; then
sed -i '54s/"requireSameDimensions": true/"requireSameDimensions": false/' tests/backstop/backstop-settings.js
sed -i '111s/"requireSameDimensions": true/"requireSameDimensions": false/' tests/backstop/backstop-settings.js
sed -i '130s/"requireSameDimensions": true/"requireSameDimensions": false/' tests/backstop/backstop-settings.js
sed -i '149s/"requireSameDimensions": true/"requireSameDimensions": false/' tests/backstop/backstop-settings.js
sed -i '168s/"requireSameDimensions": true/"requireSameDimensions": false/' tests/backstop/backstop-settings.js
sed -i '187s/"requireSameDimensions": true/"requireSameDimensions": false/' tests/backstop/backstop-settings.js
fi
../orca/bin/ci/before_install.sh
chromedriver --disable-dev-shm-usage --disable-extensions --disable-gpu --headless --no-sandbox --port=4444 &
CHROMEDRIVER_PID=$!
echo "CHROMEDRIVER_PID=${CHROMEDRIVER_PID}" >> ${GITHUB_ENV}
- name: Install
shell: 'script -q -e -c "bash {0}"'
run: ./tests/ci/install.sh
- name: Before script
run: ../orca/bin/ci/before_script.sh
- name: Script
run: ./tests/ci/script.sh
- name: Before Cache
run : ../orca/bin/ci/before_cache.sh
- name: After script
run: |
kill -0 ${{ env.CHROMEDRIVER_PID }}
../orca/bin/ci/after_success.sh
../orca/bin/ci/after_failure.sh
../orca/bin/ci/after_script.sh
isolated_tests:
name: acquia_cms (${{ matrix.orca-job }})
runs-on: ubuntu-latest
env:
# Set ORCA related environment variables.
ORCA_JOB: ${{ matrix.orca-job }}
# Set Required API Keys.
MODULES: ${{ matrix.modules }}
JOB_TYPE: "isolated-tests"
strategy:
fail-fast: false
matrix:
orca-job:
- ISOLATED_TEST_ON_CURRENT_DEV
- ISOLATED_TEST_ON_NEXT_MINOR_DEV
- INTEGRATED_TEST_ON_LATEST_LTS
php-version:
- 8.1
- 8.3
exclude:
- php-version: 8.3
orca-job: INTEGRATED_TEST_ON_LATEST_LTS
- php-version: 8.1
orca-job: [ ISOLATED_TEST_ON_CURRENT_DEV, ISOLATED_TEST_ON_NEXT_MINOR_DEV]
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 20.x
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
#coverage: xdebug
- name: Download ORCA
run: |
composer self-update
composer create-project --no-dev --ignore-platform-req=php acquia/orca ../orca "$ORCA_VERSION" -n
curl https://gist.githubusercontent.com/rajeshreeputra/170586f217b422eb9cdfd9ca9457a2e3/raw/c2f277ba9005b91d7f662cacf37b3940a66a9b8c/sut-path-reposories.patch | git -C ../orca apply
curl https://gist.githubusercontent.com/vishalkhode1/342a0eee801e51f48b4d9701749c1c94/raw/orca-oldest-support.patch | git -C ../orca apply
- name: Before Install
run: |
# Do not run any existing site tests. We run them seperately.
find tests/src modules -type f -name "*Test.php" -path "*/ExistingSite*/*" -exec rm -fr '{}' ';'
../orca/bin/ci/before_install.sh
chromedriver --disable-dev-shm-usage --disable-extensions --disable-gpu --headless --no-sandbox --port=4444 &
CHROMEDRIVER_PID=$!
echo "CHROMEDRIVER_PID=${CHROMEDRIVER_PID}" >> ${GITHUB_ENV}
- name: Install
shell: 'script -q -e -c "bash {0}"'
run: ./tests/ci/install.sh
- name: Before script
run: ../orca/bin/ci/before_script.sh
- name: Script
run: ./tests/ci/script.sh
- name: Before Cache
run: ../orca/bin/ci/before_cache.sh
- name: After script
run: |
kill -0 ${{ env.CHROMEDRIVER_PID }}
../orca/bin/ci/after_success.sh
../orca/bin/ci/after_failure.sh
../orca/bin/ci/after_script.sh
blt_test:
name: "BLT site install"
runs-on: ubuntu-latest
env:
# Provide your package's name.
ACMS_JOB: "blt"
ORCA_SUT_NAME: acquia/acquia_cms
ORCA_SUT_BRANCH: develop
ORCA_PACKAGES_CONFIG_ALTER: ../acquia_cms/tests/packages_alter.yml
ORCA_FIXTURE_PROJECT_TEMPLATE: acquia/drupal-recommended-project
ORCA_ENABLE_NIGHTWATCH: "FALSE"
ORCA_PHPCS_STANDARD: AcquiaPHP
ORCA_SUT_DIR: /home/runner/work/acquia_cms/acquia_cms
COMPOSER_PROCESS_TIMEOUT: 1800
ORCA_JOB: ISOLATED_TEST_ON_CURRENT
# Set Required API Keys.
CONNECTOR_ID: ${{ secrets.CONNECTOR_ID }}
GMAPS_KEY: ${{ secrets.GMAPS_KEY }}
SEARCH_UUID: ${{ secrets.SEARCH_UUID }}
SITESTUDIO_API_KEY: ${{ secrets.SITESTUDIO_API_KEY }}
SITESTUDIO_ORG_KEY: ${{ secrets.SITESTUDIO_ORG_KEY }}
CI: true
UUID: "80f92d63-154b-4672-a6f3-831c97ad69da"
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 20.x
- uses: shivammathur/setup-php@v2
with:
php-version: 8.3
- name: Setup MySQL
run: |
sudo /etc/init.d/mysql start
mysql -uroot -proot < ./tests/ci/install.sql
- name: Download ORCA
run: |
composer self-update
composer create-project --no-dev --ignore-platform-req=php acquia/orca ../orca "$ORCA_VERSION" -n
curl https://gist.githubusercontent.com/rajeshreeputra/170586f217b422eb9cdfd9ca9457a2e3/raw/c2f277ba9005b91d7f662cacf37b3940a66a9b8c/sut-path-reposories.patch | git -C ../orca apply
- name: Before Install
run: ../orca/bin/ci/before_install.sh
- name: Install
shell: 'script -q -e -c "bash {0}"'
run: ./tests/ci/install.sh
- name: BLT Site Install
shell: 'script -q -e -c "bash {0}"'
run: ./tests/ci/blt_si.sh
- name: Before Cache
run: ../orca/bin/ci/before_cache.sh
- name: After script
run: |
../orca/bin/ci/after_success.sh
../orca/bin/ci/after_failure.sh
../orca/bin/ci/after_script.sh
cypress_tests:
name: Cypress Tests with ${{ matrix.orca-job }} on PHP ${{ matrix.php-version }}
runs-on: ubuntu-latest
env:
ORCA_SUT_NAME: acquia/acquia_cms
ORCA_SUT_BRANCH: develop
ORCA_PACKAGES_CONFIG_ALTER: ../acquia_cms/tests/packages_alter.yml
ORCA_FIXTURE_PROJECT_TEMPLATE: acquia/drupal-recommended-project
ORCA_ENABLE_NIGHTWATCH: "FALSE"
ORCA_PHPCS_STANDARD: AcquiaPHP
ORCA_SUT_DIR: /home/runner/work/acquia_cms/acquia_cms
COMPOSER_PROCESS_TIMEOUT: 1800
ORCA_JOB: ${{ matrix.orca-job }}
CONNECTOR_ID: ${{ secrets.CONNECTOR_ID }}
GMAPS_KEY: ${{ secrets.GMAPS_KEY }}
SEARCH_UUID: ${{ secrets.SEARCH_UUID }}
SITESTUDIO_API_KEY: ${{ secrets.SITESTUDIO_API_KEY }}
SITESTUDIO_ORG_KEY: ${{ secrets.SITESTUDIO_ORG_KEY }}
ACMS_JOB: "cypress_tests"
JOB_TYPE: "integrated-tests"
CI: true
strategy:
fail-fast: false
matrix:
orca-job:
- ISOLATED_TEST_ON_CURRENT
- INTEGRATED_TEST_ON_PREVIOUS_MINOR
php-version:
- 8.3
# exclude:
# - php-version: 8.3
# orca-job: INTEGRATED_TEST_ON_PREVIOUS_MINOR
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 20.x
- uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
#coverage: xdebug
- name: Setup MySQL
run: |
sudo /etc/init.d/mysql start
mysql -uroot -proot < ./tests/ci/install.sql
- name: Download ORCA
run: |
composer self-update
composer create-project --no-dev --ignore-platform-req=php acquia/orca ../orca "$ORCA_VERSION" -n
curl https://gist.githubusercontent.com/rajeshreeputra/170586f217b422eb9cdfd9ca9457a2e3/raw/c2f277ba9005b91d7f662cacf37b3940a66a9b8c/sut-path-reposories.patch | git -C ../orca apply
curl https://gist.githubusercontent.com/vishalkhode1/342a0eee801e51f48b4d9701749c1c94/raw/orca-oldest-support.patch | git -C ../orca apply
- name: Before Install
run: |
# Remove all PHPunit tests from acquia_cms modules.
find modules/*/tests tests/src -type f -name "*Test.php" -exec rm -fr '{}' ';'
../orca/bin/ci/before_install.sh
chromedriver --disable-dev-shm-usage --disable-extensions --disable-gpu --headless --no-sandbox --port=4444 &
CHROMEDRIVER_PID=$!
echo "CHROMEDRIVER_PID=${CHROMEDRIVER_PID}" >> ${GITHUB_ENV}
- name: Install
shell: 'script -q -e -c "bash {0}"'
run: ./tests/ci/install.sh
- name: Before script
run: ../orca/bin/ci/before_script.sh
- name: Script
run: ./tests/ci/script.sh
- name: Before Cache
run: ../orca/bin/ci/before_cache.sh
- name: After script
run: |
kill -0 ${{ env.CHROMEDRIVER_PID }}
../orca/bin/ci/after_success.sh
../orca/bin/ci/after_failure.sh
../orca/bin/ci/after_script.sh
dev_version_test:
name: ${{ matrix.acms_job }} (${{ matrix.modules }})
runs-on: ubuntu-latest
env:
ORCA_SUT_NAME: acquia/acquia_cms
ORCA_SUT_BRANCH: develop
ORCA_PACKAGES_CONFIG_ALTER: ../acquia_cms/tests/packages_alter.yml
ORCA_FIXTURE_PROJECT_TEMPLATE: acquia/drupal-recommended-project
ORCA_ENABLE_NIGHTWATCH: "FALSE"
ORCA_PHPCS_STANDARD: AcquiaPHP
ORCA_SUT_DIR: /home/runner/work/acquia_cms/acquia_cms
COMPOSER_PROCESS_TIMEOUT: 1800
ORCA_JOB: ${{ matrix.orca-job }}
CONNECTOR_ID: ${{ secrets.CONNECTOR_ID }}
SEARCH_UUID: ${{ secrets.SEARCH_UUID }}
CONNECTOR_KEY: ${{ secrets.CONNECTOR_KEY }}
GMAPS_KEY: ${{ secrets.GMAPS_KEY }}
SITESTUDIO_API_KEY: ${{ secrets.SITESTUDIO_API_KEY }}
SITESTUDIO_ORG_KEY: ${{ secrets.SITESTUDIO_ORG_KEY }}
ACMS_JOB: ${{ matrix.acms_job }}
JOB_TYPE: "integrated-tests"
MODULE: ${{ matrix.modules }}
CI: true
strategy:
fail-fast: false
matrix:
orca-job:
- ISOLATED_TEST_ON_CURRENT
acms_job:
- dev_version_test
modules:
- acquia_cms_article
- acquia_cms_audio
- acquia_cms_common
- acquia_cms_document
- acquia_cms_event
- acquia_cms_headless
- acquia_cms_image
- acquia_cms_page
- acquia_cms_person
- acquia_cms_place
- acquia_cms_search
- acquia_cms_site_studio
- acquia_cms_tour
- acquia_cms_video
steps:
- uses: actions/checkout@v4
- name: Use Node.js 20.x
uses: actions/setup-node@v4
with:
node-version: 20.x
- uses: shivammathur/setup-php@v2
with:
php-version: 8.3
- name: Setup MySQL
run: |
sudo /etc/init.d/mysql start
mysql -uroot -proot < ./tests/ci/install.sql
- name: Download ORCA
run: |
composer self-update
composer create-project --no-dev --ignore-platform-req=php acquia/orca ../orca "$ORCA_VERSION" -n
curl https://gist.githubusercontent.com/rajeshreeputra/170586f217b422eb9cdfd9ca9457a2e3/raw/c2f277ba9005b91d7f662cacf37b3940a66a9b8c/sut-path-reposories.patch | git -C ../orca apply
- name: Before Install
run: |
# Update the CI by altering modules requirement version.
sed -i 's/"drupal\/next": "^1.6"/"drupal\/next": "^1.0"/' modules/acquia_cms_headless/composer.json
sed -i 's/"drupal\/facets": "2.0.7"/"drupal\/facets": "^2.0.7"/' modules/acquia_cms_search/composer.json
sed -i 's/"drupal\/search_api": "1.30 || 1.31"/"drupal\/search_api": "^1.30"/' modules/acquia_cms_search/composer.json
# Remove all ExistingSite test in CI.
find tests/src -type f -name "*Test.php" -path "*/ExistingSite*/*" -exec rm -fr '{}' ';'
# Remove all PHPUnit test files, excluding the current module's PHPUnit tests.
find modules -type f -name "*Test.php" ! -path "*/${MODULE}/*" -exec rm -fr '{}' ';'
# Do not run any existing site tests. We run them seperately.
find modules -type d -name ExistingSite | xargs rm -rf && rm -rf tests/src/
../orca/bin/ci/before_install.sh
chromedriver --disable-dev-shm-usage --disable-extensions --disable-gpu --headless --no-sandbox --port=4444 &
CHROMEDRIVER_PID=$!
echo "CHROMEDRIVER_PID=${CHROMEDRIVER_PID}" >> ${GITHUB_ENV}
- name: Install
shell: 'script -q -e -c "bash {0}"'
run: ./tests/ci/install.sh
- name: Before script
run: ../orca/bin/ci/before_script.sh
- name: Script
run: ./tests/ci/script.sh
- name: Before Cache
run : ../orca/bin/ci/before_cache.sh
- name: After script
run: |
kill -0 ${{ env.CHROMEDRIVER_PID }}
../orca/bin/ci/after_success.sh
../orca/bin/ci/after_failure.sh
../orca/bin/ci/after_script.sh