Lullabot / drupal9ci

Command Line Interface for implementing Continuous Integration in Drupal 9
GNU General Public License v3.0
161 stars 55 forks source link

When I try and use this with a Drupal Commerce site I get: ext-bcmath is missing #46

Closed Chris-Archer-Upbeat closed 4 years ago

Chris-Archer-Upbeat commented 4 years ago

Hi,

When using with a standing Drupal site and try and install Drupal Commerce via composer I get: ext-bcmath is missing.

Thanks, Chris

q0rban commented 4 years ago

@Chris-Archer-Upbeat you might need to run docker-php-ext-install bcmath in your commands prior to running that composer command.

Chris-Archer-Upbeat commented 4 years ago

Are okay so something like this:

`## Job to run Unit and Kernel tests. unit_kernel_tests: &unit_kernel_tests <<: *defaults steps:

q0rban commented 4 years ago

Possibly, though it's hard to tell based on the formatting of the code. :)

Chris-Archer-Upbeat commented 4 years ago

This worked! :)

Would be good if we could have docker-php-ext-install bcmath run in the docker container.


# Reusable steps.

## Copies .circle/Robofile to the repository root.
copy_robo: &copy_robo
  run:
    name: Copy RoboFile.php
    command: cp .circleci/RoboFile.php .

## Install PHP dependencies.
php_dependencies: &php_dependencies
  run:
    name: Update PHP Dependencies
    command: docker-php-ext-install bcmath

## Defines images and working directory.
defaults: &defaults
  docker:
    - image: juampynr/drupal8ci:latest

    - image: selenium/standalone-chrome-debug:3.7.1-beryllium

    - image: mariadb:10.3
      environment:
        MYSQL_ALLOW_EMPTY_PASSWORD: 1

  working_directory: /var/www/html

## Defines the cache restoring mechanism.
restore_cache: &restore_cache
  # We use the composer.lock as a way to determine if we can cache our build.
  keys:
  - v1-dependencies-{{ checksum "composer.lock" }}
  # fallback to using the latest cache if no exact match is found
  - v1-dependencies-

## Defines the cache saving mechanism.
save_cache: &save_cache
  paths:
    - ./vendor
  key: v1-dependencies-{{ checksum "composer.lock" }}

#Jobs

## Job to run Unit and Kernel tests.
unit_kernel_tests: &unit_kernel_tests
  <<: *defaults
  steps:
    - *php_dependencies
    - checkout
    - *copy_robo
    - restore_cache: *restore_cache
    - run:
        name: Run PHPUnit tests
        command: robo job:run-unit-tests
    - store_test_results:
        path: /var/www/html/artifacts/phpunit
    - store_artifacts:
        path: /var/www/html/artifacts
    - save_cache: *save_cache

## Job to run the update path and Behat tests.
behat_tests: &behat_tests
  <<: *defaults
  steps:
    - *php_dependencies
    - checkout
    - *copy_robo
    - restore_cache: *restore_cache
    - run:
        name: Run Behat tests
        command: robo job:run-behat-tests
    - save_cache: *save_cache
    - store_test_results:
        path: /var/www/html/artifacts/behat
    - store_artifacts:
        path: /var/www/html/artifacts

## Job to check coding standards.
code_sniffer: &code_sniffer
  <<: *defaults
  steps:
    - *php_dependencies
    - checkout
    - *copy_robo
    - restore_cache: *restore_cache
    - run:
        name: Inspect coding standards
        command: robo job:check-coding-standards
    - store_test_results:
        path: /var/www/html/artifacts/phpcs
    - store_artifacts:
        path: /var/www/html/artifacts
    - save_cache: *save_cache

## Job to check test coverage.
code_coverage: &code_coverage
  <<: *defaults
  steps:
    - *php_dependencies
    - checkout
    - *copy_robo
    - restore_cache: *restore_cache
    - run:
        name: Generate code coverage report
        command: robo job:generate-coverage-report
    - store_artifacts:
        path: /var/www/html/artifacts
    - save_cache: *save_cache

# Declare all of the jobs we should run.
version: 2
jobs:
  run-unit-kernel-tests:
     <<: *unit_kernel_tests
  run-behat-tests:
     <<: *behat_tests
  run-code-sniffer:
     <<: *code_sniffer
  run-code-coverage:
     <<: *code_coverage

# Declare a workflow that runs all of our jobs in parallel.
workflows:
  version: 2
  test_and_lint:
    jobs:
      - run-unit-kernel-tests
      - run-behat-tests
      - run-code-sniffer
      - run-code-coverage
q0rban commented 4 years ago

Is bcmath a necessary extension for Drupal core? Or just for Drupal Commerce?

Chris-Archer-Upbeat commented 4 years ago

No bcmath is just for Drupal commerce

juampynr commented 4 years ago

I am okay about adding it at https://github.com/Lullabot/drupal8ci/blob/master/Dockerfile. @Chris-Archer-Upbeat are you up for creating a pull request for it? In the meantime you can install the extension when the workflow starts, right?

Chris-Archer-Upbeat commented 4 years ago

PR created, hopefully I have done it correctly :)

juampynr commented 4 years ago

Fixed! Closing.