# SportsManager ## DEV/STAGE environments | LV | HOSTER | DOMAIN | BRANCH | | ------ | -------- | ------------------------------------------------------------ | -------------------- | | DTFB | Kicktemp | [stage.dtfb.de](https://stage.dtfb.de) | dev | | TFVHH | Kicktemp | [stage.kickern-hamburg.de](https://stage.kickern-hamburg.de) | dev | | STFVH | DTFB | [stage.stfv.de](https://stage.stfv.de/) | sportsmanager2-stage | | MTFV | DTFB | [stage.mtfv.de](https://stage.mtfv.de/) | ? | | TFVSH | DTFB | [relaunch.tfvsh.de](https://relaunch.tfvsh.de) | ? | ## PROD environments | LV | HOSTER | DOMAIN | BRANCH | | ------ | -------- | ------------------------------------------------ | ------------------- | | DTFB | Kicktemp | [dtfb.de](https://dtfb.de) | production | | TFVHH | Kicktemp | [kickern-hamburg.de](https://kickern-hamburg.de) | production | | MTFV | DTFB | [mtfv.de](https://mtfv.de/) | sportsmanager2-prod | | TFVSH | DTFB | [tfvsh.de](https://tfvsh.de/) | sportsmanager2-prod | | STFVH | DTFB | [stfv.de](https://stfv.de/) | sportsmanager2-prod | ## Test setup ### Installation To start joomla and the database, run ```shell docker-compose up -d ``` ### Release creation To create a release execute ```shell npm run release ``` ### Deployment Deployment can only be done manually right now (sad) To do this go to [Testserver Extension Installer Site](http://localhost:8080/administrator/index.php?option=com_installer&view=install) and upload the zip file found in `./package/packages` ### Development Tools If you are using Intellij, there is a plugin named Joomla! which helps with resolving joomla specific database prefixes like #__ To set it up, insert into the configuration popup which follows after you enable the framework support: Joomla install path: `./data/joomla_data` JConfig: `./data/joomla_data/configuration.php` > This works only with mounted volumes. However, mounted volumes will slow down the joomla instance significantly. > The current setup does not use mounted volumes. > An alternative would be to download joomla and use that installation ### Debugging (with Docker/Intellij) 1. Start Docker Container (see above) 2. Create a terminal for that container ```shell docker exec -it bash ``` 3. install xdebug within the container since joomla does not come with xdebug preinstalled ```shell pecl install xdebug ``` 4. restart the container 5. In Intellij Go to [File | Settings | Languages & Frameworks | PHP | Servers](jetbrains://idea/settings?name=Languages+%26+Frameworks--PHP--Servers) and setup your server | | | |----------|-----------| | name | anything | | host | localhost | | port | 8080 | | debugger | xdebug | use the path mapping and map the repo structure to the container content | File/Directory | path on server | |------------------------------------------------------------------|----------------------------------------| | \/com_sportsmanager/src/structure/administrator/components | /var/www/html/administrator/components | | \/com_sportsmanager/src/structure/components | /var/www/html/components | 7. Click on "Start Listening for PHP Debug Connections" in the top row of intellij 8. (Not sure if optional) Install a browser extension by Jetbrains https://chromewebstore.google.com/detail/xdebug-helper-by-jetbrain/aoelhdemabeimdhedkidlnbkfhnhgnhm ### How to release Hint: for technical details regarding the release process have a look into .github/... To create a release these steps need to be followed 1. make sure all needed code changes are merged from dev -> stage -> prod, since releases may only be build on prod branch 2. give pull requests meaningful names and label them enhancement/bug/chore since labels and names are used for release note generation Hint: if a specific pull request should be ignored, add the label changelog-ignore 3. tag a commit (recommended is the latest merge on prod). The pipeline is listening for any tag fitting `v[0-9]+.[0-9]+.[0-9]+` ```shell git tag -a v1.2.3 1a2b3c4 -m "Release version 1.2.3" ``` 4. push the tag ```shell git push origin --tags ``` 5. the tag push will trigger the pipeline, and it will create the release and store in GitHub A release can be created again anytime by deleting the release from GitHub, deleting the tag (from GitHub and additionally from git) and repeating step 3 and 4 Further: merges from dev to stage and from stage to prod can only be done by creating pull requests. These pull requests will be automatically labeled as changelog-ignore