From c1e713240bc6f749438092f89b6a304e4a9b5d00 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Uzna=C5=84ski?= Date: Tue, 18 May 2021 23:33:35 +0200 Subject: [PATCH] [FEATURE] Add base ddev setup and command (#234) --- .ddev/config.yaml | 182 ++++++++++++++++++++++++++++++++++++++++++++++ README.md | 26 +++++++ 2 files changed, 208 insertions(+) create mode 100644 .ddev/config.yaml diff --git a/.ddev/config.yaml b/.ddev/config.yaml new file mode 100644 index 0000000..ab769da --- /dev/null +++ b/.ddev/config.yaml @@ -0,0 +1,182 @@ +name: tea +type: php +docroot: "" +php_version: "7.4" +webserver_type: nginx-fpm +router_http_port: "8081" +router_https_port: "4434" +xdebug_enabled: true +additional_hostnames: [] +additional_fqdns: [] +mariadb_version: "10.5" +mysql_version: "" +hooks: + post-start: + - exec: composer install --no-progress +omit_containers: [dba, ddev-ssh-agent] +use_dns_when_possible: true +composer_version: "" +web_environment: [] +webimage_extra_packages: [parallel] + + +# This config.yaml was created with ddev version v1.17.2 +# webimage: drud/ddev-webserver:v1.17.2 +# dbimage: drud/ddev-dbserver-mariadb-10.3:v1.17.0 +# dbaimage: 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'. + +# Key features of ddev's config.yaml: + +# name: # Name of the project, automatically provides +# http://projectname.ddev.site and https://projectname.ddev.site + +# type: # drupal6/7/8, backdrop, typo3, wordpress, php + +# docroot: # Relative path to the directory containing index.php. + +# php_version: "7.4" # PHP version to use, "5.6", "7.0", "7.1", "7.2", "7.3", "7.4" "8.0" + +# 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, +# so this can break upgrades. + +# webimage: # nginx/php docker image. +# dbimage: # mariadb docker image. +# dbaimage: + +# 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 to be used for http (defaults to port 80) +# router_https_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 +# "ddev xdebug" to enable xdebug and "ddev xdebug off" to disable it work better, +# as leaving xdebug enabled all the time is a big performance hit. + +# webserver_type: nginx-fpm # or apache-fpm + +# timezone: Europe/Berlin +# This is the timezone used in the containers and by PHP; +# 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 + +# composer_version: "" +# if composer_version:"" it will use the current ddev default composer release. +# It can also be set to "1", to get most recent composer v1 +# or "2" for most recent composer v2. +# It can be set to any existing specific composer version. +# After first project 'ddev start' this will not be updated until it changes + +# additional_hostnames: +# - somename +# - someothername +# would provide http and https URLs for "somename.ddev.site" +# and "someothername.ddev.site". + +# additional_fqdns: +# - example.com +# - sub1.example.com +# would provide http and https URLs for "example.com" and "sub1.example.com" +# Please take care with this because it can cause great confusion. + +# upload_dir: custom/upload/dir +# would set the destination path for ddev import-files to custom/upload/dir. + +# 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. + +# omit_containers: [db, dba, ddev-ssh-agent] +# Currently only these containers are supported. Some containers can also be +# omitted globally in the ~/.ddev/global_config.yaml. Note that if you omit +# the "db" container, several standard features of ddev that access the +# database container will be unusable. + +# 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 + +# fail_on_hook_fail: False +# Decide whether 'ddev start' should be interrupted by a failing hook + +# host_https_port: "59002" +# The host port binding for https can be explicitly specified. It is +# dynamic unless otherwise specified. +# This is not used by most people, most people use the *router* instead +# of the localhost port. + +# host_webserver_port: "59001" +# The host port binding for the ddev-webserver can be explicitly specified. It is +# dynamic unless otherwise specified. +# This is not used by most people, most people use the *router* instead +# of the localhost port. + +# host_db_port: "59002" +# The host port binding for the ddev-dbserver can be explicitly specified. It is dynamic +# unless explicitly specified. + +# phpmyadmin_port: "8036" +# phpmyadmin_https_port: "8037" +# The PHPMyAdmin ports can be changed from the default 8036 and 8037 + +# mailhog_port: "8025" +# mailhog_https_port: "8026" +# The MailHog ports can be changed from the default 8025 and 8026 + +# webimage_extra_packages: [php7.4-tidy, php-bcmath] +# Extra Debian packages that are needed in the webimage can be added here + +# dbimage_extra_packages: [telnet,netcat] +# 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 +# instead of editing /etc/hosts +# Defaults to true + +# project_tld: ddev.site +# The top-level domain used for project URLs +# The default "ddev.site" allows DNS lookup via a wildcard +# If you prefer you can change this to "ddev.local" to preserve +# pre-v1.9 behavior. + +# ngrok_args: --subdomain mysite --auth username:pass +# 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 AdditionalConfiguration.php +# In this case the user must provide all such settings. + +# You can inject environment variables into the web container with: +# web_environment: +# - SOMEENV=somevalue +# - SOMEOTHERENV=someothervalue + +# no_project_mount: false +# (Experimental) If true, ddev will not mount the project into the web container; +# the user is responsible for mounting it manually or via a script. +# This is to enable experimentation with alternate file mounting strategies. +# For advanced users only! + +# 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 +# for them. Example: +#hooks: diff --git a/README.md b/README.md index 97948c0..8e6a5fb 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,32 @@ In the Run configurations, copy the PHPUnit configuration and use these settings 2. right-click on `Tests/Acceptance/StarterCest.php` 3. Run 'Acceptance (Codeception)' +## Developing locally + +In order to work on the extension locally, you can use a local environment (local PHP, server) or use +a widely adopted tool in TYPO3 Community, [ddev](https://github.com/drud/ddev), which we recommend. + +## Running Composer commands in the DDEV container + +If you use ddev, then you can use the provided command in root of your repository. You don't need to +manually startup containers, you can run commands straight away, and project will automatically boot up. + +Example: + +```bash +ddev composer ci:ts:lint +``` + +## Running tests locally via DDEV + +###Unit tests + +To run unit tests, type: + +```bash +composer ci:tests:unit +``` + ## Security Libraries and extensions do not need the security check as they should not have