Commit 59c38d95 authored by Thomas Löffler's avatar Thomas Löffler
Browse files

Merge branch 'develop-v10' into implement_composer

parents b6240f87 ff31e1e1
Pipeline #8797 passed with stages
in 6 minutes and 39 seconds
......@@ -3,19 +3,19 @@
/commands/*/*.example
/commands/*/README.txt
/commands/host/launch
/commands/db/mysql
/homeadditions/*.example
/homeadditions/README.txt
/.gitignore
/import.yaml
/docker-compose.yaml
/db_snapshots
/sequelpro.spf
/import-db
/.bgsync*
/config.*.y*ml
/.webimageBuild
/.dbimageBuild
/.bgsyncimageBuild
/.sshimageBuild
/.webimageExtra
/.dbimageExtra
......
#!/bin/bash
## Description: Runs the npm process to build frontend assets
## Usage: build-frontend
## Example: "ddev build-frontend"
npm --prefix private/typo3conf/ext/t3olayout/Build install
npm --prefix private/typo3conf/ext/t3olayout/Build run-script build
rm -Rf private/typo3conf/ext/t3olayout/Build/node_modules
#!/bin/bash
## Description: Uses typo3_console in ddev container
## Usage: console
## Example: "ddev console cache:flush"
vendor/bin/typo3cms $1
APIVersion: v1.11.2
APIVersion: v1.13.2
name: typo3.org
type: typo3
docroot: public
php_version: "7.2"
php_version: "7.4"
webserver_type: nginx-fpm
router_http_port: "80"
router_https_port: "443"
xdebug_enabled: false
additional_hostnames: []
additional_fqdns: []
mariadb_version: "10.1"
mariadb_version: "10.3"
nfs_mount_enabled: false
provider: default
hooks:
post-import-db:
- exec: ./vendor/bin/typo3cms database:updateschema
post-start:
- exec: cp private/typo3conf/AdditionalConfiguration.ddev.php private/typo3conf/AdditionalConfiguration.php
- exec: composer install --ignore-platform-reqs -d /var/www/html
- exec: npm --prefix private/typo3conf/ext/t3olayout/Build install
- exec: npm --prefix private/typo3conf/ext/t3olayout/Build run-script build
- exec: composer install
- exec: ./vendor/bin/typo3cms install:generatepackagestates
- exec: ./vendor/bin/typo3cms install:extensionsetupifpossible
webimage_extra_packages: [php7.2-ldap]
webimage_extra_packages: [php7.4-ldap]
use_dns_when_possible: true
timezone: Europe/Berlin
# This config.yaml was created with ddev version v1.11.2
# webimage: drud/ddev-webserver:v1.11.0
# dbimage: drud/ddev-dbserver:v1.11.0-10.2
# dbaimage: drud/phpmyadmin:v1.11.0
# bgsyncimage: drud/ddev-bgsync:v1.11.0
# This config.yaml was created with ddev version v1.13.2
# webimage: drud/ddev-webserver:v1.13.1
# dbimage: drud/ddev-dbserver-mariadb-10.2:v1.13.0
# dbaimage: phpmyadmin/phpmyadmin:5
# However we do not recommend explicitly wiring these images into the
# config.yaml as they may break future versions of ddev.
# You can update this config.yaml using 'ddev config'.
......@@ -43,7 +42,7 @@ timezone: Europe/Berlin
# docroot: <relative_path> # Relative path to the directory containing index.php.
# php_version: "7.2" # PHP version to use, "5.6", "7.0", "7.1", "7.2", "7.3", "7.4"
# php_version: "7.3" # PHP version to use, "5.6", "7.0", "7.1", "7.2", "7.3", "7.4"
# You can explicitly specify the webimage, dbimage, dbaimage lines but this
# is not recommended, as the images are often closely tied to ddev's' behavior,
......@@ -52,13 +51,18 @@ timezone: Europe/Berlin
# webimage: <docker_image> # nginx/php docker image.
# dbimage: <docker_image> # mariadb docker image.
# dbaimage: <docker_image>
# bgsyncimage: <docker_image>
# mariadb_version and mysql_version
# ddev can use many versions of mariadb and mysql
# However these directives are mutually exclusive
# mariadb_version: 10.2
# mysql_version: 8.0
# router_http_port: <port> # Port to be used for http (defaults to port 80)
# router_https_port: <port> # Port for https (defaults to 443)
# xdebug_enabled: false # Set to true to enable xdebug and "ddev start" or "ddev restart"
# Note that for most people the commands
# Note that for most people the commands
# "ddev exec enable_xdebug" and "ddev exec disable_xdebug" work better,
# as leaving xdebug enabled all the time is a big performance hit.
......@@ -66,7 +70,7 @@ timezone: Europe/Berlin
# timezone: Europe/Berlin
# This is the timezone used in the containers and by PHP;
# it can be set to any valid timezone,
# it can be set to any valid timezone,
# see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
# For example Europe/Dublin or MST7MDT
......@@ -88,24 +92,20 @@ timezone: Europe/Berlin
# working_dir:
# web: /var/www/html
# db: /home
# would set the default working directory for the web and db services.
# These values specify the destination directory for ddev ssh and the
# directory in which commands passed into ddev exec are run.
# would set the default working directory for the web and db services.
# These values specify the destination directory for ddev ssh and the
# directory in which commands passed into ddev exec are run.
# omit_containers: ["dba", "ddev-ssh-agent"]
# would omit the dba (phpMyAdmin) and ddev-ssh-agent containers. Currently
# only those two containers can be omitted here.
# Note that these containers can also be omitted globally in the
# Note that these containers can also be omitted globally in the
# ~/.ddev/global_config.yaml or with the "ddev config global" command.
# nfs_mount_enabled: false
# Great performance improvement but requires host configuration first.
# See https://ddev.readthedocs.io/en/stable/users/performance/#using-nfs-to-mount-the-project-into-the-container
# webcache_enabled: false (deprecated)
# Was only for macOS, but now deprecated.
# See https://ddev.readthedocs.io/en/stable/users/performance/#using-webcache_enabled-to-cache-the-project-directory
# host_https_port: "59002"
# The host port binding for https can be explicitly specified. It is
# dynamic unless otherwise specified.
......@@ -135,8 +135,8 @@ timezone: Europe/Berlin
# Extra Debian packages that are needed in the dbimage can be added here
# use_dns_when_possible: true
# If the host has internet access and the domain configured can
# successfully be looked up, DNS will be used for hostname resolution
# If the host has internet access and the domain configured can
# successfully be looked up, DNS will be used for hostname resolution
# instead of editing /etc/hosts
# Defaults to true
......@@ -147,13 +147,18 @@ timezone: Europe/Berlin
# pre-v1.9 behavior.
# ngrok_args: --subdomain mysite --auth username:pass
# Provide extra flags to the "ngrok http" command, see
# Provide extra flags to the "ngrok http" command, see
# https://ngrok.com/docs#http or run "ngrok http -h"
# disable_settings_management: false
# If true, ddev will not create CMS-specific settings files like
# Drupal's settings.php/settings.ddev.php or TYPO3's AdditionalSettings.php
# In this case the user must provide all such settings.
# provider: default # Currently either "default" or "pantheon"
#
# Many ddev commands can be extended to run tasks before or after the
# ddev command is executed, for example "post-start", "post-import-db",
# Many ddev commands can be extended to run tasks before or after the
# ddev command is executed, for example "post-start", "post-import-db",
# "pre-composer", "post-composer"
# See https://ddev.readthedocs.io/en/stable/users/extending-commands/ for more
# information on the commands that can be extended and the tasks you can define
......
# You can copy this Dockerfile.example to Dockerfile to add configuration
# or packages or anything else to your dbimage
ARG BASE_IMAGE=drud/ddev-dbserver:v1.6.0-10.1
FROM $BASE_IMAGE
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y telnet netcat
RUN echo "Built from drud/ddev-dbserver:v1.6.0-10.1" >/var/tmp/built-from.txt
# ddev apache solr recipe file
#
# To use this in your own project: Copy this file to your project's .ddev folder,
# and create the folder path .ddev/solr/conf. Then, copy the solr configuration
# files for your project to .ddev/solr/conf. E.g., using Drupal Search API Solr,
# you would copy the solr-conf/5.x/ contents into .ddev/solr/conf. The configuration
# files must be present before running `ddev start`.
version: '3.6'
services:
solr: # This is the service name used when running ddev commands accepting the --service flag
container_name: ddev-${DDEV_SITENAME}-solr # This is the name of the container. It is recommended to follow the same name convention used in the main docker-compose.yml file.
image: solr:6.6.2
restart: on-failure
solr:
container_name: ddev-${DDEV_SITENAME}-solr
image: typo3solr/ext-solr:10.0.1
restart: "no"
ports:
- 8983 # Solr is served from this port inside the container
- 8983
labels:
# These labels ensure this service is discoverable by ddev
com.ddev.site-name: ${DDEV_SITENAME}
com.ddev.approot: $DDEV_APPROOT
com.ddev.app-url: $DDEV_URL
environment:
- VIRTUAL_HOST=$DDEV_HOSTNAME # This defines the host name the service should be accessible from. This will be sitename.ddev.local
- HTTP_EXPOSE=8983 # This defines the port the service should be accessible from at sitename.ddev.local
- VIRTUAL_HOST=$DDEV_HOSTNAME
- HTTP_EXPOSE=8983
volumes:
- "./solr:/solr-conf" # This exposes a mount to the host system `.ddev/solr-conf` directory.
- "./solr/configsets:/opt/solr/server/solr/configsets" # ext:solr configsets linking
- "./solr/mycores:/opt/solr/server/solr/mycores"
entrypoint:
- docker-entrypoint.sh
- solr-precreate
- t3o
- /solr-conf
# This links the solr service to the web service defined in the main docker-compose.yml, allowing applications running in the web service to access the solr service at sitename.ddev.local:8983
- "./solr:/opt/solr/server/solr"
web:
links:
- solr:$DDEV_HOSTNAME
......@@ -4,3 +4,7 @@ services:
web:
environment:
- TYPO3_CONTEXT=Development
- DB_NAME=db
- DB_HOST=db
- DB_USERNAME=db
- DB_PASSWORD=db
# You can copy this Dockerfile.example to Dockerfile to add configuration
# or packages or anything else to your webimage
ARG BASE_IMAGE=drud/ddev-webserver:v1.8.0
FROM $BASE_IMAGE
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y php-yaml
RUN npm install --global gulp-cli
RUN ln -fs /usr/share/zoneinfo/Europe/Berlin /etc/localtime && dpkg-reconfigure --frontend noninteractive tzdata
.idea
/var/
/vendor
/private
!/private/typo3conf/LocalConfiguration.php
!/private/typo3conf/AdditionalConfiguration.ddev.php
!/private/typo3conf/RealurlConfiguration.php
/public/
/public
!/public/security.txt
/public/services/api-keys.php
!/public/.well-known/security.txt
!/public/humans.txt
!/public/robots.txt
!/public/services
......
include:
- project: 't3o/t3olayout'
ref: master
ref: develop-v10
file: '/Configuration/GitLab/t3o-builds.yml'
variables:
GIT_STRATEGY: "none"
GIT_SSL_NO_VERIFY: "true"
STAGE_PORT: 22200
STAGE_HOST: "stage-v9.typo3.org"
STAGE_HOST: "typo3.dev"
PRODUCTION_PORT: 22201
PRODUCTION_HOST: "typo3.org"
DUMP_USER: "tthreeorgstage"
DUMP_USER: "t3o-stage"
STAGE_USER: "t3o-stage"
DUMP_EXCLUDE_TABLES_LIST: "be_groups,be_sessions,be_users,cf_cache_hash,cf_cache_hash_tags,cf_cache_imagesizes,cf_cache_imagesizes_tags,cf_cache_news_category,cf_cache_news_category_tags,cf_cache_pages,cf_cache_pages_tags,cf_cache_pagesection,cf_cache_pagesection_tags,cf_cache_rootline,cf_cache_rootline_tags,cf_extbase_datamapfactory_datamap,cf_extbase_datamapfactory_datamap_tags,cf_extbase_object,cf_extbase_object_tags,cf_extbase_reflection,cf_extbase_reflection_tags,cf_tx_solr,cf_tx_solr_configuration,cf_tx_solr_configuration_tags,cf_tx_solr_tags,fe_groups,fe_sessions,fe_users,sys_domain,sys_log,tx_solr_cache,tx_solr_cache_tags"
PHP_EXECUTABLE: "/opt/php/php72/bin/php"
.deploy-template: &deploy_template
stage: deploy
image: composer:1
before_script:
- apk add rsync --update
- mkdir -p /root/.ssh/
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY_STAGE" | ssh-add -
- echo "$SSH_PRIVATE_KEY_PRODUCTION" | ssh-add -
- ssh-keyscan ${STAGE_HOST} >> /root/.ssh/known_hosts
- ssh-keyscan -p ${PRODUCTION_PORT} ${PRODUCTION_HOST} >> /root/.ssh/known_hosts
- composer config cache-dir /cache/composer
- composer global require deployer/deployer:6.6.0 --update-with-dependencies
- composer global require deployer/recipes
script:
- /tmp/vendor/bin/dep --file=./.gitlab-ci/deployer/deploy.php deploy -vv ${CI_BUILD_REF_NAME}
dependencies:
- layout
deploy-develop:
<<: *deploy_template
environment:
name: develop
url: https://${STAGE_HOST}
script:
- /tmp/vendor/bin/dep --file=./.gitlab-ci/deployer/deploy.php deploy -vv develop
only:
- develop-v10
......@@ -8,7 +8,8 @@ require_once '/tmp/vendor/deployer/recipes/recipe/rsync.php';
$sharedDirectories = [
'private/fileadmin',
'private/uploads',
'public/.well-known'
'public/.well-known',
'var'
];
set('shared_dirs', $sharedDirectories);
......@@ -37,6 +38,7 @@ $exclude = [
'Upgrading.txt',
'README',
'*.example',
'Build'
];
set('rsync', [
'exclude' => array_merge($sharedDirectories, $sharedFiles, $exclude),
......@@ -51,13 +53,20 @@ set('rsync', [
'timeout' => 300
]);
set('rsync_src', './');
set('keep_releases', 10);
inventory('./.gitlab-ci/deployer/servers.yml');
set('php', '/opt/php/php72/bin/php');
set('php', 'php');
set('bin_folder', 'vendor/bin/');
task('solr_host', function () {
run('cd {{deploy_path}} && ./solr_change_host.sh');
});
task('typo3', function () {
if (get('stage') === 'production') {
set('php', '/opt/php/php72/bin/php');
}
run('cd {{release_path}} && {{php}} {{bin_folder}}typo3cms install:generatepackagestates');
run('cd {{release_path}} && {{php}} {{bin_folder}}typo3cms database:updateschema');
run('cd {{release_path}} && {{php}} {{bin_folder}}typo3cms install:extensionsetupifpossible');
});
......@@ -74,6 +83,7 @@ task('deploy', [
'deploy:writable',
'typo3',
'deploy:symlink',
'solr_host',
'cache',
'cleanup'
]);
master:
stage: production
stage: master
hostname: typo3.org
port: 22201
user: tthreeorg
writable_mode: chmod
forward_agent: true
deploy_path: ~/ci
keep_releases: 2
develop:
stage: stage
hostname: stage-v9.typo3.org
port: 22200
user: tthreeorgstage
stage: develop
hostname: typo3.dev
user: t3o-stage
writable_mode: chmod
forward_agent: true
deploy_path: ~/ci
deploy_path: ~/ci/
keep_releases: 2
{
"name": "t3o/typo3.org",
"description": "Website for TYPO3.org",
"minimum-stability": "dev",
"prefer-stable": true,
"authors": [
{
"name": "t3o team",
......@@ -46,34 +48,32 @@
},
{
"type": "vcs",
"url": "https://bitbucket.typo3.com/scm/ext/hubspot_forms.git"
"url": "https://github.com/TYPO3GmbH/ext-hubspot-forms.git"
}
],
"require": {
"typo3/cms-linkvalidator": "*",
"helhum/typo3-console": "^5.0",
"dmitryd/typo3-realurl": "2.3.0",
"t3o/t3olayout": "^3.0",
"t3o/certifications": "^2.1",
"georgringer/news": "^7.0",
"apache-solr-for-typo3/solr": "^7.5",
"reelworx/rx-shariff": "^10.3",
"derhansen/sf_event_mgt": "^3.0",
"t3o/typo3_roadmap": "^2.0",
"t3o/t3o_membership": "^2.0",
"t3o/randombanners": "^1.0",
"clickstorm/cs_seo": "^2.3",
"gordalina/cachetool": "^3.2",
"apache-solr-for-typo3/solr": "dev-master",
"cweagans/composer-patches": "^1.6",
"typo3/cms-sys-note": "*",
"t3g/hubspot-forms": "1.0.0",
"helhum/typo3-secure-web": "^0.2.8",
"derhansen/sf_event_mgt": "dev-typo3-10-compatibility",
"georgringer/news": "^8.0",
"gordalina/cachetool": "^4.0",
"reelworx/rx-shariff": "^13.0",
"t3o/certifications": "^3.0",
"t3o/randombanners": "^2.0",
"t3o/t3o_donation": "^1.0",
"t3o/t3o_membership": "^3.0",
"t3o/t3olayout": "dev-develop-v10",
"t3o/t3org_layout": "@dev",
"t3o/t3o_donation": "@dev",
"nitsan/ns-youtube": "^1.1"
"t3o/typo3_roadmap": "^4.0",
"typo3/cms-dashboard": "^10.4",
"typo3/cms-linkvalidator": "^10.4",
"typo3/cms-redirects": "^10.4",
"typo3/cms-seo": "^10.4",
"typo3/cms-sys-note": "^10.4",
"yoast-seo-for-typo3/yoast_seo": "^6.0"
},
"require-dev": {
"ichhabrecht/filefill": "^2.0",
"ichhabrecht/filefill": "^3.2",
"punktde/codeception-cli": "^1.1.0",
"punktde/codeception-webdriver": "^1.1.0",
"punktde/codeception-filesystem": "^1.1.0",
......@@ -85,8 +85,9 @@
"t3o/test-helpers": "dev-master"
},
"config": {
"sort-packages": true,
"platform": {
"php": "7.2.13"
"php": "7.4.4"
}
},
"extra": {
......
This diff is collapsed.
base: 'https://typo3.org'
baseVariants:
-
base: 'https://typo3.org.ddev.site'
condition: 'applicationContext == "Development"'
-
base: 'https://typo3.dev'
condition: 'applicationContext == "Testing"'
-
base: 'https://typo3.org'
condition: 'applicationContext == "Production"'
errorHandling:
-
errorCode: '404'
errorHandler: Page
errorContentSource: 't3://page?uid=404'
-
errorCode: '403'
errorHandler: Page
errorContentSource: 't3://page?uid=720'
languages:
-
title: English
enabled: true
base: /
typo3Language: default
locale: en_US.UTF-8
iso-639-1: en
navigationTitle: English
hreflang: en-US
direction: ''
flag: gb
solr_core_read: 'core_en'
languageId: '0'
rootPageId: 1
routeEnhancers:
News:
type: Extbase
extension: News
plugin: Pi1
routes:
-
routePath: '/{page}'
_controller: 'News::list'
_arguments:
page: '@widget_0/currentPage'
requirements:
page: \d+
defaults:
category-name: all
-
routePath: '/{news-title}'
_controller: 'News::detail'
_arguments:
news-title: news
-
routePath: '/{category-name}'
_controller: 'News::list'
_arguments:
category-name: overwriteDemand/categories
-
routePath: '/{category-name}/{page}'
_controller: 'News::list'
_arguments:
category-name: overwriteDemand/categories
page: '@widget_0/currentPage'
-
routePath: '/{tag-name}'
_controller: 'News::list'
_arguments:
tag-name: overwriteDemand/tags
defaultController: 'News::list'
defaults:
page: '0'
aspects:
news-title:
type: PersistedAliasMapper
tableName: tx_news_domain_model_news
routeFieldName: path_segment
page:
type: StaticRangeMapper
start: '1'
end: '100'
category-name:
type: PersistedAliasMapper
tableName: sys_category
routeFieldName: slug
tag-name:
type: PersistedAliasMapper
tableName: tx_news_domain_model_tag
routeFieldName: slug
Membership:
type: Extbase
extension: t3o_membership
plugin: List
routes:
-
routePath: '/{membership-name}'
_controller: 'Member::list'
_arguments:
membership-name: membership
aspects:
membership-name:
type: PersistedAliasMapper
tableName: tx_t3omembership_domain_model_membership
routeFieldName: slug
EventPlugin:
type: Extbase
extension: SfEventMgt
plugin: Pievent
routes:
- { routePath: '/', _controller: 'Event::list' }
- { routePath: '/page/{page}', _controller: 'Event::list', _arguments: {'page': '@widget_0/currentPage'}, _requirements: {'page': \d+} }
- { routePath: '/{event_category}/all', _controller: 'Event::list', _arguments: {'event_category': 'overwriteDemand/category'} }
- { routePath: '/{event_category}/all/page/{page}', _controller: 'Event::list', _arguments: {'event_category': 'overwriteDemand/category', 'page': '@widget_0/currentPage'}, _requirements: {'page': \d+} }
- { routePath: '/{event_title}', _controller: 'Event::detail', _arguments: {'event_title': 'event'} }
- { routePath: '/{event_title}/ical', _controller: 'Event::icalDownload', _arguments: {'event_title': 'event'} }
defaultController: 'Event::list'
aspects:
event_title:
type: PersistedAliasMapper
tableName: 'tx_sfeventmgt_domain_model_event'
routeFieldName: 'slug'
event_category:
type: PersistedAliasMapper
tableName: 'sys_category'
routeFieldName: 'slug'
page:
type: StaticRangeMapper
start: '1'
end: '100'
routes:
-
route: robots.txt
type: staticText
content: "User-agent: *\r\nAllow: /\r\n\r\n# folders\r\nDisallow: /typo3/\r\nDisallow: /typo3conf/\r\nAllow: /typo3conf/ext/\r\nAllow: /typo3temp/\r\n\r\n# parameters\r\nDisallow: /*?id=* # non speaking URLs\r\nDisallow: /*cHash # no cHash\r\nDisallow: /*tx_powermail_pi1 # no powermail thanks pages\r\nDisallow: /*tx_form_formframework # no forms\r\n\r\n# sitemap\r\nSitemap: https://typo3.org/?type=1533906435\r\n"
-
route: sitemap.xml
type: uri
source: 'https://typo3.org/?type=1533906435'
solr_enabled_read: true