Skip to content

Add a step to publish test results in GITHUB_SUMMARY #1731

Add a step to publish test results in GITHUB_SUMMARY

Add a step to publish test results in GITHUB_SUMMARY #1731

Workflow file for this run

name: Test Functional Tests
on:
push:
branches:
- main
pull_request:
types: [opened, synchronize, reopened]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
jobs:
Build:
runs-on: ubuntu-22.04
strategy:
matrix:
drupal-version: [ 10, 11 ]
steps:
- name: Create a Drupal project
run: composer create-project drupal/recommended-project:^${{ matrix.drupal-version }} . --ignore-platform-reqs
- uses: actions/checkout@v4
with:
path: drainpipe
- name: Setup drainpipe-dev
run: mv drainpipe/drainpipe-dev .
- uses: ./drainpipe/scaffold/github/actions/common/set-env
- name: Install DDEV
uses: ./drainpipe/scaffold/github/actions/common/ddev
with:
git-name: Drainpipe Bot
git-email: [email protected]
- name: Setup Project
run: |
ddev config --auto
ddev config --nodejs-version "22"
ddev config --corepack-enable
ddev start
ddev composer config extra.drupal-scaffold.gitignore true
ddev composer config --json extra.drupal-scaffold.allowed-packages '["lullabot/drainpipe-dev", "lullabot/drainpipe"]'
ddev composer config --no-plugins allow-plugins.composer/installers true
ddev composer config --no-plugins allow-plugins.drupal/core-composer-scaffold true
ddev composer config --no-plugins allow-plugins.lullabot/drainpipe true
ddev composer config --no-plugins allow-plugins.lullabot/drainpipe-dev true
ddev composer config repositories.drainpipe --json '{"type": "path", "url": "drainpipe", "options": {"symlink": false}}'
ddev composer config repositories.drainpipe-dev --json '{"type": "path", "url": "drainpipe-dev", "options": {"symlink": false}}'
ddev composer config minimum-stability dev
ddev composer require "lullabot/drainpipe @dev" --with-all-dependencies
ddev composer require "lullabot/drainpipe-dev @dev" --dev --with-all-dependencies
git config --global user.email "[email protected]"
git config --global user.name "Drainpipe Bot"
git init
echo "/drainpipe" >> .gitignore
echo "/drainpipe-dev" >> .gitignore
echo ".ddev/config.yaml" >> .gitignore
echo ".ddev/docker-compose.selenium.yaml" >> .gitignore
echo ".yarnrc.yml" >> .gitignore
echo "package.json" >> .gitignore
echo "yarn.lock" >> .gitignore
echo "package-lock.json" >> .gitignore
echo "README.md" >> .gitignore
git add .
git commit -m "Initial commit"
- name: Setup Nightwatch
run: |
echo "hooks:" >> .ddev/config.yaml
echo " post-start:" >> .ddev/config.yaml
echo " - exec: mysql -uroot -proot -hdb -e \"CREATE DATABASE IF NOT EXISTS firefox; GRANT ALL ON firefox.* TO 'db'@'%';\"" >> .ddev/config.yaml
echo " - exec: mysql -uroot -proot -hdb -e \"CREATE DATABASE IF NOT EXISTS chrome; GRANT ALL ON chrome.* TO 'db'@'%';\"" >> .ddev/config.yaml
ddev config --web-environment="NIGHTWATCH_DRUPAL_URL_FIREFOX=https://drupal_firefox,NIGHTWATCH_DRUPAL_URL_CHROME=https://drupal_chrome"
ddev config --additional-hostnames="*.drainpipe"
- name: Run the site installer
run: |
ddev drush --yes site:install minimal
ddev drush config:export --yes
- name: Create Artifact
run: zip -r /tmp/drainpipe.zip ./
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: test-functional-build-${{ matrix.drupal-version }}
path: /tmp/drainpipe.zip
Test-NPM:
runs-on: ubuntu-22.04
needs: Build
strategy:
matrix:
drupal-version: [ 10, 11 ]
steps:
- uses: actions/download-artifact@v4
with:
name: test-functional-build-${{ matrix.drupal-version }}
- name: Restore Workspace
run: |
cd ../
mv ${{ github.workspace }}/drainpipe.zip /tmp/drainpipe.zip
unzip -o /tmp/drainpipe.zip -d ${{ github.workspace }}
cd ${{ github.workspace }}
- uses: ./drainpipe/scaffold/github/actions/common/set-env
- name: Install DDEV
uses: ./drainpipe/scaffold/github/actions/common/ddev
with:
git-name: Drainpipe Bot
git-email: [email protected]
- name: Start DDEV
run: ddev start
- name: Setup Nightwatch
run: |
ddev npm init -y
ddev npm install nightwatch nightwatch-accessibility @lullabot/nightwatch-drupal-commands lodash --save-dev
- name: Install Drupal
run: |
ddev task test:siteinstall:all
- name: Run Functional Tests
run: ddev task test:functional
- name: Upload test artifacts
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: test_result-npm-${{ matrix.drupal-version }}
path: test_result
Test-Yarn-Classic:
runs-on: ubuntu-22.04
needs: Build
strategy:
matrix:
drupal-version: [ 10, 11 ]
steps:
- uses: actions/download-artifact@v4
with:
name: test-functional-build-${{ matrix.drupal-version }}
- name: Restore Workspace
run: |
cd ../
mv ${{ github.workspace }}/drainpipe.zip /tmp/drainpipe.zip
unzip -o /tmp/drainpipe.zip -d ${{ github.workspace }}
cd ${{ github.workspace }}
- uses: ./drainpipe/scaffold/github/actions/common/set-env
- name: Install DDEV
uses: ./drainpipe/scaffold/github/actions/common/ddev
with:
git-name: Drainpipe Bot
git-email: [email protected]#
- name: Start DDEV
run: ddev start
- name: Setup Nightwatch
run: |
ddev exec corepack disable
ddev exec npm i -g [email protected]
ddev exec 'ln -s $(npm root -g)/yarn/bin/yarn /usr/local/bin/yarn'
ddev yarn init -y
ddev yarn add nightwatch nightwatch-accessibility @lullabot/nightwatch-drupal-commands lodash --dev
- name: Install Drupal
run: |
ddev task test:siteinstall:all
- name: Run Functional Tests
run: ddev task test:functional
- name: Upload test artifacts
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: test_result-yarn-classic-${{ matrix.drupal-version }}
path: test_result
Test-Yarn-3-Node-Linker:
runs-on: ubuntu-22.04
needs: Build
strategy:
matrix:
drupal-version: [ 10, 11 ]
steps:
- uses: actions/download-artifact@v4
with:
name: test-functional-build-${{ matrix.drupal-version }}
- name: Restore Workspace
run: |
cd ../
mv ${{ github.workspace }}/drainpipe.zip /tmp/drainpipe.zip
unzip -o /tmp/drainpipe.zip -d ${{ github.workspace }}
cd ${{ github.workspace }}
- uses: ./drainpipe/scaffold/github/actions/common/set-env
- name: Install DDEV
uses: ./drainpipe/scaffold/github/actions/common/ddev
with:
git-name: Drainpipe Bot
git-email: [email protected]#
- name: Start DDEV
run: ddev start
- name: Setup Nightwatch
run: |
ddev yarn set version berry
ddev yarn set version 3
ddev yarn init -y
ddev yarn config set nodeLinker node-modules
ddev yarn add nightwatch nightwatch-accessibility @lullabot/nightwatch-drupal-commands lodash --dev
- name: Install Drupal
run: |
ddev task test:siteinstall:all
- name: Run Functional Tests
run: ddev task test:functional
- name: Upload test artifacts
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: test_result-yarn3-nl-${{ matrix.drupal-version }}
path: test_result
Test-Yarn-4-Node-Linker:
runs-on: ubuntu-22.04
needs: Build
strategy:
matrix:
drupal-version: [ 10, 11 ]
steps:
- uses: actions/download-artifact@v4
with:
name: test-functional-build-${{ matrix.drupal-version }}
- name: Restore Workspace
run: |
cd ../
mv ${{ github.workspace }}/drainpipe.zip /tmp/drainpipe.zip
unzip -o /tmp/drainpipe.zip -d ${{ github.workspace }}
cd ${{ github.workspace }}
- uses: ./drainpipe/scaffold/github/actions/common/set-env
- name: Install DDEV
uses: ./drainpipe/scaffold/github/actions/common/ddev
with:
git-name: Drainpipe Bot
git-email: [email protected]#
- name: Start DDEV
run: ddev start
- name: Setup Nightwatch
run: |
ddev restart
ddev yarn set version berry
ddev yarn set version 4
ddev yarn init -y
ddev yarn config set nodeLinker node-modules
ddev yarn add nightwatch nightwatch-accessibility @lullabot/nightwatch-drupal-commands lodash --dev
- name: Install Drupal
run: |
ddev task test:siteinstall:all
- name: Run Functional Tests
run: ddev task test:functional
- name: Upload test artifacts
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: test_result-yarn4-nl-${{ matrix.drupal-version }}
path: test_result
Test-Yarn-3:
runs-on: ubuntu-22.04
needs: Build
strategy:
matrix:
drupal-version: [ 10, 11 ]
steps:
- uses: actions/download-artifact@v4
with:
name: test-functional-build-${{ matrix.drupal-version }}
- name: Restore Workspace
run: |
cd ../
mv ${{ github.workspace }}/drainpipe.zip /tmp/drainpipe.zip
unzip -o /tmp/drainpipe.zip -d ${{ github.workspace }}
cd ${{ github.workspace }}
- uses: ./drainpipe/scaffold/github/actions/common/set-env
- name: Install DDEV
uses: ./drainpipe/scaffold/github/actions/common/ddev
with:
git-name: Drainpipe Bot
git-email: [email protected]#
- name: Start DDEV
run: ddev start
- name: Setup Nightwatch
run: |
ddev yarn set version berry
ddev yarn set version 3
ddev yarn init -y
echo "packageExtensions:" >> .yarnrc.yml
echo ' "nightwatch@*":' >> .yarnrc.yml
echo ' dependencies:' >> .yarnrc.yml
echo ' ws: "*"' >> .yarnrc.yml
echo ' "@nightwatch/vrt@*":' >> .yarnrc.yml
echo ' dependencies:' >> .yarnrc.yml
echo ' open: "^8"' >> .yarnrc.yml
ddev yarn add nightwatch nightwatch-axe-verbose @nightwatch/vrt @lullabot/nightwatch-drupal-commands --dev
- name: Install Drupal
run: |
ddev task test:siteinstall:all
- name: Run Functional Tests
run: ddev task test:functional
- name: Upload test artifacts
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: test_result-yarn3-${{ matrix.drupal-version }}
path: test_result
Test-Yarn-4:
runs-on: ubuntu-22.04
needs: Build
strategy:
matrix:
drupal-version: [ 10, 11 ]
steps:
- uses: actions/download-artifact@v4
with:
name: test-functional-build-${{ matrix.drupal-version }}
- name: Restore Workspace
run: |
cd ../
mv ${{ github.workspace }}/drainpipe.zip /tmp/drainpipe.zip
unzip -o /tmp/drainpipe.zip -d ${{ github.workspace }}
cd ${{ github.workspace }}
- uses: ./drainpipe/scaffold/github/actions/common/set-env
- name: Install DDEV
uses: ./drainpipe/scaffold/github/actions/common/ddev
with:
git-name: Drainpipe Bot
git-email: [email protected]#
- name: Start DDEV
run: ddev start
- name: Setup Nightwatch
run: |
ddev restart
ddev yarn set version berry
ddev yarn init -y
echo "packageExtensions:" >> .yarnrc.yml
echo ' "nightwatch@*":' >> .yarnrc.yml
echo ' dependencies:' >> .yarnrc.yml
echo ' ws: "*"' >> .yarnrc.yml
echo ' "@nightwatch/vrt@*":' >> .yarnrc.yml
echo ' dependencies:' >> .yarnrc.yml
echo ' open: "^8"' >> .yarnrc.yml
ddev yarn cache clear
ddev yarn add nightwatch nightwatch-axe-verbose @nightwatch/vrt @nightwatch/vrt @lullabot/nightwatch-drupal-commands --dev
- name: Install Drupal
run: |
ddev task test:siteinstall:all
- name: Run Functional Tests
run: ddev task test:functional
- name: Upload test artifacts
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: test_result-yarn4-${{ matrix.drupal-version }}
path: test_result