View source
- # https://www.drupal.org/drupalorg/docs/drupal-ci/customizing-drupalci-testing
- # Copied from https://git.drupalcode.org/project/ckeditor5/-/blob/c68be57fbc2c29969e9726ec932af3f0e80c3dd9/drupalci.yml
- # cspell:disable
- build:
- assessment:
- # validate_codebase:
- # automatic_updates code quality checking matches that of Drupal core: it is checked by container_command.commit_checks.
- testing:
- # Run code quality checks.
- container_command.commit-checks:
- commands:
- # Copy core's checking script into this contrib module.
- - "cp /var/www/html/core/scripts/dev/commit-code-check.sh modules/contrib/automatic_updates/"
- # Comply with core's checking script file permissions expectations.
- - chmod 644 modules/contrib/automatic_updates/
- # Rewrite $TOP_LEVEL/core since $TOP_LEVEL now refers to the contrib module.
- - sed -i "s/\$TOP_LEVEL\/core/\/var\/www\/html\/core/" modules/contrib/automatic_updates/commit-code-check.sh
- # Ensure the remainder of the script runs from the script's directory and not the current working directory.
- - sed -i "s/# Gets list of files to check./cd \"\$\(dirname \"\$0\"\)\";/" modules/contrib/automatic_updates/commit-code-check.sh
- # When constructing $FILES, ignore the `commit-code-check.sh` file we just copied.
- - sed -i "s/--exclude=vendor/--exclude=vendor --exclude=commit-code-check.sh/" modules/contrib/automatic_updates/commit-code-check.sh
- # vendor/bin/phpcs now needs to be prefixed. And $TOP_LEVEL/vendor needs to be rewritten.
- - sed -i "s/vendor\/bin\/phpcs/\/var\/www\/html\/vendor\/bin\/phpcs/" modules/contrib/automatic_updates/commit-code-check.sh
- - sed -i "s/\$TOP_LEVEL\/vendor/\/var\/www\/html\/vendor/" modules/contrib/automatic_updates/commit-code-check.sh
- # Disable all JS compile checks until we've matched core's build process.
- # @todo Remove this in https://www.drupal.org/project/automatic_updates/issues/3221082.
- - sed -i "s/COMPILE_CHECK=1/COMPILE_CHECK=0/" modules/contrib/automatic_updates/commit-code-check.sh
- - sed -i "s/core\/scripts\/js/js/" modules/contrib/automatic_updates/commit-code-check.sh
- # Uncomment to Check all files
- #- sed -i "s/git diff --name-only HEAD~1 HEAD/find \* -type f -not -path \"\.\/\.git\*\"/" modules/contrib/automatic_updates/commit-code-check.sh
- # Add our words to the dictionary
- - sed -i "s/abiword/updater's/" core/misc/cspell/dictionary.txt
- - sed -i "s/absolutezero/stager's/" core/misc/cspell/dictionary.txt
- - sed -i "s/adamson/STACKLIMIT/" core/misc/cspell/dictionary.txt
- # After all of the shenanigans above, we're finally ready to run core's `commit-code-check.sh`! :)
- - "modules/contrib/automatic_updates/commit-code-check.sh --drupalci"
- # Restore the original permissions.
- - chmod 777 modules/contrib/automatic_updates/
- # Disable the PCRE engine's JIT, since it causes Composer to die during the
- # update process, but only on Drupal CI, and for reasons that are essentially
- # impossible to trace into. The PCRE JIT is not necessary for Automatic Updates
- # to work correctly, and disabling it is a known workaround.
- # @see pcre.ini
- - sudo cp modules/contrib/automatic_updates/pcre.ini /usr/local/etc/php/conf.d
- halt-on-fail: true
- # run_tests task is executed several times in order of performance speeds.
- # halt-on-fail can be set on the run_tests tasks in order to fail fast.
- # suppress-deprecations is false in order to be alerted to usages of
- # deprecated code.
- run_tests.phpunit:
- types: 'PHPUnit-Unit'
- testgroups: '--all'
- suppress-deprecations: false
- halt-on-fail: false
- run_tests.kernel:
- types: 'PHPUnit-Kernel'
- testgroups: '--all'
- suppress-deprecations: false
- halt-on-fail: false
- run_tests.build:
- # Limit concurrency due to disk space concerns.
- concurrency: 15
- types: 'PHPUnit-Build'
- testgroups: '--all'
- suppress-deprecations: false
- halt-on-fail: false
- run_tests.functional:
- types: 'PHPUnit-Functional'
- testgroups: '--all'
- suppress-deprecations: false
- halt-on-fail: false
- # Functional JavaScript tests require a concurrency of 1 because there is
- # only one instance of PhantomJS on the testbot machine.
- #run_tests.javascript:
- # concurrency: 1
- # types: 'PHPUnit-FunctionalJavascript'
- # testgroups: '--all'
- # suppress-deprecations: false
- # halt-on-fail: false