Skip to content
Snippets Groups Projects
drupalci.yml 4.65 KiB
Newer Older
  • Learn to ignore specific revisions
  • # 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:
    
        # 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