diff --git a/.github/workflows/build-8.x-1.x.yml b/.github/workflows/build-8.x-1.x.yml new file mode 100644 index 00000000..53304b04 --- /dev/null +++ b/.github/workflows/build-8.x-1.x.yml @@ -0,0 +1,115 @@ +# This is a basic workflow to help you get started with Actions + +name: CI + +# Controls when the action will run. +on: + # Triggers the workflow on push or pull request events but only for the 7.x branch + push: + branches: [ 8.x-1.x ] + pull_request: + branches: [ 8.x-1.x ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "build" + build: + # The type of runner that the job will run on + runs-on: ubuntu-latest + strategy: + matrix: + php-versions: ["7.3", "7.4"] + test-suite: ["kernel", "functional", "functional-javascript"] + drupal-version: ["8.9.11", "9.1.1"] + + name: PHP ${{ matrix.php-versions }} drupal ${{ matrix.drupal-version }} test-suite ${{ matrix.test-suite }} + + services: + mysql: + image: mysql:5.7 + env: + MYSQL_ALLOW_EMPTY_PASSWORD: yes + MYSQL_DATABASE: drupal + ports: + - 3306:3306 + activemq: + image: webcenter/activemq:5.14.3 + ports: + - 8161:8161 + - 61616:61616 + - 61613:61613 + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - name: Checkout code + uses: actions/checkout@v2 + with: + path: build_dir + + - name: Checkout islandora_ci + uses: actions/checkout@v2 + with: + repository: islandora/islandora_ci + ref: github-actions + path: islandora_ci + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php-versions }} + tools: composer:v2 + + - name: Setup Mysql client + run: | + sudo apt-get update + sudo apt-get install -y mysql-client + + - name: Set environment variables + run: | + echo "DRUPAL_VERSION=${{ matrix.drupal-version }}" >> $GITHUB_ENV + echo "SCRIPT_DIR=$GITHUB_WORKSPACE/islandora_ci" >> $GITHUB_ENV + echo "DRUPAL_DIR=/opt/drupal" >> $GITHUB_ENV + echo "PHPUNIT_FILE=$GITHUB_WORKSPACE/build_dir/phpunit.xml" >> $GITHUB_ENV + + - name: Cache Composer dependencies + uses: actions/cache@v2 + with: + path: /tmp/composer-cache + key: ${{ runner.os }}-${{ hashFiles('**/composer.lock') }} + + - name: Setup Drupal + run: | + mkdir $DRUPAL_DIR + $SCRIPT_DIR/travis_setup_drupal.sh + cd $DRUPAL_DIR + chmod -R u+w web/sites/default + mkdir -p web/sites/simpletest/browser_output + + - name: Setup composer paths + run: | + git -C "$GITHUB_WORKSPACE/build_dir" checkout -b travis-testing + cd $DRUPAL_DIR + composer config repositories.local path "$GITHUB_WORKSPACE/build_dir" + composer require "islandora/islandora:dev-travis-testing as dev-8.x-1.x" --prefer-source --update-with-all-dependencies + + - name: Install modules + run: | + cd $DRUPAL_DIR/web + drush --uri=127.0.0.1:8282 en -y islandora_audio islandora_breadcrumbs islandora_iiif islandora_image islandora_video islandora_text_extraction_defaults + drush --uri=127.0.0.1:8282 fim -y islandora_core_feature,islandora_text_extraction_defaults + + - name: Copy PHPunit file + run: cp $PHPUNIT_FILE $DRUPAL_DIR/web/core/phpunit.xml + + - name: Test scripts + run: $SCRIPT_DIR/travis_scripts.sh + + - name: PHPUNIT tests + run: | + cd $DRUPAL_DIR/web/core + $DRUPAL_DIR/vendor/bin/phpunit --verbose --testsuite "${{ matrix.test-suite }}" + diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 2e01c7d0..00000000 --- a/.travis.yml +++ /dev/null @@ -1,53 +0,0 @@ -sudo: true -language: php -php: - - 7.3 - - 7.4 - -env: - - TESTSUITE=kernel - - TESTSUITE=functional - - TESTSUITE=functional-javascript - -matrix: - fast_finish: true - -services: - - mysql - -branches: - only: - - /^8.x/ - - /master/ - -before_install: - - export SCRIPT_DIR=$HOME/islandora_ci - - export DRUPAL_DIR=/opt/drupal - - export PHPUNIT_FILE=$TRAVIS_BUILD_DIR/phpunit.xml - - export COMPOSER_PATH="/home/travis/.phpenv/versions/$TRAVIS_PHP_VERSION/bin/composer" - - phpenv config-rm xdebug.ini - -install: - - git clone https://github.com/Islandora/islandora_ci.git $HOME/islandora_ci - - $SCRIPT_DIR/travis_setup_drupal.sh - - git -C "$TRAVIS_BUILD_DIR" checkout -b travis-testing - - cd $DRUPAL_DIR; - - chmod -R u+w web/sites/default - - COMPOSER_MEMORY_LIMIT=-1 php -d memory_limit=-1 $COMPOSER_PATH config repositories.local path "$TRAVIS_BUILD_DIR" - - COMPOSER_MEMORY_LIMIT=-1 php -d memory_limit=-1 $COMPOSER_PATH require "islandora/islandora:dev-travis-testing as dev-8.x-1.x" --prefer-source --update-with-all-dependencies - - cd web - - drush --uri=127.0.0.1:8282 en -y islandora_audio islandora_breadcrumbs islandora_iiif islandora_image islandora_video islandora_text_extraction_defaults - - drush --uri=127.0.0.1:8282 fim -y islandora_core_feature,islandora_text_extraction_defaults - - mkdir -p $DRUPAL_DIR/web/sites/simpletest/browser_output - - cp $PHPUNIT_FILE $DRUPAL_DIR/web/core/phpunit.xml - -script: - - $SCRIPT_DIR/travis_scripts.sh - - cd $DRUPAL_DIR/web/core - - $DRUPAL_DIR/vendor/bin/phpunit --verbose --testsuite "$TESTSUITE" - -notifications: - slack: - on_success: change - on_failure: always - secure: $SLACK_NOTIFICATION_KEY