workflows:
  version: 2
  main:
    jobs:
      - php74-build

version: 2

job-references:
  mysql_image: &mysql_image
    circleci/mysql:5.7

  setup_environment: &setup_environment
    name: "Setup Environment Variables"
    command: |
      echo "export PATH=$HOME/.composer/vendor/bin:$PATH" >> $BASH_ENV
      source /home/circleci/.bashrc

  install_dependencies: &install_dependencies
    name: "Install Dependencies"
    command: |
      sudo apt-get update && sudo apt-get install subversion mariadb-client libfreetype-dev libjpeg62-turbo-dev libpng-dev
      sudo -E docker-php-ext-install mysqli
      sudo -E docker-php-ext-configure gd --with-freetype --with-jpeg
      sudo -E docker-php-ext-install gd

  php_job: &php_job
    environment:
      - WP_TESTS_DIR: "/tmp/wordpress-tests-lib"
      - WP_CORE_DIR: "/tmp/wordpress/"
    steps:
      - checkout
      - run: *setup_environment
      - run: *install_dependencies
      - run:
          name: "Run Tests"
          command: |
            sudo composer selfupdate 
            composer install
            rm -rf $WP_TESTS_DIR $WP_CORE_DIR
            bash bin/install-wp-tests.sh wordpress_test root '' 127.0.0.1 latest
            phpunit

jobs:
  php74-build:
    <<: *php_job
    docker:
      - image: circleci/php:8.0
      - image: *mysql_image