Trigger based configuration of continuous delivery pipeline
View Patent ↗Embodiments described herein are generally directed to a configuration-driven continuous delivery (CD) pipeline that can be used by multiple development teams and integrated with multiple repositories. According to an example, all commands to be run by a particular executor used by a particular development team are specified by the pipeline. A trigger event is received from an external source specifying a repository in which source code for an application being developed or maintained by the particular development team resides. Responsive to the trigger event, the pipeline is configured with information regarding subdirectories within the repository that are to be processed based on a first set of configuration information stored in the repository. Stages of the pipeline are performed by, for each subdirectory, causing the pipeline to issue a subset of the commands to the particular executor based on a second set of configuration information associated with the subdirectory.
1. A computer-implemented method comprising:
providing a configuration-driven continuous delivery (CD) pipeline including a plurality of stages, wherein all commands to be run by a particular executor of a plurality of executors used by a particular development team of a plurality of development teams are specified by the configuration-driven CD pipeline;
receiving a first trigger event from an external source specifying a repository in which source code for an application being developed or maintained by the particular development team resides;
responsive to the first trigger event, configuring the configuration-driven CD pipeline with information regarding a plurality of subdirectories within the repository that are to be processed by the configuration-driven CD pipeline based on a first set of configuration information stored in the repository;
receiving a second trigger event specifying a second repository in which source code for a second application being developed or maintained by a second development team resides;
responsive to the second trigger event, configuring the configuration-driven CD pipeline with information regarding a plurality of subdirectories within the second repository that are to be processed by the configuration-driven CD pipeline based on a first set of configuration information stored in the second repository; and
performing each of the plurality of stages by, for each subdirectory of the plurality of subdirectories, causing the configuration-driven CD pipeline to issue a subset of the commands to the particular executor based on a second set of configuration information associated with the subdirectory.
2. The method of claim 1 , wherein the first set of configuration information is contained within a first configuration file stored in a predetermined or configurable location within the repository.
3. The method of claim 1 , wherein the second set of configuration information is contained within a structured configuration file stored in the subdirectory.
4. The method of claim 1 ,
wherein performing each of the plurality of stages causing the configuration-driven CD pipeline to issue a second subset of the commands to a second executor based on a second set of configuration information associated with the subdirectory of the plurality of subdirectories within the second repository.
5. The method of claim 2 , wherein the first configuration file comprises a structured configuration file.
6. The method of claim 3 , wherein the plurality of stages include a build stage, a testing stage and a deployment stage.
7. The method of claim 3 , wherein each subdirectory of the plurality of subdirectories represents a component of the application.
8. The method of claim 6 , wherein the structured configuration file stored in the subdirectory includes a section of configuration settings for each of the plurality of stages.
9. A system comprising:
a processing resource; and
a non-transitory computer-readable medium, coupled to the processing resource, having stored therein instructions that when executed by the processing resource cause the processing resource to:
receive a first trigger event from an external source specifying a repository in which source code for an application being developed or maintained by a particular development team of a plurality of development teams resides;
responsive to the first trigger event, configuring a configuration-driven CD pipeline with information regarding a plurality of subdirectories within the repository that are to be processed by the configuration-driven CD pipeline based on a first set of configuration information stored in the repository, wherein all commands to be run by a particular executor of a plurality of executors used by the particular development team are specified by the configuration-driven CD pipeline;
receiving a second trigger event specifying a second repository in which source code for a second application being developed or maintained by a second development team resides;
responsive to the second trigger event, configuring the configuration-driven CD pipeline with information regarding a plurality of subdirectories within the second repository that are to be processed by the configuration-driven CD pipeline based on a first set of configuration information stored in the second repository; and
performing each of a plurality of stages of the configuration-driven CD pipeline by, for each subdirectory of the plurality of subdirectories, causing the configuration-driven CD pipeline to issue a subset of the commands to the particular executor based on a second set of configuration information associated with the subdirectory.
10. The system of claim 9 , wherein the first set of configuration information is contained within a first configuration file stored in a predetermined or configurable location within the repository.
11. The system of claim 9 , wherein the second set of configuration information is contained within a structured configuration file stored in the subdirectory.
12. The system of claim 9 , wherein the trigger even comprises a webhook from the repository.
13. The system of claim 11 , wherein the plurality of stages include a build stage, a testing stage and a deployment stage.
14. The system of claim 11 , wherein each subdirectory of the plurality of subdirectories represents a component of the application.
15. The system of claim 13 , wherein the structured configuration file stored in the subdirectory includes a section of configuration settings for each of the plurality of stages.
16. A non-transitory machine readable medium storing instructions executable by a processing resource of a computer system, the non-transitory machine readable medium comprising instructions to:
receive a first trigger event from an external source specifying a repository in which source code for an application being developed or maintained by a particular development team of a plurality of development teams resides;
responsive to the first trigger event, configuring a configuration-driven CD pipeline with information regarding a plurality of subdirectories within the repository that are to be processed by the configuration-driven CD pipeline based on a first set of configuration information stored in the repository, wherein all commands to be run by a particular executor of a plurality of executors used by the particular development team are specified by the configuration-driven CD pipeline;
receiving a second trigger event specifying a second repository in which source code for a second application being developed or maintained by a second development team resides;
responsive to the second trigger event, configuring the configuration-driven CD pipeline with information regarding a plurality of subdirectories within the second repository that are to be processed by the configuration-driven CD pipeline based on a first set of configuration information stored in the second repository; and
performing each of a plurality of stages of the configuration-driven CD pipeline by, for each subdirectory of the plurality of subdirectories, causing the configuration-driven CD pipeline to issue a subset of the commands to the particular executor based on a second set of configuration information associated with the subdirectory.
17. The non-transitory machine readable medium of claim 16 , wherein the second set of configuration information is contained within a Yet Another Markup Language (YAML) file stored in the subdirectory.
18. The non-transitory machine readable medium of claim 16 , wherein each subdirectory of the plurality of subdirectories represents a component of the application.
19. The non-transitory machine readable medium of claim 16 , wherein the trigger event comprises a webhook from the repository.
20. The non-transitory machine readable medium of claim 17 , wherein YAML file includes a section of configuration settings for each of the plurality of stages.