ISSUE-220: do not use npx for action validator, use binaries #1815
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: no-reply@example.com | |
- 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 "no-reply@example.com" | |
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: no-reply@example.com | |
- 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: no-reply@example.com# | |
- name: Start DDEV | |
run: ddev start | |
- name: Setup Nightwatch | |
run: | | |
ddev exec corepack disable | |
ddev exec npm i -g yarn@1.22.1 | |
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: no-reply@example.com# | |
- 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: no-reply@example.com# | |
- 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: no-reply@example.com# | |
- 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: no-reply@example.com# | |
- 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 |