Project publishing method and device, computer device and storage medium
By providing project release configuration options to clients and performing multi-stage configuration, the scalability and multi-version management issues of the project release process are resolved, achieving an efficient and flexible project release method.
Patent Information
- Application Number
- CN202111101776.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-09-18
- Publication Date
- 2025-11-07
- Estimated Expiration
- 2041-09-18
AI Technical Summary
In existing technologies, the project release process has poor scalability, low reusability, and cannot achieve multi-version management, resulting in high development costs and inflexible operation and maintenance.
This provides a project deployment method that sends project deployment configuration options back to the client, receives the configuration results, and then configures basic information, build, environment, and permissions in sequence. It supports multi-version management and enables custom and preset version management rules.
It improves the versatility and scalability of project releases, reduces development costs, enhances operational flexibility, and supports multi-version management and custom configurations.
Smart Images

Figure CN113934451B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application belongs to the technical field of computer, and particularly relates to a project publishing method and device, computer equipment and storage medium. BACKGROUND
[0002] With the development of company business form, various project types are often involved, and the publishing processes of different project types are different.
[0003] At present, the publishing process of each project is usually developed separately, so that the publishing process of each project has poor scalability and low reuse rate, and therefore the total development cost is large. In addition, the existing conventional publishing system only supports rollback and cannot realize multi-version management. SUMMARY
[0004] The present application provides a project publishing method and device, computer equipment and storage medium, which can support client-defined publishing process, and does not need to develop each project separately, thereby effectively reducing the development cost and improving the universality and operation flexibility of the publishing process.
[0005] The first aspect embodiment of the present application provides a project publishing method, which comprises the following steps:
[0006] feeding back corresponding project publishing configuration options to the client according to the project publishing request sent by the client, so as to configure the project publishing of the client; wherein the project publishing configuration options comprise project basic information configuration options, build configuration options, publishing configuration options, environment configuration options and permission configuration options;
[0007] receiving the project publishing configuration result sent by the client; wherein the project publishing configuration result comprises project basic information configuration result, build configuration result, publishing configuration result, environment configuration result and permission configuration result;
[0008] generating the basic information of the project to be published according to the project basic information configuration result;
[0009] determining the corresponding code information according to the basic information of the project to be published;
[0010] sequentially configuring the basic information, build, environment, publishing and permission of the project to be published based on the code information and the project publishing configuration result.
[0011] Optionally, the build configuration of the project to be published based on the code information and the project publishing configuration result comprises:
[0012] According to the build configuration result, a target configuration template corresponding to the to-be-released project is determined, and the target configuration template includes build commands and build parameters customized by the client or preset;
[0013] According to the code information, the to-be-released project is built according to the target configuration template.
[0014] Optionally, the environment configuration result includes a first-level configuration result and a second-level configuration result, the first-level configuration result is used for controlling a total release process of the to-be-released project, and the second-level configuration result is used for controlling a release sub-environment corresponding to each release node.
[0015] According to the code information and the project release configuration result, the to-be-released project is configured in an environment, including:
[0016] The first-level configuration result and the second-level configuration result are read.
[0017] According to the code information, a total release process of the to-be-released project is created according to the first-level configuration result, and a release environment of each sub-release process of the total release process is created according to the second-level configuration result, and the release environment of the sub-release process corresponds to the second-level configuration result in a one-to-one manner.
[0018] Optionally, according to the code information and the project release configuration result, the to-be-released project is configured for release, including:
[0019] According to the release environment of each sub-release process created, a corresponding target server is configured.
[0020] The to-be-released project is released according to the total release process.
[0021] Optionally, a trigger mode of the total release process includes automatic triggering of pushing code, manual triggering of selecting a code version, manual triggering of selecting a fixed version, and manual triggering of a specified version process from a specified stage.
[0022] Optionally, the to-be-released project is released according to the total release process, including:
[0023] According to the build configuration result and the environment configuration result, a version flow is dynamically generated;
[0024] The project basic information configuration result is read, the attributes of the to-be-released project are parsed, and a corresponding packer node is configured;
[0025] The build configuration result is read, a build pre-command, a build post-command, and a build execution command are parsed, a corresponding build package is generated, and a version management and synchronization task is triggered;
[0026] reading the environment configuration result, generating one or more release stages in a version flow, reading the release configuration result, releasing the project to be released, and triggering an asynchronous synchronization task.
[0027] Optionally, the method further comprises:
[0028] determining a version management rule based on the build configuration result and the primary configuration result, and performing version management on the project to be released according to the version management rule.
[0029] Optionally, the determining a version management rule based on the build configuration result and the primary configuration result, and performing version management on the project to be released according to the version management rule comprises:
[0030] reading the build configuration result and the primary configuration result, and determining whether the client performs customized configuration;
[0031] if yes, determining a version management rule according to the customized configuration of the client; and if no, performing version management on the project to be released according to a preset default version management rule configuration.
[0032] Optionally, the determining a version management rule according to the customized configuration of the client comprises:
[0033] determining whether the customized configuration of the client is configured with a weight, and if yes, determining a version management rule according to a weight rule;
[0034] if no, determining whether the customized configuration of the client is configured with a priority;
[0035] if yes, determining a version management rule according to a priority rule.
[0036] Optionally, the method further comprises:
[0037] synchronizing the version of the packager node of each sub-release process, and real-time monitoring and synchronizing version data of each project to be released.
[0038] Embodiments of the second aspect of the application provide a project release device, the device comprising a receiving module, an interaction module, and a release module, wherein:
[0039] The interaction module feeds back corresponding project release configuration options to the client according to the project release request sent by the client, so that the client performs project release configuration; wherein the project release configuration options comprise project basic information configuration options, build configuration options, release configuration options, environment configuration options, and permission configuration options.
[0040] The receiving module is configured to receive a project publishing configuration result sent by the client, wherein the project publishing configuration result comprises a project basic information configuration result, a build configuration result, a publishing configuration result, an environment configuration result, and a permission configuration result.
[0041] The publishing module is configured to:
[0042] generate basic information of a to-be-published project according to the project basic information configuration result;
[0043] determine corresponding code information according to the basic information of the to-be-published project;
[0044] perform basic information configuration, build configuration, environment configuration, publishing configuration, and permission configuration on the to-be-published project in sequence based on the code information and the project publishing configuration result
[0045] An embodiment of the third aspect of the present application provides a computer device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, and the processor executes the computer program to implement the method of the first aspect.
[0046] An embodiment of the fourth aspect of the present application provides a computer readable storage medium, which stores a computer program executable by a processor to implement the method of the first aspect.
[0047] The technical solutions provided in the embodiments of the present application have at least the following technical effects or advantages:
[0048] The project publishing method provided in the embodiments of the present application can send project publishing configuration options to a client sending a project publishing request according to a received project publishing request, and then can publish a project according to a project publishing configuration result fed back by the client. The project publishing method can be applied to various project types of project publishing, and does not need to develop a project for each project publishing process, thereby realizing the universality of the project publishing method, improving the expansion performance and reusability of the project publishing method, reducing the development cost, and improving the operation and maintenance flexibility. The to-be-published project can be sequentially configured with basic information, build configuration, environment configuration, publishing configuration, and permission configuration to prepare for publishing the to-be-published project, and then the publishing configuration set by the client can be realized by running a corresponding script. BRIEF DESCRIPTION OF DRAWINGS
[0049] Various other advantages and benefits will become apparent to those of ordinary skill in the art upon reading the following detailed description of the preferred embodiments. The accompanying drawings are included to provide a description of preferred embodiments, and are not meant to limit the present application. Moreover, the same reference numerals in the attached drawings indicate the same or similar components.
[0050] In the attached diagram:
[0051] Figure 1 A flowchart illustrating the project publishing method provided in an embodiment of this application is shown;
[0052] Figure 2 This diagram illustrates the project deployment process based on the project deployment configuration results.
[0053] Figure 3 This embodiment illustrates the overall process flow of project release control.
[0054] Figure 4 This diagram illustrates the process of version management based on the client's custom configuration.
[0055] Figure 5 A schematic diagram of the structure of the project publishing device provided in an embodiment of this application is shown;
[0056] Figure 6 A schematic diagram of the publishing module is shown. Detailed Implementation
[0057] Exemplary embodiments of this application will now be described in more detail with reference to the accompanying drawings. While exemplary embodiments of this application are shown in the drawings, it should be understood that this application may be implemented in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided to enable a more thorough understanding of this application and to fully convey the scope of this application to those skilled in the art.
[0058] It should be noted that, unless otherwise stated, the technical or scientific terms used in this application shall have the ordinary meaning as understood by one of ordinary skill in the art to which this application pertains.
[0059] The following description, in conjunction with the accompanying drawings, describes a project publishing method, apparatus, computer device, and storage medium according to embodiments of this application.
[0060] This application provides a project publishing method applicable to a project publishing device. This device can be connected to a client to receive project publishing requests from the client and send project publishing configuration options to the client. Then, the project can be published based on the project publishing configuration results provided by the client. This method is applicable to various project types and does not require project development for each project publishing process. This achieves the universality of the project publishing method, improves its scalability and reusability, reduces development costs, and enhances operational flexibility.
[0061] like Figure 1 As shown, the method for publishing this project may include the following steps:
[0062] Step S1, feedback corresponding project publishing configuration options to the client according to the project publishing request sent by the client, so that the client can configure the project publishing.
[0063] Step S2, receive the project publishing configuration result sent by the client;
[0064] Step S3, publish the to-be-published project according to the project publishing configuration result.
[0065] It can be understood that the project publishing request usually includes the project type of the to-be-published project, the client device information (including but not limited to the name and IP address, etc.) of the request sender, the information (including but not limited to the name and IP address) of the project publishing device receiving the request, etc. The project type includes IOS publishing, micro-service publishing, EXE publishing, WEB project publishing, etc. The project publishing configuration options can be set one by one corresponding to the project type, that is, for each project type, a set of project publishing configuration options is corresponding, and each set of publishing configuration options can preset one or more configuration templates of project publishing, which can be selected by the client according to the needs. Correspondingly, the project publishing device can parse the target project type corresponding to the project publishing request, and feedback the project publishing configuration options corresponding to the target project type to the client, so that the client can customize the configuration of the to-be-published project or select the template configuration, etc. The project publishing configuration result is the result of each configuration option corresponding to the project publishing configuration option made by the client.
[0066] In the embodiment, the corresponding program can be preset on the project publishing device, and when receiving the project publishing request sent by the client, the project publishing configuration options corresponding to the request can be sent to the client.
[0067] Specifically, the project publishing configuration options can include project basic information configuration options, build configuration options, publishing configuration options, environment configuration options, and permission configuration options, etc. Correspondingly, the project publishing configuration result can include project basic information configuration result, build configuration result, publishing configuration result, environment configuration result, and permission configuration result, etc.
[0068] The project basic information configuration option can be used for the client to configure various attributes of the project to be published (such as the project name, project description, number of packager nodes, specifications, etc., and can also include the project type). The build configuration corresponding to the project type can have different configuration templates, and the client can customize the build command (including the pre-command, post-command, and execution command) and the build parameter, so that the project publishing device can generate a corresponding build package according to the build configuration result fed back by the client. For example, if the project type is a micro-service Java project, the default template configuration is a Maven template, the build command is a Maven command, and the build parameter is branch, tag, or commit_id.
[0069] The environment configuration supports two-level configuration. The first-level configuration controls the overall publishing process, such as a fat environment (Feature Acceptance Test environment, used for software testers to test), a uat environment (User Acceptance Test environment, used for software testers to test in a production environment), and a pro environment (Production environment). Each second-level configuration corresponds to a publishing sub-environment, which is used to control each sub-publishing process of the overall publishing process. The second-level configuration can include multiple configurations. When there is only one second-level configuration, the project publishing device defaults all publishing sub-environments to the second-level configuration. When there are multiple second-level configurations, the client can set different publishing sub-environments for each sub-publishing process, and the project publishing device can configure the publishing sub-environment according to the packager node corresponding to each second-level configuration (the client can check the publishing sub-environment for each sub-publishing process).
[0070] The permission configuration is used to set the viewing and operating permissions of the project to be published.
[0071] It should be noted that the above project publishing configuration options and project publishing configuration results are only preferred embodiments of the present embodiment, and the present embodiment is not limited thereto. Those skilled in the art can add or delete project publishing configuration options according to actual needs. In addition, the order of the above configuration options is only a textual description, and not the actual order sent to the client.
[0072] The publishing configuration can bind the second-level configuration of the environment configuration to configure the target server of the packager node, and the client can customize the publishing, pre-publishing processing, and post-publishing processing through the publishing configuration option. The project publishing device can implement the publishing configuration set by the client by running the corresponding script. Accordingly, if the project type is a micro-service Java project, the default template configuration is a Maven template, the build command is a Maven command, and the build parameter is branch, tag, or commit_id. Figure 2As shown, step S3 can include the following processing: 1) creating a project, i.e., generating basic information of a to-be-published project according to project basic information configuration results; 2) associating a code, i.e., determining corresponding code information according to the basic information of the to-be-published project, including but not limited to id, http_url_to_repo, etc., which are used for subsequent acquisition of various configuration results and project configuration and publishing; and 3) configuration preparation, sequentially performing basic information configuration, build configuration, environment configuration, publishing configuration, and permission configuration on the to-be-published project based on the code information and project publishing configuration results, to make various configuration preparations before publishing the to-be-published project.
[0073] Specifically, the build configuration of the to-be-published project based on the code information and the project publishing configuration results can include the following processing: determining a target configuration template corresponding to the to-be-published project according to the build configuration results. The target configuration template includes build commands and build parameters customized by a client or preset. The to-be-published project can be built based on the code information according to the target configuration template.
[0074] Corresponding to the environment configuration, the environment configuration results can include first-level configuration results and second-level configuration results. The first-level configuration results are used to control the total publishing process of the to-be-published project, and the second-level configuration results are used to control the publishing sub-environment corresponding to each publishing node. Correspondingly, the environment configuration of the to-be-published project based on the code information and the project publishing configuration results can include the following processing: reading the first-level configuration results and the second-level configuration results; creating a total publishing process of the to-be-published project according to the first-level configuration results and creating a publishing environment of each sub-publishing process of the total publishing process according to the second-level configuration results. The publishing environment of the sub-publishing process corresponds to the second-level configuration results one by one.
[0075] Further, the publishing configuration of the to-be-published project based on the code information and the project publishing configuration results can include the following processing: configuring a corresponding target server according to the publishing sub-environment of each sub-publishing process created; and publishing the to-be-published project according to the total publishing process.
[0076] In the specific implementation of the present embodiment, for one project, multiple version upgrades are usually performed. The project publishing device can manage each publishing version of each project. Correspondingly, the project publishing configuration options can further include version management configuration options, and the project publishing configuration results can further include version management configuration results, so that the project publishing device can perform version management according to the version management configuration results, thereby solving the problem that the existing project publishing method only supports rollback and cannot realize multi-version management.
[0077] Correspondingly, the releasing of the project to be released according to the total release process can include the following processing: dynamically generating a version flow according to the build configuration result and the environment configuration result; reading the project basic information configuration result, parsing the attributes of the project to be released, and configuring the corresponding packager node; reading the build configuration result, parsing the build pre-command, the build post-command, and the build execution command, and generating the corresponding build package, and triggering the version management and synchronization task; reading the environment configuration result, generating one or more release stages in the version flow, reading the release configuration result, releasing the project to be released, and triggering the asynchronous synchronization task.
[0078] The triggering mode of the total release process can include: automatic triggering by pushing code, manual triggering by selecting a code version, manual triggering by selecting a fixed version, and manual triggering by running a specified version flow from a specified stage. As shown in Figure 3 The overall flowchart of the project release control provided by the embodiment is shown in FIG. 1. The execution steps of the automatic triggering by pushing code and the manual triggering by selecting a code version are the same, and are as follows: 1) dynamically generating a version flow according to the build configuration result and the environment configuration result to control the flow of the entire release flow; 2) in the build stage, reading the project configuration result, parsing the project attributes, and assigning the corresponding packager node. That is, reading the build configuration result, parsing the build pre-command, the build post-command, and the build execution command, executing the build, and generating the corresponding build package. After the build is successful, the asynchronous version management can be triggered. Reading the version management configuration result, verifying the version management rule, and managing the version according to the version record of each environment configuration result; 3) in the release stage, the release node corresponds to the environment configuration one by one, and the release node triggers in a streaming manner according to the environment configuration priority, and executes in stages. The execution steps of the manual triggering by selecting a fixed version skip the build stage, and can directly execute the subsequent release stage. The manual triggering by running a specified version flow from a specified stage can flexibly select the execution stage, and can start from any specified stage. The embodiment does not make specific limitations on this. In this way, the embodiment sets multiple release triggering modes, which can be selected by the client according to the actual situation, further realizes the diversification and flexibility of the project release process, and facilitates the client to better customize the project release.
[0079] In another specific embodiment of the embodiment, in view of the above step of dynamically generating a version flow, the project release method can further include the following processing: determining a version management rule based on the build configuration result and the first-level configuration result, and managing the version of the project to be released according to the version management rule. That is, the project release device can automatically generate a version management rule according to the build configuration result and the first-level configuration result fed back by the client, and manage the version of the project to be released according to the version management rule, so as to realize the multi-version management of the project to be released and solve the defect that the version can only be managed by rollback in the prior art.
[0080] Specifically, the above determining the version management rule in the dimension of the build configuration result and the first-level configuration result, and performing version management on the to-be-released project according to the version management rule can include the following processing: reading the build configuration result and the first-level configuration result, determining whether the client performs customized configuration; if yes, determining the version management rule according to the customized configuration of the client; and if no, performing version management on the to-be-released project according to the preset default version management rule configuration.
[0081] In the embodiment, the project release device fully considers individual differences, sets the preset default version management rule, and can receive the version management rule customized by the client, so that the client can select according to actual conditions, which can meet the needs of customized configuration of the client and achieve the purpose of rapid configuration of the client.
[0082] Further, the build configuration result and the first-level configuration result can include a weight configuration result and / or a priority configuration result (of course, the weight and the priority can not be configured), and accordingly, as shown in Figure 4 According to the customized configuration of the client to determine the version management rule, the following processing can be included: reading the customized configuration of the client, determining whether the customized configuration of the client configures the weight, if yes, determining the version management rule according to the weight rule; if no, determining whether the customized configuration of the client configures the priority; if yes, determining the version management rule according to the priority rule.
[0083] It can be understood that if neither the weight nor the priority is configured, it can be understood that the version management is not customized, and the to-be-released project can be managed according to the above preset default version management rule. Further, each generated version can be archived to facilitate tracing and reproducing the historical version.
[0084] In the embodiment, the configuration result fed back by the client, especially the environment configuration result and the build configuration result, can include weight configuration and / or priority configuration. For example, the above-mentioned first-level configuration result can include fat environment configuration, uat environment configuration and pro environment configuration, and a weight ratio of 3:2:5 can be set for each environment configuration, and the total version number is 30 (it can be understood that the version number selected by the client is 30, and 30%, 20% and 50% of resources are allocated to the fat environment, the uat environment and the pro environment respectively). For another example, the above-mentioned environment configuration result can further include a priority rule, that is, the priority of the sub-release process in the release overall process is specified in the environment configuration result, and the project release device can build the environment on each packager node target server according to the priority rule (for example, the priority rule specifies that the release environment on the edge node server is built in priority). In this way, by performing weight configuration and priority configuration, the client can customize the version management rule, support weight and priority rules, and further facilitate the client to flexibly plan version management and reproduce historical versions.
[0085] In addition, the project release device can also synchronize each item of data of each sub-release process, and accordingly, the method can further include the following steps: synchronizing the packager node version of each sub-release process, and synchronizing the version data of each project to be released in real time. It should be noted that the synchronization action can be triggered at any build stage or release stage in the project release process, and the synchronization task is performed asynchronously.
[0086] The project release method provided by the embodiment can send project release configuration options to the client sending the request according to the received project release request, and then can release the project according to the project release configuration result fed back by the client. The project release method can be applied to various project types of project release, and does not need to develop a separate project for each project release process, thereby realizing the universality of the project release method, improving the expansion performance and reuse rate, reducing the development cost, and improving the operation and maintenance flexibility.
[0087] Based on the same concept of the above-mentioned project release method, the embodiment further provides a project release device, as shown in Figure 5 The project release device includes a receiving module, an interaction module and a release module, wherein:
[0088] The receiving module is configured to receive a project release request sent by a client;
[0089] The interaction module is configured to feed back corresponding project release configuration options to the client according to the project release request, so that the client performs project release configuration;
[0090] The receiving module is further configured to receive a project release configuration result sent by the client;
[0091] The publishing module is configured to perform a project publishing process according to the project publishing configuration result.
[0092] The project publishing device provided by the embodiment can have the beneficial effects of the project publishing method, which will not be repeated here.
[0093] Specifically, as shown in the figure, Figure 6 The publishing module can include a project configuration unit, a publishing execution unit, a version management unit, a permission control unit, and a synchronization unit. The project configuration unit is configured to perform project configuration according to the project publishing configuration result fed back by the client. The publishing execution unit is configured to perform publishing of the project to be published according to the project configuration. The version management unit is configured to perform version management of the project to be published. The permission control unit is configured to set the viewing and operating permissions of the project to be published. The synchronization unit is configured to synchronize various data of each sub-publishing process.
[0094] Further, the project configuration unit includes a basic information configuration sub-unit, a build configuration sub-unit, a publishing configuration sub-unit, an environment configuration sub-unit, a version management configuration sub-unit, and a permission configuration sub-unit. The basic information configuration sub-unit is configured to perform basic information configuration of the project publishing according to the project basic information configuration result. The build configuration sub-unit is configured to perform build configuration of the project publishing according to the build configuration result. The publishing configuration sub-unit is configured to perform publishing configuration of the project publishing according to the publishing configuration result. The environment configuration sub-unit is configured to perform environment configuration of the project publishing according to the environment configuration result. The permission configuration sub-unit is configured to perform permission configuration of the project publishing according to the permission configuration result. The version management configuration sub-unit is configured to determine version management rules based on the build configuration result and the first-level configuration result, and perform version management of the project to be published according to the version management rules.
[0095] Based on the same concept of the project publishing method, the embodiment further provides a computer device, which includes a memory, a processor, and a computer program stored in the memory and executable on the processor. The processor executes the computer program to implement the project publishing method.
[0096] The computer device provided by the embodiment can implement the project publishing method and have the beneficial effects of the project publishing method, which will not be repeated here.
[0097] Based on the same concept of the project publishing method, the embodiment further provides a computer-readable storage medium, which stores a computer program. The program is executed by a processor to implement the project publishing method.
[0098] The computer readable storage medium provided by the embodiment can realize the project publishing method, and has at least the beneficial effects of the project publishing method, and will not be repeated.
[0099] It should be noted that the above-mentioned embodiments illustrate the application rather than limit the application, and alternative embodiments can be designed by those skilled in the art without departing from the scope of the appended claims. In the claims, any reference signs placed between parentheses shall not be construed as limiting the claim. The word comprising does not exclude the presence of elements or steps not listed in the claim. The word a or an preceding an element does not exclude the presence of a plurality of such elements. The application can be implemented by means of both hardware and software, and the application can be implemented by means of a suitably programmed computer. In a unit claim enumerating several means, the several means can be embodied by one and the same item of hardware. The use of the words first, second and third, etc. does not imply any order. These words have been used to name the circumstances in which the embodiments have been described, but shall not be construed as limiting.
[0100] The above is only the preferred embodiment of the present application, but the protection scope of the present application is not limited to this. Any skilled person in the art can easily think of changes or replacements within the technical range disclosed by the present application, which shall be covered in the protection scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.
Claims
1. A project release method characterized by comprising: The method comprises: According to the project release request sent by the client, the corresponding project release configuration options are fed back to the client for project release configuration; wherein the project release configuration options include: project basic information configuration options, build configuration options, release configuration options, environment configuration options and permission configuration options; Receiving the project release configuration result sent by the client; wherein the project release configuration result includes project basic information configuration result, build configuration result, release configuration result, environment configuration result and permission configuration result; According to the project basic information configuration result, the basic information of the to-be-released project is generated; According to the basic information of the to-be-released project, the corresponding code information is determined; Based on the code information and the project release configuration result, the to-be-released project is configured in turn with basic information, build configuration, environment configuration, release configuration and permission configuration; Among them, based on the code information and the project release configuration result, the environment configuration of the to-be-released project includes: reading the first configuration result and the second configuration result; based on the code information, the total release process of the to-be-released project is created according to the first configuration result, and the release environment of each sub-release process of the total release process is created according to the second configuration result, and the release environment of the sub-release process corresponds to the second configuration result one by one; Based on the code information and the project release configuration result, the release configuration of the to-be-released project includes: according to the release environment of each sub-release process created, the corresponding target server is configured; according to the total release process, the release of the to-be-released project is carried out; The environment configuration result also includes priority rules, which are used to specify the priority of the sub-release process in the total release process in the environment configuration result; The release configuration binds the second configuration result of the environment configuration to configure the target server of the packer node, and the project release device constructs the environment on the target server of each packer node according to the priority rules; the project release device then manages each project's release version, and the project release configuration options include version management configuration options, and the project release configuration result includes version management configuration result, so that the project release device manages the version according to the version management configuration result to realize multi-version management.
2. The method of claim 1, wherein, Based on the code information and the project release configuration result, the build configuration of the to-be-released project includes: According to the build configuration result, the target configuration template corresponding to the to-be-released project is determined; the target configuration template includes the build command and build parameter customized or preset by the client; Based on the code information, the to-be-released project is built according to the target configuration template.
3. The method of claim 1, wherein, The trigger mode of the total release process includes: push code automatic trigger, select code version manual trigger, select fixed version manual trigger and specify version flow manual trigger from specified stage.
4. The method of claim 3, wherein, The release of the to-be-released project according to the total release process includes: generating a version flow dynamically according to the build configuration result and the environment configuration result; reading the project basic information configuration result, parsing the attribute of the to-be-released project, and configuring a corresponding packager node; reading the build configuration result, parsing the build pre-command, the build post-command, and the build execution command, generating a corresponding build package, and triggering version management and synchronization tasks; reading the environment configuration result, generating one or more release stages in the version flow, reading the release configuration result, releasing the to-be-released project, and triggering an asynchronous synchronization task.
5. The method of claim 4, wherein, The method further comprises: determining a version management rule based on the build configuration result and the primary configuration result, and performing version management on the to-be-released project according to the version management rule.
6. The method of claim 5, wherein, The determining of the version management rule based on the build configuration result and the primary configuration result, and the performing of the version management on the to-be-released project according to the version management rule, comprises: reading the build configuration result and the primary configuration result to determine whether the client performs customized configuration; if yes, determining the version management rule according to the customized configuration of the client; if no, performing version management on the to-be-released project according to a preset default version management rule configuration.
7. The method of claim 6, wherein, The determining of the version management rule according to the customized configuration of the client, comprises: determining whether the customized configuration of the client is configured with a weight, if yes, determining the version management rule according to a weight rule; if no, determining whether the customized configuration of the client is configured with a priority; if yes, determining the version management rule according to a priority rule.
8. The method of claim 6, wherein, The method further comprises: synchronizing the version of the packager node of each sub-release process, and real-time monitoring and synchronizing the version data of each to-be-released project.
9. An item issuing apparatus characterized by comprising: The apparatus comprises a receiving module, an interaction module, and a release module, wherein: The interaction module is configured to feed back corresponding project release configuration options to the client according to the project release request sent by the client, so that the client performs project release configuration; wherein the project release configuration options comprise project basic information configuration options, build configuration options, release configuration options, environment configuration options, and permission configuration options. The receiving module is configured to receive the project release configuration result sent by the client; wherein the project release configuration result comprises project basic information configuration result, build configuration result, release configuration result, environment configuration result, and permission configuration result. The release module is configured to: generate the basic information of the to-be-released project according to the project basic information configuration result; determine the corresponding code information according to the basic information of the to-be-released project; perform basic information configuration, build configuration, environment configuration, release configuration, and permission configuration on the to-be-released project in sequence based on the code information and the project release configuration result. The publishing module is further configured to read the first configuration result and the second configuration result; create a total publishing flow of the to-be-published project according to the first configuration result and create a publishing environment of each sub-publishing flow of the total publishing flow according to the second configuration result, the publishing environment of the sub-publishing flow corresponding to the second configuration result one by one; According to the created publishing environment of each sub-publishing flow, the corresponding target server is configured; and the publishing of the to-be-published project is performed according to the total publishing flow; The environment configuration result further includes a priority rule, which is used to define the priority of the sub-publishing flow in the total publishing flow in the environment configuration result; The second configuration result of the publishing configuration binding environment configuration is used to configure the target server of the packer node, and the project publishing device constructs the environment on the target server of each packer node according to the priority rule; The device is further configured to manage each publishing version of each project by the project publishing device, the project publishing configuration option includes a version management configuration option, the project publishing configuration result includes a version management configuration result, so that the project publishing device performs version management according to the version management configuration result to realize multi-version management.
10. A computer device comprising a memory, a processor, and a computer program stored on the memory and executable on the processor, characterized in that, The processor runs the computer program to implement the method of any one of claims 1-8.
11. A computer readable storage medium having stored thereon a computer program, characterized in that, The program is executed by the processor to implement the method of any one of claims 1-8.
Citation Information
Patent Citations
Automatic release scheduling system and method and storage medium
CN110661844A
Project version release management method and system
CN111694592A
Software deployment method and device, computer equipment and storage medium
CN112162753A