Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use core DevShop source for DevShop Control site. #645

Merged
merged 107 commits into from Dec 16, 2020

Conversation

jonpugh
Copy link
Member

@jonpugh jonpugh commented Dec 4, 2020

Resolves #644

This will also help forked PRs like #641 , as it will allow in-source devmaster installs.

Follow up tasks

  • Replace devmaster not found error message with a thrown exception so composer command fails with exit 1.
  • Rename "DevShopControlTemplate" to "DevShopControlProject" and devshop/control-template to devshop/control-template.
  • Update docs of DevShopControl README.md to explain what the default is and what the project can do.
  • Check that provision logging looks good in front-end.
  • Use post-project-create to remove the custom path repository for devmaster in composer.json.
  • Update Documentation to clarify Devmaster vs DevShop Control.
  • Ensure devshop/control-project works independently.
  • Separate DevShopControl Core from the Control Project template!
  • Rename DevShopControlProject to just ControlProject.
  • Tag new alpha releases of drupal/provision and drupal/hosting.
  • Pin provision and hosting versions to Control's .lock file and ControlProject's .json file.
  • Add all supported PHP versions to the test matrix.
  • MERGE THIS PR (Use core DevShop source for DevShop Control site. #645)

1.7.0 alpha release blockers:

  • Install.sh improvements. Improve install script and add tests for various install methods. #631

  • Add a .lando.yml file so the DevShop Control front end can be developed in lando.

  • See if we can move provision and drush 8 to the Control stack so we can... GASP remove drush 8 from global namespace! This might fix Platform verification fails if drush is installed via composer at project level #313

  • Update composer packages to match latest recommended and passing packages.

  • Improve dev/no-dev, minimum stability, etc and learn from drupal core project-recommmended and others to improve the composer experience.

  • Figure out why --prefer-source and (maybe?) --no-dev are needed.

  • Fix Remote PRs: Allow devshop install on servers with alternative "default" umask #641

  • Improve testing and test-artifact generation:

    • Save screenshots.
    • Save test command logs to files.
  • After merge to 1.x, ensure the 1.x tests run and pass, check docker images.

  • Fast Docker playbook.

  • Ansible Role updater.

  • Aegir Ansible server management. (Can root be made to run drush @hostmaster hosting-task? If so, ansible tasks as root can be done, allowing web based server config via ansible vars and roles.

  • Provision verify must trigger update hooks on git update.

  • Update "deploy" task to use provision verify for most git work. Remove "devshop deploy" task.

  • Confirm editing of Aegir site and platform git remote, git reference, etc properly works.

Commit Message

  • DevShop UI and CLI code in one repo:
    • DevShop Control site code is now directly in /usr/share/devshop/src/DevShop/Components/DevShopControlTemplate .
    • DevShop Control Project, customizable composer based devshop front-end is at /usr/share/devshop/src/DevShop/Components/ControlProject:
    • Add the local path composer repository directly to composer.json for stability and easier upgrades, allowing us to remove all the custom repository setting everywhere.
    • Stabilize composer based DevShop Control and DevShop Control Project codebases by matching the command everywhere it is run. Composer update is required for it to work properly because it doesn't have a composer.lock file.
    • Add code to ScriptHandler.php to detect an incorrect install by validating that devmaster.info and views.info are in place, and announce if it is a symlink (path repo).
    • Add a step to prepare the composer.lock file in the DevShop control folder.
    • Grant ownership of the devshopcontrol stack to the aegir user.
  • Improve DevShop CI testing:
    • Add testing support for PHP 7.1, 7.2, 7.3 and 7.4 for the components and 7.2 and 7.3 for devshop server.
    • Ensure code is on a branch so devshop version detection is done properly and shows in the logs.
    • Remove extra github actions prepare script devshop-container-prep.sh because we don't need a custom composer repo or a branch.
    • Make the Test and Build workflows run the same commands, using git switch --create to prepare a local branch so devshop thinks it is on a branch version and it's easier to see what version is installed.
    • Fixed artifact saving of docker logs and test failures to github actions.
    • Make sure Build step gets important args as well as Test step.
    • Set all roles to run "always" in devshop.server/play.yml for now, so that everything gets reconfigured at runtime (docker up).
    • Reduce running of roles more than once by removing them from "dependencies" of our other roles.
  • Ansible improvements
    • Improve initial install state by stopping supervisor before DevShop Control install and starting it again after hostmaster is ready. This stops the issue of always having to restart supervisor every time you install a server!
    • Log messages showing the version and git URL of devshop that is being installed at the beginning and end of the play.
    • Run the devshop control install as a block so we can print debugging information after the install logs showing version, etc.
    • Fix a bug on initial install by converting aegir_user_uid_current ansible variable to string before checking if empty.
    • Add echo of current ansible playbook to devshop-ansible-playbook command so we can see what is about to run.
  • Provision and Hosting 4.x improvements:
    • Drastically reduce logs on site install failure: Remove print of debug backtrace, call to "dlp", and exit the function so additional steps that assume site install is fine don't keep going.
    • Completely clean up pre provision verify to allow that single command to handle creation and updating of Git and composer commands.
    • Add more platform properties, git_reset
    • Allow provision-verify to skip git actions such as fetch, checkout, reset with drush options.
    • Allow provision-verify to set the URL of a git remote if '--set-remote' option is used.
    • Drastically improve logging by detecting if the provision command is being run in CLI or from the hosting_task queue. Logs are now visible from both user experiences.
    • Add git repo helper functions to Provision Platform context class as a bridge before we can integrate GitRepositoryAwareTrait.

jonpugh added 30 commits Dec 4, 2020
…th repo for root user. Now, all devshop servers will default to linking to the /usr/share/devshop/devmaster folder so that all devshop code is loaded from the same place by default.
…se arguments, not JSON for setting the repository.
…ile because it just uses /usr/share/devshop/devmaster now.
1. Add comment about `Check Out Sourcecode` vs `Check Out Pull Request Sourcecode`.
…th repo for root user. Now, all devshop servers will default to linking to the /usr/share/devshop/devmaster folder so that all devshop code is loaded from the same place by default.
@matthandus
Copy link
Contributor

matthandus commented Dec 14, 2020

Hi @jonpugh This looks great! I'm pulling in changes and running robo up now.

@jonpugh jonpugh merged commit 979433f into 1.x Dec 16, 2020
6 checks passed
DevShop Development automation moved this from In progress to Done Dec 16, 2020
@jonpugh jonpugh deleted the feature/gh644/devshop-control-codebase branch Dec 16, 2020
devshopbot pushed a commit to opendevshop/devmaster that referenced this pull request Dec 16, 2020
opendevshop/devshop#645

- DevShop UI and CLI code in one repo:
  - DevShop Control site code is now directly in /usr/share/devshop/src/DevShop/Components/DevShopControlTemplate .
  - DevShop Control Project, customizable composer based devshop front-end is at /usr/share/devshop/src/DevShop/Components/ControlProject:
  - Add the local path composer repository directly to composer.json for stability and easier upgrades, allowing us to remove all the custom repository setting everywhere.
  - Stabilize composer based DevShop Control and DevShop Control Project codebases by matching the command everywhere it is run. Composer update is required for it to work properly because it doesn't have a composer.lock file.
  - Add code to ScriptHandler.php to detect an incorrect install by validating that devmaster.info and views.info are in place, and announce if it is a symlink (path repo).
  - Add a step to prepare the composer.lock file in the DevShop control folder.
  - Grant ownership of the devshopcontrol stack to the aegir user.
- Improve DevShop CI testing:
  - Add testing support for PHP 7.1, 7.2, 7.3 and 7.4 for the components and 7.2 and 7.3 for devshop server.
  - Ensure code is on a branch so devshop version detection is done properly and shows in the logs. 
  - Remove extra github actions prepare script devshop-container-prep.sh because we don't need a custom composer repo or a branch.
  - Make the Test and Build workflows run the same commands, using `git switch --create` to prepare a local branch so devshop thinks it is on a branch version and it's easier to see what version is installed.
  - Fixed artifact saving of docker logs and test failures to github actions.
  - Make sure Build step gets important args as well as Test step.
  - Set all roles to run "always" in devshop.server/play.yml for now, so that everything gets reconfigured at runtime (docker up).
  - Reduce running of roles more than once by removing them from "dependencies" of our other roles.
- Ansible improvements
  - Improve initial install state by stopping supervisor before DevShop Control install and starting it again after hostmaster is ready. This stops the issue of always having to restart supervisor every time you install a server!
  - Log messages showing the version and git URL of devshop that is being installed at the beginning and end of the play.
  - Run the devshop control install as a block so we can print debugging information after the install logs showing version, etc.
  - Fix a bug on initial install by converting `aegir_user_uid_current` ansible variable to string before checking if empty.
  - Add echo of current ansible playbook to `devshop-ansible-playbook` command so we can see what is about to run.
- Provision and Hosting 4.x improvements:
  - Drastically reduce logs on site install failure: Remove print of debug backtrace, call to "dlp", and exit the function so additional steps that assume site install is fine don't keep going. 
  - Completely clean up pre provision verify to allow that single command to handle creation and updating of Git and composer commands.
  - Add more platform properties, git_reset
  - Allow provision-verify to skip git actions such as fetch, checkout, reset with drush options.
  - Allow provision-verify to set the URL of a git remote if '--set-remote' option is used. 
  - Drastically improve logging by detecting if the provision command is being run in CLI or from the hosting_task queue. Logs are now visible from both user experiences.
  - Add git repo helper functions to Provision Platform context class as a bridge before we can integrate GitRepositoryAwareTrait.
devshopbot pushed a commit to opendevshop/ansible-role-apache that referenced this pull request Dec 16, 2020
opendevshop/devshop#645

- DevShop UI and CLI code in one repo:
  - DevShop Control site code is now directly in /usr/share/devshop/src/DevShop/Components/DevShopControlTemplate .
  - DevShop Control Project, customizable composer based devshop front-end is at /usr/share/devshop/src/DevShop/Components/ControlProject:
  - Add the local path composer repository directly to composer.json for stability and easier upgrades, allowing us to remove all the custom repository setting everywhere.
  - Stabilize composer based DevShop Control and DevShop Control Project codebases by matching the command everywhere it is run. Composer update is required for it to work properly because it doesn't have a composer.lock file.
  - Add code to ScriptHandler.php to detect an incorrect install by validating that devmaster.info and views.info are in place, and announce if it is a symlink (path repo).
  - Add a step to prepare the composer.lock file in the DevShop control folder.
  - Grant ownership of the devshopcontrol stack to the aegir user.
- Improve DevShop CI testing:
  - Add testing support for PHP 7.1, 7.2, 7.3 and 7.4 for the components and 7.2 and 7.3 for devshop server.
  - Ensure code is on a branch so devshop version detection is done properly and shows in the logs. 
  - Remove extra github actions prepare script devshop-container-prep.sh because we don't need a custom composer repo or a branch.
  - Make the Test and Build workflows run the same commands, using `git switch --create` to prepare a local branch so devshop thinks it is on a branch version and it's easier to see what version is installed.
  - Fixed artifact saving of docker logs and test failures to github actions.
  - Make sure Build step gets important args as well as Test step.
  - Set all roles to run "always" in devshop.server/play.yml for now, so that everything gets reconfigured at runtime (docker up).
  - Reduce running of roles more than once by removing them from "dependencies" of our other roles.
- Ansible improvements
  - Improve initial install state by stopping supervisor before DevShop Control install and starting it again after hostmaster is ready. This stops the issue of always having to restart supervisor every time you install a server!
  - Log messages showing the version and git URL of devshop that is being installed at the beginning and end of the play.
  - Run the devshop control install as a block so we can print debugging information after the install logs showing version, etc.
  - Fix a bug on initial install by converting `aegir_user_uid_current` ansible variable to string before checking if empty.
  - Add echo of current ansible playbook to `devshop-ansible-playbook` command so we can see what is about to run.
- Provision and Hosting 4.x improvements:
  - Drastically reduce logs on site install failure: Remove print of debug backtrace, call to "dlp", and exit the function so additional steps that assume site install is fine don't keep going. 
  - Completely clean up pre provision verify to allow that single command to handle creation and updating of Git and composer commands.
  - Add more platform properties, git_reset
  - Allow provision-verify to skip git actions such as fetch, checkout, reset with drush options.
  - Allow provision-verify to set the URL of a git remote if '--set-remote' option is used. 
  - Drastically improve logging by detecting if the provision command is being run in CLI or from the hosting_task queue. Logs are now visible from both user experiences.
  - Add git repo helper functions to Provision Platform context class as a bridge before we can integrate GitRepositoryAwareTrait.
devshopbot pushed a commit to opendevshop/ansible-role-devmaster that referenced this pull request Dec 16, 2020
opendevshop/devshop#645

- DevShop UI and CLI code in one repo:
  - DevShop Control site code is now directly in /usr/share/devshop/src/DevShop/Components/DevShopControlTemplate .
  - DevShop Control Project, customizable composer based devshop front-end is at /usr/share/devshop/src/DevShop/Components/ControlProject:
  - Add the local path composer repository directly to composer.json for stability and easier upgrades, allowing us to remove all the custom repository setting everywhere.
  - Stabilize composer based DevShop Control and DevShop Control Project codebases by matching the command everywhere it is run. Composer update is required for it to work properly because it doesn't have a composer.lock file.
  - Add code to ScriptHandler.php to detect an incorrect install by validating that devmaster.info and views.info are in place, and announce if it is a symlink (path repo).
  - Add a step to prepare the composer.lock file in the DevShop control folder.
  - Grant ownership of the devshopcontrol stack to the aegir user.
- Improve DevShop CI testing:
  - Add testing support for PHP 7.1, 7.2, 7.3 and 7.4 for the components and 7.2 and 7.3 for devshop server.
  - Ensure code is on a branch so devshop version detection is done properly and shows in the logs. 
  - Remove extra github actions prepare script devshop-container-prep.sh because we don't need a custom composer repo or a branch.
  - Make the Test and Build workflows run the same commands, using `git switch --create` to prepare a local branch so devshop thinks it is on a branch version and it's easier to see what version is installed.
  - Fixed artifact saving of docker logs and test failures to github actions.
  - Make sure Build step gets important args as well as Test step.
  - Set all roles to run "always" in devshop.server/play.yml for now, so that everything gets reconfigured at runtime (docker up).
  - Reduce running of roles more than once by removing them from "dependencies" of our other roles.
- Ansible improvements
  - Improve initial install state by stopping supervisor before DevShop Control install and starting it again after hostmaster is ready. This stops the issue of always having to restart supervisor every time you install a server!
  - Log messages showing the version and git URL of devshop that is being installed at the beginning and end of the play.
  - Run the devshop control install as a block so we can print debugging information after the install logs showing version, etc.
  - Fix a bug on initial install by converting `aegir_user_uid_current` ansible variable to string before checking if empty.
  - Add echo of current ansible playbook to `devshop-ansible-playbook` command so we can see what is about to run.
- Provision and Hosting 4.x improvements:
  - Drastically reduce logs on site install failure: Remove print of debug backtrace, call to "dlp", and exit the function so additional steps that assume site install is fine don't keep going. 
  - Completely clean up pre provision verify to allow that single command to handle creation and updating of Git and composer commands.
  - Add more platform properties, git_reset
  - Allow provision-verify to skip git actions such as fetch, checkout, reset with drush options.
  - Allow provision-verify to set the URL of a git remote if '--set-remote' option is used. 
  - Drastically improve logging by detecting if the provision command is being run in CLI or from the hosting_task queue. Logs are now visible from both user experiences.
  - Add git repo helper functions to Provision Platform context class as a bridge before we can integrate GitRepositoryAwareTrait.
devshopbot pushed a commit to opendevshop/ansible-role-users that referenced this pull request Dec 16, 2020
opendevshop/devshop#645

- DevShop UI and CLI code in one repo:
  - DevShop Control site code is now directly in /usr/share/devshop/src/DevShop/Components/DevShopControlTemplate .
  - DevShop Control Project, customizable composer based devshop front-end is at /usr/share/devshop/src/DevShop/Components/ControlProject:
  - Add the local path composer repository directly to composer.json for stability and easier upgrades, allowing us to remove all the custom repository setting everywhere.
  - Stabilize composer based DevShop Control and DevShop Control Project codebases by matching the command everywhere it is run. Composer update is required for it to work properly because it doesn't have a composer.lock file.
  - Add code to ScriptHandler.php to detect an incorrect install by validating that devmaster.info and views.info are in place, and announce if it is a symlink (path repo).
  - Add a step to prepare the composer.lock file in the DevShop control folder.
  - Grant ownership of the devshopcontrol stack to the aegir user.
- Improve DevShop CI testing:
  - Add testing support for PHP 7.1, 7.2, 7.3 and 7.4 for the components and 7.2 and 7.3 for devshop server.
  - Ensure code is on a branch so devshop version detection is done properly and shows in the logs. 
  - Remove extra github actions prepare script devshop-container-prep.sh because we don't need a custom composer repo or a branch.
  - Make the Test and Build workflows run the same commands, using `git switch --create` to prepare a local branch so devshop thinks it is on a branch version and it's easier to see what version is installed.
  - Fixed artifact saving of docker logs and test failures to github actions.
  - Make sure Build step gets important args as well as Test step.
  - Set all roles to run "always" in devshop.server/play.yml for now, so that everything gets reconfigured at runtime (docker up).
  - Reduce running of roles more than once by removing them from "dependencies" of our other roles.
- Ansible improvements
  - Improve initial install state by stopping supervisor before DevShop Control install and starting it again after hostmaster is ready. This stops the issue of always having to restart supervisor every time you install a server!
  - Log messages showing the version and git URL of devshop that is being installed at the beginning and end of the play.
  - Run the devshop control install as a block so we can print debugging information after the install logs showing version, etc.
  - Fix a bug on initial install by converting `aegir_user_uid_current` ansible variable to string before checking if empty.
  - Add echo of current ansible playbook to `devshop-ansible-playbook` command so we can see what is about to run.
- Provision and Hosting 4.x improvements:
  - Drastically reduce logs on site install failure: Remove print of debug backtrace, call to "dlp", and exit the function so additional steps that assume site install is fine don't keep going. 
  - Completely clean up pre provision verify to allow that single command to handle creation and updating of Git and composer commands.
  - Add more platform properties, git_reset
  - Allow provision-verify to skip git actions such as fetch, checkout, reset with drush options.
  - Allow provision-verify to set the URL of a git remote if '--set-remote' option is used. 
  - Drastically improve logging by detecting if the provision command is being run in CLI or from the hosting_task queue. Logs are now visible from both user experiences.
  - Add git repo helper functions to Provision Platform context class as a bridge before we can integrate GitRepositoryAwareTrait.
devshopbot pushed a commit to devshop-packages/bin-tools that referenced this pull request Dec 16, 2020
opendevshop/devshop#645

- DevShop UI and CLI code in one repo:
  - DevShop Control site code is now directly in /usr/share/devshop/src/DevShop/Components/DevShopControlTemplate .
  - DevShop Control Project, customizable composer based devshop front-end is at /usr/share/devshop/src/DevShop/Components/ControlProject:
  - Add the local path composer repository directly to composer.json for stability and easier upgrades, allowing us to remove all the custom repository setting everywhere.
  - Stabilize composer based DevShop Control and DevShop Control Project codebases by matching the command everywhere it is run. Composer update is required for it to work properly because it doesn't have a composer.lock file.
  - Add code to ScriptHandler.php to detect an incorrect install by validating that devmaster.info and views.info are in place, and announce if it is a symlink (path repo).
  - Add a step to prepare the composer.lock file in the DevShop control folder.
  - Grant ownership of the devshopcontrol stack to the aegir user.
- Improve DevShop CI testing:
  - Add testing support for PHP 7.1, 7.2, 7.3 and 7.4 for the components and 7.2 and 7.3 for devshop server.
  - Ensure code is on a branch so devshop version detection is done properly and shows in the logs. 
  - Remove extra github actions prepare script devshop-container-prep.sh because we don't need a custom composer repo or a branch.
  - Make the Test and Build workflows run the same commands, using `git switch --create` to prepare a local branch so devshop thinks it is on a branch version and it's easier to see what version is installed.
  - Fixed artifact saving of docker logs and test failures to github actions.
  - Make sure Build step gets important args as well as Test step.
  - Set all roles to run "always" in devshop.server/play.yml for now, so that everything gets reconfigured at runtime (docker up).
  - Reduce running of roles more than once by removing them from "dependencies" of our other roles.
- Ansible improvements
  - Improve initial install state by stopping supervisor before DevShop Control install and starting it again after hostmaster is ready. This stops the issue of always having to restart supervisor every time you install a server!
  - Log messages showing the version and git URL of devshop that is being installed at the beginning and end of the play.
  - Run the devshop control install as a block so we can print debugging information after the install logs showing version, etc.
  - Fix a bug on initial install by converting `aegir_user_uid_current` ansible variable to string before checking if empty.
  - Add echo of current ansible playbook to `devshop-ansible-playbook` command so we can see what is about to run.
- Provision and Hosting 4.x improvements:
  - Drastically reduce logs on site install failure: Remove print of debug backtrace, call to "dlp", and exit the function so additional steps that assume site install is fine don't keep going. 
  - Completely clean up pre provision verify to allow that single command to handle creation and updating of Git and composer commands.
  - Add more platform properties, git_reset
  - Allow provision-verify to skip git actions such as fetch, checkout, reset with drush options.
  - Allow provision-verify to set the URL of a git remote if '--set-remote' option is used. 
  - Drastically improve logging by detecting if the provision command is being run in CLI or from the hosting_task queue. Logs are now visible from both user experiences.
  - Add git repo helper functions to Provision Platform context class as a bridge before we can integrate GitRepositoryAwareTrait.
devshopbot pushed a commit to devshop-packages/yaml-tasks that referenced this pull request Dec 16, 2020
opendevshop/devshop#645

- DevShop UI and CLI code in one repo:
  - DevShop Control site code is now directly in /usr/share/devshop/src/DevShop/Components/DevShopControlTemplate .
  - DevShop Control Project, customizable composer based devshop front-end is at /usr/share/devshop/src/DevShop/Components/ControlProject:
  - Add the local path composer repository directly to composer.json for stability and easier upgrades, allowing us to remove all the custom repository setting everywhere.
  - Stabilize composer based DevShop Control and DevShop Control Project codebases by matching the command everywhere it is run. Composer update is required for it to work properly because it doesn't have a composer.lock file.
  - Add code to ScriptHandler.php to detect an incorrect install by validating that devmaster.info and views.info are in place, and announce if it is a symlink (path repo).
  - Add a step to prepare the composer.lock file in the DevShop control folder.
  - Grant ownership of the devshopcontrol stack to the aegir user.
- Improve DevShop CI testing:
  - Add testing support for PHP 7.1, 7.2, 7.3 and 7.4 for the components and 7.2 and 7.3 for devshop server.
  - Ensure code is on a branch so devshop version detection is done properly and shows in the logs. 
  - Remove extra github actions prepare script devshop-container-prep.sh because we don't need a custom composer repo or a branch.
  - Make the Test and Build workflows run the same commands, using `git switch --create` to prepare a local branch so devshop thinks it is on a branch version and it's easier to see what version is installed.
  - Fixed artifact saving of docker logs and test failures to github actions.
  - Make sure Build step gets important args as well as Test step.
  - Set all roles to run "always" in devshop.server/play.yml for now, so that everything gets reconfigured at runtime (docker up).
  - Reduce running of roles more than once by removing them from "dependencies" of our other roles.
- Ansible improvements
  - Improve initial install state by stopping supervisor before DevShop Control install and starting it again after hostmaster is ready. This stops the issue of always having to restart supervisor every time you install a server!
  - Log messages showing the version and git URL of devshop that is being installed at the beginning and end of the play.
  - Run the devshop control install as a block so we can print debugging information after the install logs showing version, etc.
  - Fix a bug on initial install by converting `aegir_user_uid_current` ansible variable to string before checking if empty.
  - Add echo of current ansible playbook to `devshop-ansible-playbook` command so we can see what is about to run.
- Provision and Hosting 4.x improvements:
  - Drastically reduce logs on site install failure: Remove print of debug backtrace, call to "dlp", and exit the function so additional steps that assume site install is fine don't keep going. 
  - Completely clean up pre provision verify to allow that single command to handle creation and updating of Git and composer commands.
  - Add more platform properties, git_reset
  - Allow provision-verify to skip git actions such as fetch, checkout, reset with drush options.
  - Allow provision-verify to set the URL of a git remote if '--set-remote' option is used. 
  - Drastically improve logging by detecting if the provision command is being run in CLI or from the hosting_task queue. Logs are now visible from both user experiences.
  - Add git repo helper functions to Provision Platform context class as a bridge before we can integrate GitRepositoryAwareTrait.
devshopbot pushed a commit to devshop-packages/devshop-control-project that referenced this pull request Dec 16, 2020
opendevshop/devshop#645

- DevShop UI and CLI code in one repo:
  - DevShop Control site code is now directly in /usr/share/devshop/src/DevShop/Components/DevShopControlTemplate .
  - DevShop Control Project, customizable composer based devshop front-end is at /usr/share/devshop/src/DevShop/Components/ControlProject:
  - Add the local path composer repository directly to composer.json for stability and easier upgrades, allowing us to remove all the custom repository setting everywhere.
  - Stabilize composer based DevShop Control and DevShop Control Project codebases by matching the command everywhere it is run. Composer update is required for it to work properly because it doesn't have a composer.lock file.
  - Add code to ScriptHandler.php to detect an incorrect install by validating that devmaster.info and views.info are in place, and announce if it is a symlink (path repo).
  - Add a step to prepare the composer.lock file in the DevShop control folder.
  - Grant ownership of the devshopcontrol stack to the aegir user.
- Improve DevShop CI testing:
  - Add testing support for PHP 7.1, 7.2, 7.3 and 7.4 for the components and 7.2 and 7.3 for devshop server.
  - Ensure code is on a branch so devshop version detection is done properly and shows in the logs. 
  - Remove extra github actions prepare script devshop-container-prep.sh because we don't need a custom composer repo or a branch.
  - Make the Test and Build workflows run the same commands, using `git switch --create` to prepare a local branch so devshop thinks it is on a branch version and it's easier to see what version is installed.
  - Fixed artifact saving of docker logs and test failures to github actions.
  - Make sure Build step gets important args as well as Test step.
  - Set all roles to run "always" in devshop.server/play.yml for now, so that everything gets reconfigured at runtime (docker up).
  - Reduce running of roles more than once by removing them from "dependencies" of our other roles.
- Ansible improvements
  - Improve initial install state by stopping supervisor before DevShop Control install and starting it again after hostmaster is ready. This stops the issue of always having to restart supervisor every time you install a server!
  - Log messages showing the version and git URL of devshop that is being installed at the beginning and end of the play.
  - Run the devshop control install as a block so we can print debugging information after the install logs showing version, etc.
  - Fix a bug on initial install by converting `aegir_user_uid_current` ansible variable to string before checking if empty.
  - Add echo of current ansible playbook to `devshop-ansible-playbook` command so we can see what is about to run.
- Provision and Hosting 4.x improvements:
  - Drastically reduce logs on site install failure: Remove print of debug backtrace, call to "dlp", and exit the function so additional steps that assume site install is fine don't keep going. 
  - Completely clean up pre provision verify to allow that single command to handle creation and updating of Git and composer commands.
  - Add more platform properties, git_reset
  - Allow provision-verify to skip git actions such as fetch, checkout, reset with drush options.
  - Allow provision-verify to set the URL of a git remote if '--set-remote' option is used. 
  - Drastically improve logging by detecting if the provision command is being run in CLI or from the hosting_task queue. Logs are now visible from both user experiences.
  - Add git repo helper functions to Provision Platform context class as a bridge before we can integrate GitRepositoryAwareTrait.
matthandus added a commit to matthandus/devshop that referenced this pull request Dec 16, 2020
Use core DevShop source for DevShop Control site. (opendevshop#645)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dx | devmaster Devmaster Developer Experience Needs Docs Documentation should be written for this issue.
Projects
2 participants