diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index 801650d8..98ec06b4 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -9,7 +9,7 @@
## How to install
* Make sure your instance is up and running on correct branch.
- * `git pull origin UHF-0000_insert_correct_branch`
+ * `git checkout UHF-0000_insert_correct_branch`
* `make fresh`
* Run `make drush-cr`
diff --git a/composer.lock b/composer.lock
index 25eefa0b..991cc4a5 100644
--- a/composer.lock
+++ b/composer.lock
@@ -2049,30 +2049,26 @@
},
{
"name": "drupal/content_lock",
- "version": "2.2.0",
+ "version": "2.3.0",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/content_lock.git",
- "reference": "8.x-2.2"
+ "reference": "8.x-2.3"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/content_lock-8.x-2.2.zip",
- "reference": "8.x-2.2",
- "shasum": "9ea5810067c0df18879a16a19236e0cb46f9fba7"
+ "url": "https://ftp.drupal.org/files/projects/content_lock-8.x-2.3.zip",
+ "reference": "8.x-2.3",
+ "shasum": "0e8343f82330899baef65aa85d9994154e29506f"
},
"require": {
- "drupal/core": "^8.8|^9.0"
- },
- "require-dev": {
- "drupal/conflict": "^2.0@ALPHA",
- "drupal/prefetch_cache": "dev-1.x"
+ "drupal/core": "^9.0 || ^10.0"
},
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "8.x-2.2",
- "datestamp": "1607936866",
+ "version": "8.x-2.3",
+ "datestamp": "1668427342",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -2084,6 +2080,10 @@
"GPL-2.0-or-later"
],
"authors": [
+ {
+ "name": "alexpott",
+ "homepage": "https://www.drupal.org/user/157725"
+ },
{
"name": "chr.fritsch",
"homepage": "https://www.drupal.org/user/2103716"
@@ -2735,26 +2735,26 @@
},
{
"name": "drupal/easy_breadcrumb",
- "version": "2.0.3",
+ "version": "2.0.4",
"source": {
"type": "git",
"url": "https://git.drupalcode.org/project/easy_breadcrumb.git",
- "reference": "2.0.3"
+ "reference": "2.0.4"
},
"dist": {
"type": "zip",
- "url": "https://ftp.drupal.org/files/projects/easy_breadcrumb-2.0.3.zip",
- "reference": "2.0.3",
- "shasum": "da95aeef35f606b47291474152a0b3b464a07e8f"
+ "url": "https://ftp.drupal.org/files/projects/easy_breadcrumb-2.0.4.zip",
+ "reference": "2.0.4",
+ "shasum": "dc0fc1d166a30028a3410f476467dcdea3d52223"
},
"require": {
- "drupal/core": "^8 || ^9"
+ "drupal/core": "^9.2 || ^10"
},
"type": "drupal-module",
"extra": {
"drupal": {
- "version": "2.0.3",
- "datestamp": "1654447758",
+ "version": "2.0.4",
+ "datestamp": "1668029764",
"security-coverage": {
"status": "covered",
"message": "Covered by Drupal's security advisory policy"
@@ -3926,16 +3926,16 @@
},
{
"name": "drupal/hdbt",
- "version": "4.2.1",
+ "version": "4.3.0",
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-hdbt.git",
- "reference": "5678e07a1442a3327bb596a351e02de822b5aaf9"
+ "reference": "c9dc8ce1b7629521a08ac7de7ff3cc7a1f352573"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/5678e07a1442a3327bb596a351e02de822b5aaf9",
- "reference": "5678e07a1442a3327bb596a351e02de822b5aaf9",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt/zipball/c9dc8ce1b7629521a08ac7de7ff3cc7a1f352573",
+ "reference": "c9dc8ce1b7629521a08ac7de7ff3cc7a1f352573",
"shasum": ""
},
"require": {
@@ -3950,23 +3950,23 @@
"Drupal"
],
"support": {
- "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/4.2.1",
+ "source": "https://github.com/City-of-Helsinki/drupal-hdbt/tree/4.3.0",
"issues": "https://github.com/City-of-Helsinki/drupal-hdbt/issues"
},
- "time": "2022-11-08T10:18:33+00:00"
+ "time": "2022-11-16T10:05:53+00:00"
},
{
"name": "drupal/hdbt_admin",
- "version": "1.8.0",
+ "version": "1.8.2",
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-hdbt-admin.git",
- "reference": "42d74e27de19bd9392bbdda1bf45c3d6724b603f"
+ "reference": "74d8c167196df56026be45339a70f91b87e3c430"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt-admin/zipball/42d74e27de19bd9392bbdda1bf45c3d6724b603f",
- "reference": "42d74e27de19bd9392bbdda1bf45c3d6724b603f",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-hdbt-admin/zipball/74d8c167196df56026be45339a70f91b87e3c430",
+ "reference": "74d8c167196df56026be45339a70f91b87e3c430",
"shasum": ""
},
"require": {
@@ -3982,10 +3982,10 @@
"Drupal"
],
"support": {
- "source": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/tree/1.8.0",
+ "source": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/tree/1.8.2",
"issues": "https://github.com/City-of-Helsinki/drupal-hdbt-admin/issues"
},
- "time": "2022-11-08T07:53:25+00:00"
+ "time": "2022-11-16T14:06:42+00:00"
},
{
"name": "drupal/helfi_api_base",
@@ -4028,16 +4028,16 @@
},
{
"name": "drupal/helfi_azure_fs",
- "version": "1.1.1",
+ "version": "1.1.2",
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-module-helfi-azure-fs.git",
- "reference": "0c8555e5f447d619adb9b3eba264905744c40497"
+ "reference": "e2486d70d0bcfb9c696065e2bded6c287fd7a079"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-azure-fs/zipball/0c8555e5f447d619adb9b3eba264905744c40497",
- "reference": "0c8555e5f447d619adb9b3eba264905744c40497",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-module-helfi-azure-fs/zipball/e2486d70d0bcfb9c696065e2bded6c287fd7a079",
+ "reference": "e2486d70d0bcfb9c696065e2bded6c287fd7a079",
"shasum": ""
},
"require": {
@@ -4053,10 +4053,10 @@
],
"description": "Helfi - Azure FS",
"support": {
- "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-azure-fs/tree/1.1.1",
+ "source": "https://github.com/City-of-Helsinki/drupal-module-helfi-azure-fs/tree/1.1.2",
"issues": "https://github.com/City-of-Helsinki/drupal-module-helfi-azure-fs/issues"
},
- "time": "2022-09-09T06:23:52+00:00"
+ "time": "2022-11-15T03:27:28+00:00"
},
{
"name": "drupal/helfi_drupal_tools",
@@ -4064,12 +4064,12 @@
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-tools.git",
- "reference": "b2eae5c3b4f12ef9ddaa40118fa8119be6705cab"
+ "reference": "4412bd73bf370456f3787433643f6b6510457bf8"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-tools/zipball/b2eae5c3b4f12ef9ddaa40118fa8119be6705cab",
- "reference": "b2eae5c3b4f12ef9ddaa40118fa8119be6705cab",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-tools/zipball/4412bd73bf370456f3787433643f6b6510457bf8",
+ "reference": "4412bd73bf370456f3787433643f6b6510457bf8",
"shasum": ""
},
"default-branch": true,
@@ -4082,7 +4082,7 @@
"source": "https://github.com/City-of-Helsinki/drupal-tools/tree/main",
"issues": "https://github.com/City-of-Helsinki/drupal-tools/issues"
},
- "time": "2022-11-03T07:13:59+00:00"
+ "time": "2022-11-16T12:29:19+00:00"
},
{
"name": "drupal/helfi_media_formtool",
@@ -4186,16 +4186,16 @@
},
{
"name": "drupal/helfi_platform_config",
- "version": "2.13.13",
+ "version": "2.13.16",
"source": {
"type": "git",
"url": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config.git",
- "reference": "d13b2b7ab66eedbed5af5c5896b5eb1973c90973"
+ "reference": "cb91004f566c82a666340f19e42b11e3f0cf83df"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/d13b2b7ab66eedbed5af5c5896b5eb1973c90973",
- "reference": "d13b2b7ab66eedbed5af5c5896b5eb1973c90973",
+ "url": "https://api.github.com/repos/City-of-Helsinki/drupal-helfi-platform-config/zipball/cb91004f566c82a666340f19e42b11e3f0cf83df",
+ "reference": "cb91004f566c82a666340f19e42b11e3f0cf83df",
"shasum": ""
},
"require": {
@@ -4293,9 +4293,6 @@
},
"drupal/field_group": {
"[#UHF-3268] Support for field group translations": "https://raw.githubusercontent.com/City-of-Helsinki/drupal-helfi-platform-config/736077493b73d83b63081820790dc68e226a6460/patches/field_group_fix-translations_label_description-3111107-31-rerolled.patch"
- },
- "drupal/easy_breadcrumb": {
- "[#UHF-3631] Breadcrumb allow dashes and underscores": "https://www.drupal.org/files/issues/2020-07-23/easy_breadcrumb-allow_hyphens_underscores-3161100-2.patch"
}
}
},
@@ -4304,10 +4301,10 @@
],
"description": "HELfi platform config",
"support": {
- "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/2.13.13",
+ "source": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/tree/2.13.16",
"issues": "https://github.com/City-of-Helsinki/drupal-helfi-platform-config/issues"
},
- "time": "2022-11-08T13:18:34+00:00"
+ "time": "2022-11-16T14:09:33+00:00"
},
{
"name": "drupal/helfi_proxy",
@@ -8734,16 +8731,16 @@
},
{
"name": "nikic/php-parser",
- "version": "v4.15.1",
+ "version": "v4.15.2",
"source": {
"type": "git",
"url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900"
+ "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/0ef6c55a3f47f89d7a374e6f835197a0b5fcf900",
- "reference": "0ef6c55a3f47f89d7a374e6f835197a0b5fcf900",
+ "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc",
+ "reference": "f59bbe44bf7d96f24f3e2b4ddc21cd52c1d2adbc",
"shasum": ""
},
"require": {
@@ -8784,9 +8781,9 @@
],
"support": {
"issues": "https://github.com/nikic/PHP-Parser/issues",
- "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.1"
+ "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.2"
},
- "time": "2022-09-04T07:30:47+00:00"
+ "time": "2022-11-12T15:38:23+00:00"
},
{
"name": "nodespark/des-connector",
@@ -11199,16 +11196,16 @@
},
{
"name": "symfony/polyfill-php72",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php72.git",
- "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2"
+ "reference": "869329b1e9894268a8a61dabb69153029b7a8c97"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/bf44a9fd41feaac72b074de600314a93e2ae78e2",
- "reference": "bf44a9fd41feaac72b074de600314a93e2ae78e2",
+ "url": "https://api.github.com/repos/symfony/polyfill-php72/zipball/869329b1e9894268a8a61dabb69153029b7a8c97",
+ "reference": "869329b1e9894268a8a61dabb69153029b7a8c97",
"shasum": ""
},
"require": {
@@ -11217,7 +11214,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -11255,7 +11252,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php72/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-php72/tree/v1.27.0"
},
"funding": [
{
@@ -11271,20 +11268,20 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-php73",
- "version": "v1.26.0",
+ "version": "v1.27.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php73.git",
- "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85"
+ "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/e440d35fa0286f77fb45b79a03fedbeda9307e85",
- "reference": "e440d35fa0286f77fb45b79a03fedbeda9307e85",
+ "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/9e8ecb5f92152187c4799efd3c96b78ccab18ff9",
+ "reference": "9e8ecb5f92152187c4799efd3c96b78ccab18ff9",
"shasum": ""
},
"require": {
@@ -11293,7 +11290,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "1.26-dev"
+ "dev-main": "1.27-dev"
},
"thanks": {
"name": "symfony/polyfill",
@@ -11334,7 +11331,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php73/tree/v1.26.0"
+ "source": "https://github.com/symfony/polyfill-php73/tree/v1.27.0"
},
"funding": [
{
@@ -11350,7 +11347,7 @@
"type": "tidelift"
}
],
- "time": "2022-05-24T11:49:31+00:00"
+ "time": "2022-11-03T14:55:06+00:00"
},
{
"name": "symfony/polyfill-php80",
diff --git a/conf/cmi/eu_cookie_compliance.settings.yml b/conf/cmi/eu_cookie_compliance.settings.yml
index 006cc71c..1beb1c18 100644
--- a/conf/cmi/eu_cookie_compliance.settings.yml
+++ b/conf/cmi/eu_cookie_compliance.settings.yml
@@ -67,7 +67,7 @@ enable_save_preferences_button: true
domain_all_sites: true
settings_tab_enabled: false
containing_element: body
-cookie_policy_version: 1.0.0
+cookie_policy_version: 1.1.0
cookie_value_disagreed: '0'
cookie_value_agreed_show_thank_you: '1'
cookie_value_agreed: '2'
diff --git a/conf/cmi/hdbt.settings.yml b/conf/cmi/hdbt.settings.yml
index 87c5f794..45378049 100644
--- a/conf/cmi/hdbt.settings.yml
+++ b/conf/cmi/hdbt.settings.yml
@@ -8,4 +8,5 @@ features:
logo:
use_default: 1
favicon:
- use_default: 1
+ use_default: 0
+ path: ''
diff --git a/conf/cmi/language/fi/views.view.media_library.yml b/conf/cmi/language/fi/views.view.media_library.yml
index 77ad6f20..bc50fbca 100644
--- a/conf/cmi/language/fi/views.view.media_library.yml
+++ b/conf/cmi/language/fi/views.view.media_library.yml
@@ -46,8 +46,6 @@ display:
group_items:
1:
title: Julkaistu
- 2:
- title: Julkaisematon
name:
expose:
label: Nimi
diff --git a/conf/cmi/language/sv/views.view.media_library.yml b/conf/cmi/language/sv/views.view.media_library.yml
index ebaeba72..8c5440f9 100644
--- a/conf/cmi/language/sv/views.view.media_library.yml
+++ b/conf/cmi/language/sv/views.view.media_library.yml
@@ -45,8 +45,6 @@ display:
group_items:
1:
title: Publicerad
- 2:
- title: 'Ej publicerad'
name:
expose:
label: Namn
diff --git a/conf/cmi/views.view.media_library.yml b/conf/cmi/views.view.media_library.yml
index b6543fcf..e4d5547e 100644
--- a/conf/cmi/views.view.media_library.yml
+++ b/conf/cmi/views.view.media_library.yml
@@ -1032,7 +1032,7 @@ display:
exclude: false
alter:
alter_text: true
- text: '{% trans %}Edit {{ name }}{% endtrans %}'
+ text: "{% trans %}Edit {{ name }}{% endtrans %}\r\n"
make_link: false
path: ''
absolute: false
@@ -1275,6 +1275,27 @@ display:
rendering_language: '***LANGUAGE_language_interface***'
display_extenders: { }
path: admin/content/media-widget
+ pager:
+ type: full
+ options:
+ offset: 0
+ items_per_page: 24
+ total_pages: null
+ id: 0
+ tags:
+ next: ››
+ previous: ‹‹
+ first: '« First'
+ last: 'Last »'
+ expose:
+ items_per_page: false
+ items_per_page_label: 'Items per page'
+ items_per_page_options: '6, 12, 24, 48'
+ items_per_page_options_all: false
+ items_per_page_options_all_label: '- All -'
+ offset: false
+ offset_label: Offset
+ quantity: 9
cache_metadata:
max-age: -1
contexts:
diff --git a/docker/openshift/crons/base.sh b/docker/openshift/crons/base.sh
index f42f8f4f..6449037e 100644
--- a/docker/openshift/crons/base.sh
+++ b/docker/openshift/crons/base.sh
@@ -17,13 +17,13 @@ echo "Starting cron: $(date)"
# @endcode
# Uncomment this to enable TPR migration cron
-#exec "/crons/migrate-tpr.sh" &
+exec "/crons/migrate-tpr.sh" &
# Uncomment this to enable Varnish purge cron
-#exec "/crons/purge-queue.sh" &
+exec "/crons/purge-queue.sh" &
# Uncomment this to enable automatic translation updates.
-# exec "/crons/update-translations.sh" &
+exec "/crons/update-translations.sh" &
# Uncomment this to enable content scheduler
-# exec "/crons/content-scheduler.sh" &
+exec "/crons/content-scheduler.sh" &
while true
do
diff --git a/public/sites/default/azure.settings.php b/public/sites/default/azure.settings.php
index 86c26ea3..bfc1a1eb 100755
--- a/public/sites/default/azure.settings.php
+++ b/public/sites/default/azure.settings.php
@@ -20,3 +20,5 @@
// Keep old assets for three months (default is one month).
$config['system.performance']['stale_file_threshold'] = 7776000;
+
+$settings['is_azure'] = TRUE;
diff --git a/public/sites/default/settings.php b/public/sites/default/settings.php
index 2b34ca81..6d9747ca 100755
--- a/public/sites/default/settings.php
+++ b/public/sites/default/settings.php
@@ -211,6 +211,8 @@
$settings['container_yamls'][] = 'modules/contrib/redis/redis.services.yml';
}
+$settings['is_azure'] = FALSE;
+
// Environment specific overrides.
if (file_exists(__DIR__ . '/all.settings.php')) {
include __DIR__ . '/all.settings.php';
diff --git a/tools/make/project/robo.mk b/tools/make/project/robo.mk
new file mode 100644
index 00000000..8780af09
--- /dev/null
+++ b/tools/make/project/robo.mk
@@ -0,0 +1,86 @@
+STONEHENGE_PATH ?= ${HOME}/stonehenge
+PROJECT_DIR ?= ${GITHUB_WORKSPACE}
+SITE_PREFIX ?= /
+
+SETUP_ROBO_TARGETS :=
+CI_POST_INSTALL_TARGETS :=
+
+ifeq ($(CI),true)
+ SETUP_ROBO_TARGETS += install-stonehenge start-stonehenge set-permissions
+ CI_POST_INSTALL_TARGETS += fix-files-permission
+endif
+
+SETUP_ROBO_TARGETS += up composer-install $(CI_POST_INSTALL_TARGETS) update-automation
+
+ifeq ($(DRUPAL_BUILD_FROM_SCRATCH),true)
+ SETUP_ROBO_TARGETS += install-drupal post-install-tasks
+else
+ SETUP_ROBO_TARGETS += install-drupal-from-dump post-install-tasks
+endif
+
+install-stonehenge: $(STONEHENGE_PATH)/.git
+
+$(STONEHENGE_PATH)/.git:
+ git clone -b 3.x https://github.com/druidfi/stonehenge.git $(STONEHENGE_PATH)
+
+PHONY += start-stonehenge
+start-stonehenge:
+ cd $(STONEHENGE_PATH) && COMPOSE_FILE=docker-compose.yml make up
+
+$(PROJECT_DIR)/helfi-test-automation-python/.git:
+ git clone https://github.com/City-of-Helsinki/helfi-test-automation-python.git $(PROJECT_DIR)/helfi-test-automation-python
+
+PHONY += update-automation
+update-automation: $(PROJECT_DIR)/helfi-test-automation-python/.git
+ git pull
+
+PHONY += install-drupal
+install-drupal:
+ $(call docker_run_ci,app,drush si minimal -y)
+ $(call docker_run_ci,app,drush cr)
+ $(call docker_run_ci,app,drush si minimal --existing-config -y)
+ $(call docker_run_ci,app,drush deploy)
+
+PHONY += install-drupal-from-dump
+install-drupal-from-dump:
+ $(call docker_run_ci,app,drush sql-drop -y)
+ $(call docker_run_ci,app,mysql --user=drupal --password=drupal --database=drupal --host=db --port=3306 -A < latest.sql)
+ $(call docker_run_ci,app,drush deploy)
+
+PHONY += post-install-tasks
+post-install-tasks:
+ $(call docker_run_ci,app,drush upwd helfi-admin Test_Automation)
+ $(call docker_run_ci,app,drush en helfi_example_content syslog -y)
+ $(call docker_run_ci,app,drush helfi:migrate-fixture tpr_unit --publish)
+ $(call docker_run_ci,app,drush helfi:migrate-fixture tpr_service --publish)
+ $(call docker_run_ci,app,drush helfi:migrate-fixture tpr_errand_service --publish)
+ $(call docker_run_ci,app,drush helfi:migrate-fixture tpr_service_channel --publish)
+ $(call docker_run_ci,app,drush pmu editoria11y -y)
+
+PHONY += save-dump
+save-dump:
+ $(call docker_run_ci,app,drush sql-dump --result-file=/app/latest.sql)
+
+PHONY += robo-shell
+robo-shell:
+ @docker compose $(DOCKER_COMPOSE_FILES) exec robo sh
+
+PHONY += set-permissions
+set-permissions:
+ chmod 777 /home/runner/.cache/composer -R
+ chmod 777 -R $(PROJECT_DIR)
+
+PHONY += fix-files-permission
+fix-files-permission:
+ mkdir $(PROJECT_DIR)public/sites/default/files -p && chmod 777 -R $(PROJECT_DIR)public/sites/default/files
+
+define docker_run_ci
+ docker compose exec -T $(1) sh -c "$(2)"
+endef
+
+PHONY += setup-robo
+setup-robo: $(SETUP_ROBO_TARGETS)
+
+PHONY += run-robo-tests
+run-robo-tests:
+ $(call docker_run_ci,robo,cd /app/helfi-test-automation-python && chmod +x run_all_tests.sh && PREFIX=$(SITE_PREFIX) BASE_URL=$(DRUPAL_HOSTNAME) ./run_all_tests.sh)