Skip to content

UHF-8762: Run visual regression tests #29

UHF-8762: Run visual regression tests

UHF-8762: Run visual regression tests #29

Workflow file for this run

on:
pull_request:
push:
branches:
- main
env:
SIMPLETEST_DB: mysql://drupal:drupal@db:3306/drupal
name: Visual regression tests
jobs:
tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Set variables
run: echo "DRUPAL_ROOT=$HOME/drupal" >> $GITHUB_ENV
- name: Parse $THEME_NAME from composer.json
run: echo "THEME_NAME=$(cat composer.json | jq -r .name | awk -F/ '{print $NF}')" >> $GITHUB_ENV
- name: Set theme folder
run: echo "THEME_FOLDER=$DRUPAL_ROOT/public/themes/contrib/$THEME_NAME" >> $GITHUB_ENV
- name: Clone platform
run: |
git clone --depth=1 https://github.com/City-of-Helsinki/drupal-helfi-platform.git $DRUPAL_ROOT
rm -rf $DRUPAL_ROOT/.git
- name: Install and start Stonehenge
run: |
git clone -b 4.x https://github.com/druidfi/stonehenge.git ~/stonehenge
cd ~/stonehenge && make up
- name: Build project
working-directory: ${{ env.DRUPAL_ROOT }}
env:
COMPOSER_MIRROR_PATH_REPOS: 1
run: |
composer config repositories.5 path $GITHUB_WORKSPACE
composer require drupal/$THEME_NAME -W
# We use COMPOSER_MIRROR_PATH_REPOS=1 to mirror local repository
# instead of symlinking it to make sure the code is available inside
# the app container.
cp -r $GITHUB_WORKSPACE/.git $THEME_FOLDER/
- name: Start project
working-directory: ${{ env.DRUPAL_ROOT }}
run: docker compose --profile testing up -d --wait && sleep 5
- name: Setup Drupal
working-directory: ${{ env.DRUPAL_ROOT }}
run: |
mkdir public/sites/default/files -p && chmod 777 public/sites/default -R
docker compose exec app bash -c "drush si minimal -y"
docker compose exec app bash -c "drush en helfi_test_content -y"
- name: Node setup
run: |
function docker_run {
docker run --rm --name helfi-node -v $(pwd):/app -w $THEME_CWD node:$NODE_VERSION ${1}
}
NODE_VERSION=$(cat $THEME_FOLDER/.nvmrc 2>/dev/null)
THEME_CWD=/app/public/themes/contrib/$THEME_NAME
docker_run "ls -la"
docker_run "ls -la ../../../../"
docker_run "npm install"
docker_run "npm run fast-reference"
docker_run "npm run fast-test"