diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3af21cd33fd52a5a9c0744d2e692373be2ad46bd..f16c3522b4388e7255acd84ead2f5e503063f6cb 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -46,7 +46,9 @@ include:
 #
 # Docs at https://git.drupalcode.org/project/gitlab_templates/-/blob/1.0.x/includes/include.drupalci.variables.yml
 ################
-# variables:
+variables:
+  OPT_IN_TEST_PREVIOUS_MAJOR: 1
+  OPT_IN_TEST_CURRENT: 0
 #   SKIP_ESLINT: '1'
 
 ###################################################################################
diff --git a/.tugboat/config.yml b/.tugboat/config.yml
new file mode 100644
index 0000000000000000000000000000000000000000..e5448241c99865304131512143f5d69825949f3b
--- /dev/null
+++ b/.tugboat/config.yml
@@ -0,0 +1,48 @@
+services:
+  php:
+    # Specify the version of Drupal you wish to use for Tugboat below.
+    image: tugboatqa/drupal:10
+    default: true
+    http: false
+    depends: mysql
+    commands:
+      update: |
+        set -eux
+        # This is an environment variable we added in the Dockerfile that
+        # provides the path to Drupal composer root (not the web root).
+        cd $DRUPAL_COMPOSER_ROOT
+        # We need to change the minimum stability to dev to use the path
+        composer config minimum-stability dev
+        # We configure the Drupal project to use the checkout of the module as a
+        # Composer package repository.
+        composer config repositories.tugboat path $TUGBOAT_ROOT
+        # Now we can require this module
+        composer config --no-plugins allow-plugins.simplesamlphp/composer-module-installer true
+        composer config --no-plugins allow-plugins.simplesamlphp/composer-xmlprovider-installer true
+        composer require drupal/simplesamlphp_custom_attributes
+        # Install Drupal on the site.
+        vendor/bin/drush \
+          --yes \
+          --db-url=mysql://tugboat:tugboat@mysql:3306/tugboat \
+          --site-name="Live preview for ${TUGBOAT_PREVIEW_NAME}" \
+          --account-pass=admin \
+          site:install standard
+        # Add tugboat URLs to the Drupal trusted host patterns.
+        echo "\$settings['trusted_host_patterns'] = ['\.tugboatqa\.com\$'];" >> $DOCROOT/sites/default/settings.php
+        # Set up the files directory permissions.
+        mkdir -p $DRUPAL_DOCROOT/sites/default/files
+        chgrp -R www-data $DRUPAL_DOCROOT/sites/default/files
+        chmod 2775 $DRUPAL_DOCROOT/sites/default/files
+        chmod -R g+w $DRUPAL_DOCROOT/sites/default/files
+        # Enable the module.
+        vendor/bin/drush --yes pm:enable simplesamlphp_custom_attributes
+      build: |
+        set -eux
+        cd $DRUPAL_COMPOSER_ROOT
+        composer install --optimize-autoloader
+        # Update this module, including all dependencies.
+        composer update drupal/simplesamlphp_custom_attributes --with-all-dependencies
+        vendor/bin/drush --yes updb
+        vendor/bin/drush cache:rebuild
+  mysql:
+    image: tugboatqa/mariadb
\ No newline at end of file
diff --git a/composer.json b/composer.json
index 216620853bec56c6f3e01b386e6c777f586bc385..6790e091a7eaff79d7cc9607f07ebb6c1bb48788 100644
--- a/composer.json
+++ b/composer.json
@@ -5,11 +5,12 @@
     "homepage": "https://www.drupal.org/project/simplesamlphp_custom_attributes",
     "license": "GPL-2.0+",
     "require": {
-        "drupal/simplesamlphp_auth": "^3.2 || ^4"
+        "drupal/simplesamlphp_auth": "^4"
     },
     "config": {
         "allow-plugins": {
-            "simplesamlphp/composer-module-installer": true
+            "simplesamlphp/composer-module-installer": true,
+            "simplesamlphp/composer-xmlprovider-installer": true
         }
     }
 }