Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7478037B2 - Continuous integration system and continuous integration method - Google Patents
[go: Go Back, main page]

JP7478037B2 - Continuous integration system and continuous integration method - Google Patents

Continuous integration system and continuous integration method Download PDF

Info

Publication number
JP7478037B2
JP7478037B2 JP2020105577A JP2020105577A JP7478037B2 JP 7478037 B2 JP7478037 B2 JP 7478037B2 JP 2020105577 A JP2020105577 A JP 2020105577A JP 2020105577 A JP2020105577 A JP 2020105577A JP 7478037 B2 JP7478037 B2 JP 7478037B2
Authority
JP
Japan
Prior art keywords
job
execution
resource
execution machine
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020105577A
Other languages
Japanese (ja)
Other versions
JP2021197098A (en
Inventor
豪 竹内
重樹 東嶋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Astemo Ltd
Original Assignee
Hitachi Astemo Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Priority to JP2020105577A priority Critical patent/JP7478037B2/en
Publication of JP2021197098A publication Critical patent/JP2021197098A/en
Application granted granted Critical
Publication of JP7478037B2 publication Critical patent/JP7478037B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、モデルベース開発での継続的インテグレーションシステムに関する。 The present invention relates to a continuous integration system in model-based development.

モデルベース開発は、組み込みシステム開発において広く採用されている。モデルベース開発ではソフトウェア設計にモデルファイルを利用し、設計段階からシミュレーションを実行できるため設計の検証が早期に行えることから、ソフトウェアの信頼性が高くなることが特徴である。また、モデルファイルから直接自動的にコードが生成できるため、開発におけるコーディングの工数が削減できることも特徴である。 Model-based development is widely adopted in embedded system development. Model-based development uses model files in software design and allows simulations to be performed from the design stage, which means design verification can be performed early on, resulting in high software reliability. Another feature is that code can be generated automatically directly from model files, reducing the amount of coding work required during development.

継続的インテグレーション(Continuous Integration、以下CI)は、仕様変更に伴うソースファイルの頻繁な変更に対してビルド及びテストをその都度自動的に実行し、エラーを早期に発見、修正することができる開発手法である。 Continuous integration (CI) is a development method that automatically runs builds and tests whenever source files are frequently changed due to specification changes, enabling early detection and correction of errors.

CIにより、開発、テスト、リリースのサイクルが継続的に行われる仕組みが提供され、ソフトウェアの不具合を早期に発見、対処し、品質を短期で向上させることが可能となる。 CI provides a mechanism for continuous development, testing, and release cycles, making it possible to detect and address software defects early and improve quality in a short period of time.

従来のウォーターフォールに代表される開発手法では、一つの長い開発サイクルのために最終工程までビルド及びテストが実行されない。そのためビルドやテスト実行時にエラーが発生した場合、開発は最終工程であるために原因を解析するため非常に時間がかかるだけでなく、修正の際の手戻りが大きく、工数が増大する。 In traditional development methods such as waterfall, building and testing are not performed until the final stages of a single long development cycle. As a result, if an error occurs during building or testing, not only does it take a lot of time to analyze the cause because development is the final stage, but it also requires a lot of rework when making corrections, increasing the amount of work required.

一方のアジャイル的ソフトウェア開発により開発サイクルが短いCIでは、その短いサイクルの中で都度ビルド及びテストを繰り返すため、エラーを早期に発見し、修正することが可能である。 On the other hand, CI, which has a short development cycle due to agile software development, repeats builds and tests each time within that short cycle, making it possible to find and correct errors early.

また、開発初期の段階で仕様漏れや仕様違いに気が付くことができ、素早い修正が可能である。それにより従来の手法に比べ、リードタイムが削減できるだけでなく、一定の品質を保つことが可能である。 In addition, any omissions or differences in specifications can be detected at an early development stage, allowing for quick corrections. This not only reduces lead time compared to traditional methods, but also makes it possible to maintain a certain level of quality.

以下ではCIを構成するビルドやテストはジョブと呼ぶ。またジョブを内包した集まりをパイプラインと呼ぶ。 In what follows, the builds and tests that make up a CI will be called jobs. A collection of jobs will be called a pipeline.

国際公開第2018/116460号WO 2018/116460

特許文献1は、過去のテストの履歴情報に着目し、各テストに必要なリソースを推定することにより、各テストのインスタンスに割り当てるリソースを変更し、テスト実行時に割り当てるリソース量を低減している。 Patent Document 1 focuses on historical information from past tests, estimates the resources required for each test, and changes the resources allocated to each test instance, thereby reducing the amount of resources allocated when the test is executed.

前記先行技術文献でのテスト工程でのリソース消費量削減の手法は過去の実施データが必要であり、モデルベース開発での継続的インテグレーションにおけるコード生成やビルド工程への応用は困難である。 The method for reducing resource consumption in the testing process described in the above prior art documents requires past implementation data, making it difficult to apply to the code generation and build processes in continuous integration in model-based development.

しかし、過去の履歴情報に基づくリソース推定は実施する処理の負荷が常に同等であるという前提の基で成り立っている。このため、モデルベース開発では処理の負荷がモデルファイルや生成コードに依存するだけでなく、それらのファイルは継続的インテグレーションにおいて日々単位で更新されるため、過去の履歴情報を利用したリソース推定は困難である。 However, resource estimation based on historical information is based on the assumption that the load of the processing performed is always the same. For this reason, in model-based development, not only does the processing load depend on the model files and generated code, but these files are updated daily during continuous integration, making it difficult to estimate resources using historical information.

本発明は以上の点を考慮してなされたもので、各工程の処理前にモデルファイルや生成コードを静的に解析することで事前に処理の負荷を推定し、その結果に基づいて各工程に割り当てるリソースを最適に配分し、各工程の処理実行時に割り当てるリソース量を最適化することを目的とする。 The present invention has been made in consideration of the above points, and aims to estimate the processing load in advance by statically analyzing the model file and generated code before each process is processed, and to optimally allocate resources to each process based on the results, thereby optimizing the amount of resources allocated when each process is executed.

本発明は、ファイルの構成管理を行うバージョン管理サーバーと、前記バージョン管理サーバーからの要求に応じてCIジョブの実行をジョブ実行マシン群の実行マシンに依頼するCIサーバーと、前記CIサーバーからの要求に応じて前記CIジョブを実行するジョブ実行マシン群からなる継続的インテグレーションシステムであって、前記CIサーバーは、前記バージョン管理サーバーから入力ファイルを受け付けて、実行要求のあったパイプラインを構成するCIジョブ毎に、実行に必要なリソースの推定要求を発行し、受信した推定結果に基づいて前記ジョブ実行マシン群の実行マシンにCIジョブの実行を依頼するCIジョブ実行部と、前記CIジョブ実行部からの推定要求に応じて、前記CIジョブに割り当てるリソースを推定するリソース推定演算部と、前記リソース推定演算部からの推定結果に応じて、前記CIジョブに割り当てるリソースを決定するリソース決定演算部を有し、前記リソース推定演算部は、前記CIジョブ実行部からのリソースの推定要求に応じて、前記入力ファイルを処理する際の負荷の指標として、前記CIジョブの前記入力ファイルから論理複雑度を算出し、前記リソース決定演算部は、前記リソース推定演算部から受け取った前記論理複雑度に基づいて、予め設定された論理複雑度とジョブ実行マシン対応情報から前記CIジョブを実行する実行マシンを決定する。 The present invention provides a continuous integration system including a version management server that performs file configuration management, a CI server that requests an execution machine of a job execution machine group to execute a CI job in response to a request from the version management server, and a job execution machine group that executes the CI job in response to a request from the CI server, wherein the CI server receives an input file from the version management server, issues a request to estimate resources required for execution for each CI job that constitutes a pipeline for which execution has been requested, and requests an execution machine of the job execution machine group to execute the CI job based on the received estimation result, and The CI job execution unit includes a resource estimation calculation unit that estimates resources to be allocated to the CI job in response to an estimation request from a job execution unit, and a resource determination calculation unit that determines resources to be allocated to the CI job in response to an estimation result from the resource estimation calculation unit, wherein the resource estimation calculation unit calculates a logical complexity from the input file of the CI job as an index of the load when processing the input file in response to a resource estimation request from the CI job execution unit, and the resource determination calculation unit determines an execution machine to execute the CI job from a predetermined logical complexity and job execution machine correspondence information based on the logical complexity received from the resource estimation calculation unit.

本発明によれば、過去の履歴情報に頼ることなく、日々単位で更新されるモデルファイルやソースファイル等のファイルに応じたリソースを最適に配分し、各工程(CIジョブ)の処理の実行の際に割り当てるリソースを最適化することが可能となる。 According to the present invention, it is possible to optimally allocate resources according to files such as model files and source files that are updated daily without relying on past history information, and to optimize the resources allocated when executing the processing of each process (CI job).

本明細書において開示される主題の、少なくとも一つの実施の詳細は、添付されている図面と以下の記述の中で述べられる。開示される主題のその他の特徴、態様、効果は、以下の開示、図面、請求項により明らかにされる。 Details of at least one implementation of the subject matter disclosed herein are set forth in the accompanying drawings and the description below. Other features, aspects, and advantages of the disclosed subject matter will become apparent from the following disclosure, drawings, and claims.

本発明の実施例を示し、継続的インテグレーションシステムの一例を示すブロック図である。FIG. 1 is a block diagram illustrating an example of a continuous integration system according to an embodiment of the present invention. 本発明の実施例を示し、バージョン管理サーバーの機能の一例を示すブロック図である。FIG. 2 is a block diagram illustrating an example of the functions of a version management server according to an embodiment of the present invention. 本発明の実施例を示し、継続的インテグレーションサーバーの構成の一例を示すブロック図である。FIG. 2 is a block diagram illustrating an example of a configuration of a continuous integration server according to an embodiment of the present invention. 本発明の実施例を示し、入力ファイルがモデルファイルの場合にリソース推定演算部で行われる処理の一例を示すフローチャートである。11 is a flowchart illustrating an example of a process that is performed by the resource estimation calculation unit when the input file is a model file according to the embodiment of the present invention. 本発明の実施例を示し、リソース決定演算部で行われる処理の一例を示すフローチャートである。11 is a flowchart illustrating an example of a process performed by the resource determination calculation unit according to the embodiment of the present invention. 本発明の実施例を示し、ジョブ実行マシンと正規化論理複雑度の対応表を示す図である。FIG. 13 is a diagram illustrating an embodiment of the present invention and shows a correspondence table between job execution machines and normalized logical complexity. 本発明の実施例を示し、パイプライン構成ファイルの一例を示す図である。FIG. 11 illustrates an example of a pipeline configuration file according to the embodiment of the present invention.

以下、本発明を実施するための実施形態について説明する。 The following describes an embodiment of the present invention.

図1は、継続的インテグレーション(以下、CI)システムの構成の一例を示すブロック図である。CIシステムは、ファイルの構成管理を行うバージョン管理サーバー40と、パイプライン72を構成するCIジョブ73-1~73-Nを実行するために必要な計算機リソースを推定及び決定し、CIジョブ73-1~73-Nの実行をジョブ実行マシン群200に要求するCIサーバー70と、CIジョブ73-1~73-Nの処理を行う複数の実行マシン(計算機)211-1~211-Mからなるジョブ実行マシン群200から構成される。 Figure 1 is a block diagram showing an example of the configuration of a continuous integration (hereafter referred to as CI) system. The CI system is composed of a version management server 40 that manages the configuration of files, a CI server 70 that estimates and determines the computer resources required to execute CI jobs 73-1 to 73-N that make up a pipeline 72 and requests the job execution machine group 200 to execute the CI jobs 73-1 to 73-N, and a job execution machine group 200 consisting of multiple execution machines (computers) 211-1 to 211-M that process the CI jobs 73-1 to 73-N.

なお、CIジョブを個々に特定しない場合には、「-」以降を省略した符号「73」を使用する。また、他の構成要素の符号についても同様である。 When not specifying an individual CI job, the symbol "73" is used with the "-" and everything after it omitted. The same applies to the symbols for the other components.

バージョン管理サーバー40は、ファイル群の構成管理を行う機能を有し、ファイル群を管理するブランチ42と、複数のブランチ42を管理するリポジトリ41から構成される。図2は、バージョン管理サーバー40の機能の一例を示すブロック図である。 The version management server 40 has a function for managing the configuration of a group of files, and is composed of a branch 42 that manages the group of files, and a repository 41 that manages multiple branches 42. Figure 2 is a block diagram showing an example of the functions of the version management server 40.

本実施例ではファイル群として、プログラムのソースファイルからなるソースファイル群43と、モデルを記述したモデルファイル群44と、CIスクリプト45と、パイプラインを構成するCIジョブ73を記述したパイプライン構成ファイル群48をブランチ42が管理する。 In this embodiment, the branch 42 manages the following file groups: a source file group 43 consisting of program source files, a model file group 44 describing models, a CI script 45, and a pipeline configuration file group 48 describing CI jobs 73 that make up a pipeline.

また、CIスクリプト45は、CIジョブ73の処理を記述したCIジョブスクリプト群46と、CIジョブ73に適切な実行マシン211を割り当てるための正規化論理複雑度-ジョブ実行マシン対応表47からなる。 The CI script 45 also consists of a group of CI job scripts 46 that describe the processing of the CI job 73, and a normalized logical complexity-job execution machine correspondence table 47 for assigning an appropriate execution machine 211 to the CI job 73.

CIサーバー70は、パイプライン72の構成に従ってCIジョブ73の実行管理を行うCIジョブ実行部71と、パイプライン72を構成するCIジョブ73に必要なリソースを推定するリソース推定演算部80と、推定されたリソースからCIジョブ73を実行するために必要なリソースを決定するリソース決定演算部90からなる。 The CI server 70 comprises a CI job execution unit 71 that manages the execution of CI jobs 73 according to the configuration of the pipeline 72, a resource estimation calculation unit 80 that estimates the resources required for the CI jobs 73 that constitute the pipeline 72, and a resource determination calculation unit 90 that determines the resources required to execute the CI jobs 73 from the estimated resources.

なお、本実施例のパイプライン72は、CIジョブ73-1からCIジョブ73-Nを順次実行する例を示す。 In this embodiment, the pipeline 72 shows an example of sequentially executing CI jobs 73-1 to 73-N.

ユーザー1はユーザー端末2を通じて入力ファイル群20をバージョン管理サーバー40へ送信する。バージョン管理サーバー40は受信した入力ファイル群20をリポジトリ41上のブランチ42へ格納する。 User 1 sends a set of input files 20 to the version management server 40 via the user terminal 2. The version management server 40 stores the received set of input files 20 in a branch 42 on the repository 41.

バージョン管理サーバー40は、受信した入力ファイル群20とブランチ42に格納されたファイル群との間に差分が存在する場合、CIサーバー70へファイル更新情報50とパイプライン入力ファイル51を送信する。 If there is a difference between the received input file group 20 and the file group stored in the branch 42, the version management server 40 sends the file update information 50 and the pipeline input file 51 to the CI server 70.

パイプライン入力ファイル51は、ブランチ42内の全てのファイルであるソースファイル群43と、モデルファイル群44と、CIスクリプト45と、パイプライン構成ファイル群48からなる。 The pipeline input files 51 consist of a set of source files 43, which are all files in the branch 42, a set of model files 44, a set of CI scripts 45, and a set of pipeline configuration files 48.

ファイル更新情報50は、入力ファイル群20のうち、ソースファイル群43やモデルファイル群44で更新のあったファイルの情報が含まれる。 The file update information 50 includes information about files that have been updated in the source file group 43 and the model file group 44 among the input file group 20.

以下では入力ファイル群としてモデルファイル群44の例について説明する。 Below, we will explain an example of model file group 44 as an input file group.

CIサーバー70は、バージョン管理サーバー40からCIサーバー70へファイル更新情報50とパイプライン入力ファイル51を受け付けると、CIジョブ実行部71が、パイプライン構成ファイル群48に記述されたそれぞれのCIジョブ73に対して、リソース推定要求81をリソース推定演算部80に送信し、リソース決定演算部90からリソース決定結果91を受け付けて、ジョブ実行マシン群200にCIジョブ73の実行を依頼する。 When the CI server 70 receives file update information 50 and pipeline input file 51 from the version management server 40, the CI job execution unit 71 sends a resource estimation request 81 to the resource estimation calculation unit 80 for each CI job 73 described in the pipeline configuration file group 48, receives a resource determination result 91 from the resource determination calculation unit 90, and requests the job execution machine group 200 to execute the CI job 73.

そして、CIサーバー70は、ジョブ実行マシン群200からジョブ実行結果100を受け付けると、パイプライン実行結果60をバージョン管理サーバー40へ送信する。 Then, when the CI server 70 receives the job execution result 100 from the job execution machine group 200, it sends the pipeline execution result 60 to the version management server 40.

図7は、パイプライン構成ファイル500の一例を示す図である。本実施例におけるパイプライン構成ファイル500は、モデルファイル群44からコードを生成するジョブ501が記述されている。 Figure 7 is a diagram showing an example of a pipeline configuration file 500. In this embodiment, the pipeline configuration file 500 describes a job 501 that generates code from a model file group 44.

CIジョブ実行部71はこのコード生成ジョブ501に関してリソース推定要求81をリソース推定演算部80に送信し、リソース決定演算部90からリソース決定結果91を受け付け、ジョブ実行マシン群200の実行マシン211にCIジョブ73の実行を依頼する。 The CI job execution unit 71 sends a resource estimation request 81 for this code generation job 501 to the resource estimation calculation unit 80, receives a resource determination result 91 from the resource determination calculation unit 90, and requests the execution machine 211 of the job execution machine group 200 to execute the CI job 73.

リソース推定演算部80は、CIジョブ実行部71からリソース推定要求81を受け付けると、パイプライン入力ファイル51に存在するモデルファイル群44を用いて計算機リソースの推定を行い、正規化論理複雑度82を算出してリソース決定演算部90へ送信する。 When the resource estimation calculation unit 80 receives a resource estimation request 81 from the CI job execution unit 71, it estimates computer resources using the model file group 44 present in the pipeline input file 51, calculates the normalized logical complexity 82, and sends it to the resource determination calculation unit 90.

リソース決定演算部90は、リソース推定演算部80から正規化論理複雑度82を受け付けると、パイプライン入力ファイル51に含まれる正規化論理複雑度-ジョブ実行マシン対応表47を参照して割り当てるリソースの決定を行う。 When the resource determination calculation unit 90 receives the normalized logical complexity 82 from the resource estimation calculation unit 80, it refers to the normalized logical complexity - job execution machine correspondence table 47 contained in the pipeline input file 51 to determine the resources to be allocated.

正規化論理複雑度82は0~1の実数値であり、正規化論理複雑度-ジョブ実行マシン対応表47には、正規化論理複雑度の値とジョブ実行に適した実行マシンを紐づけるための情報が記載されている。 Normalized logical complexity 82 is a real value between 0 and 1, and normalized logical complexity - job execution machine correspondence table 47 contains information for linking the value of normalized logical complexity with an execution machine suitable for job execution.

リソース決定演算部90は正規化論理複雑度82と、正規化論理複雑度-ジョブ実行マシン対応表47を用いて、CIジョブ73を実行する実行マシン211を一意に選択し、リソースの決定を行い、リソース決定結果91をCIジョブ実行部71へ送信する。 The resource determination calculation unit 90 uses the normalized logical complexity 82 and the normalized logical complexity-job execution machine correspondence table 47 to uniquely select the execution machine 211 that will execute the CI job 73, determines the resources, and sends the resource determination result 91 to the CI job execution unit 71.

CIジョブ実行部71は、CIジョブ情報112と、ジョブ実行要求110をジョブ実行マシン群200へ送信する。ジョブ実行要求110はCIジョブ73を実行するマシン情報が含まれ、ジョブ実行マシン群200の中から一意に選択される。 The CI job execution unit 71 transmits the CI job information 112 and the job execution request 110 to the job execution machine group 200. The job execution request 110 includes information about the machine that will execute the CI job 73, and is uniquely selected from the job execution machine group 200.

選択された実行マシン211はCIジョブ情報112を基にCIジョブ73を実行した後、ジョブ実行結果100をCIサーバー70に送信する。 The selected execution machine 211 executes the CI job 73 based on the CI job information 112 and then sends the job execution result 100 to the CI server 70.

ジョブ実行マシン群200は、CIジョブ73の処理を行う複数の実行マシン211-1~211-Mから構成されている。 The job execution machine group 200 is composed of multiple execution machines 211-1 to 211-M that process CI jobs 73.

図3は、CIサーバー70の構成の一例を示すブロック図である。CIサーバー70は、プロセッサ11と、メモリ12と、ストレージ装置13と、ネットワーク装置14とを含む計算機である。 Figure 3 is a block diagram showing an example of the configuration of a CI server 70. The CI server 70 is a computer including a processor 11, a memory 12, a storage device 13, and a network device 14.

メモリ12には、リソース推定演算部80と、リソース決定演算部90と、CIジョブ実行部71がロードされて、プロセッサ11によって実行される。 The resource estimation calculation unit 80, the resource determination calculation unit 90, and the CI job execution unit 71 are loaded into the memory 12 and executed by the processor 11.

プロセッサ11は、各機能部のプログラムに従って処理を実行することによって、所定の機能を提供する機能部として稼働する。例えば、プロセッサ11は、リソース推定演算プログラムに従って処理を実行することでリソース推定演算部80として機能する。他のプログラムについても同様である。さらに、プロセッサ11は、各プログラムが実行する複数の処理のそれぞれの機能を提供する機能部としても稼働する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。 The processor 11 operates as a functional unit that provides a specific function by executing processing according to the program of each functional unit. For example, the processor 11 functions as a resource estimation calculation unit 80 by executing processing according to a resource estimation calculation program. The same applies to other programs. Furthermore, the processor 11 also operates as a functional unit that provides each function of the multiple processes executed by each program. A computer and a computer system are devices and systems that include these functional units.

ネットワーク装置14には、ネットワーク15が接続される。ネットワーク15には、図1に示したバージョン管理サーバー40と、ジョブ実行マシン群200と、ユーザー端末2が接続されて相互に通信を行うことができる。 The network device 14 is connected to a network 15. The version management server 40, the job execution machine group 200, and the user terminal 2 shown in FIG. 1 are connected to the network 15, and can communicate with each other.

図4は、リソース推定演算部80で行われる処理の一例を示すフローチャートである。この処理は、CIサーバー70がバージョン管理サーバー40からファイル更新情報50と、パイプライン入力ファイル51を受信した場合に実行される。 Figure 4 is a flowchart showing an example of processing performed by the resource estimation calculation unit 80. This processing is executed when the CI server 70 receives file update information 50 and a pipeline input file 51 from the version management server 40.

まず、CIジョブ実行部71は、CIジョブ73を実行させる計算機リソースを推定するため、リソース推定要求81をリソース推定演算部80に送信する。 First, the CI job execution unit 71 sends a resource estimation request 81 to the resource estimation calculation unit 80 to estimate the computer resources for executing the CI job 73.

リソース推定演算部80は、リソース推定要求81を受信(301)すると、対象ファイル(例えば、モデルファイル)に対して論理複雑度の評価を実施する。リソース推定演算部80は、対象ファイルがモデルファイルの場合、論理複雑度の評価はモデルの入出力ポートサイズ(kB)を測定する(302)。 When the resource estimation calculation unit 80 receives a resource estimation request 81 (301), it performs a logical complexity evaluation on the target file (e.g., a model file). If the target file is a model file, the resource estimation calculation unit 80 measures the input/output port size (kB) of the model to evaluate the logical complexity (302).

本実施例のCIサーバー70では、リソース推定演算部80がモデルファイルの入力ポートの数と出力ポートの数に各ポートのサイズを乗じた値の総和を入出力ポートサイズとして算出する。これにより、入出力ポートの数が大きいほど、CIジョブ73の処理負荷が増大するので、入出力ポートサイズはモデルファイルの処理負荷の指標として算出される。 In the CI server 70 of this embodiment, the resource estimation calculation unit 80 calculates the input/output port size as the sum of the values obtained by multiplying the number of input ports and the number of output ports of the model file by the size of each port. As a result, the larger the number of input/output ports, the greater the processing load of the CI job 73, so the input/output port size is calculated as an index of the processing load of the model file.

なお、リソース推定演算部80は、CIサーバー70が受け付けたファイル更新情報50に基づいて、モデルファイル群44から最新のモデルファイルの情報を取得して入出力ポートサイズを測定する。また、上記では入出力ポートサイズをモデルファイルの処理負荷の指標とする例を示したが、これに限定されるものではなく、入力ポートの数と出力ポートの数の総和をモデルファイルの処理負荷の指標とすることができる。 The resource estimation calculation unit 80 measures the input/output port size by acquiring the latest model file information from the model file group 44 based on the file update information 50 received by the CI server 70. In addition, while the above example shows that the input/output port size is used as an indicator of the processing load of the model file, this is not limited to this, and the sum of the number of input ports and the number of output ports can be used as an indicator of the processing load of the model file.

測定した入出力ポートのサイズは、評価の簡単化のため、広く周知されている既存の方法を用いて正規化を行って論理複雑度として扱う(303)。正規化された論理複雑度は、正規化論理複雑度82としてリソース決定演算部90へ送信(304)される。 To simplify the evaluation, the measured input/output port size is normalized using a widely known existing method and treated as logical complexity (303). The normalized logical complexity is sent to the resource determination calculation unit 90 as normalized logical complexity 82 (304).

図5は、リソース決定演算部90で行われる処理の一例を示すフローチャートである。 Figure 5 is a flowchart showing an example of the processing performed by the resource determination calculation unit 90.

リソース決定演算部90は正規化論理複雑度82を受信すると(401)、ジョブ実行マシン群200で使用する計算機リソースの決定処理を実施する。リソース決定演算部90は、正規化論理複雑度82と正規化論理複雑度-ジョブ実行マシン対応表47を比較し(402)、CIジョブ73を実行する実行マシン211を一意に決定する(403)。 When the resource determination calculation unit 90 receives the normalized logical complexity 82 (401), it performs a process of determining the computer resources to be used in the job execution machine group 200. The resource determination calculation unit 90 compares the normalized logical complexity 82 with the normalized logical complexity - job execution machine correspondence table 47 (402) and uniquely determines the execution machine 211 that will execute the CI job 73 (403).

リソース決定演算部90は、決定したCIジョブ73の実行マシン211の結果をリソース決定結果91としてCIジョブ実行部71へ送信する(404)。 The resource determination calculation unit 90 transmits the result of the determined execution machine 211 of the CI job 73 to the CI job execution unit 71 as a resource determination result 91 (404).

上記処理によって、CIジョブ実行部71は、受信したリソース決定結果91に基づいてCIジョブ73を割り当てる実行マシン211にジョブ実行要求110と、入力ファイル111と、CIジョブ情報112を送信してCIジョブ73を実行させる。 By the above processing, the CI job execution unit 71 sends a job execution request 110, an input file 111, and CI job information 112 to the execution machine 211 to which the CI job 73 is assigned based on the received resource determination result 91, and executes the CI job 73.

CIジョブ実行部71は、CIジョブ73を割り当てた実行マシン211からジョブ実行結果100を受信すると、パイプライン72を構成するCIジョブ73のジョブ実行結果100をまとめてパイプライン実行結果60としてバージョン管理サーバー40へ送信する。 When the CI job execution unit 71 receives the job execution results 100 from the execution machine 211 to which the CI job 73 is assigned, it compiles the job execution results 100 of the CI jobs 73 that make up the pipeline 72 and sends them to the version management server 40 as the pipeline execution results 60.

図6は、正規化論理複雑度-ジョブ実行マシン対応表47の一例を示す図である。正規化論理複雑度-ジョブ実行マシン対応表47は、実行マシンの性能470と、CIジョブ73-1~73-N毎の正規化論理複雑度471-1~471-Nを一つのエントリに含む。 Figure 6 shows an example of the normalized logical complexity - job execution machine correspondence table 47. The normalized logical complexity - job execution machine correspondence table 47 contains the performance 470 of the execution machine and the normalized logical complexity 471-1 to 471-N for each CI job 73-1 to 73-N in one entry.

実行マシンの性能470には、ジョブ実行マシン群200の実行マシン211毎の性能の指標が格納される。正規化論理複雑度471-1~471-Nには、各CIジョブ73毎に予め設定された正規化論理複雑度の範囲が格納される。 The performance index of each execution machine 211 in the job execution machine group 200 is stored in the execution machine performance 470. The normalized logical complexity 471-1 to 471-N stores the range of normalized logical complexity preset for each CI job 73.

また、実行マシン211の性能情報は、実行マシン211毎にそれぞれの構成に応じて予め設定される。実行マシン211毎の性能の指標としては、プロセッサの周波数やコア数に基づく指標や、搭載するメモリ容量などを指標とすることができる。 In addition, the performance information of the execution machine 211 is set in advance for each execution machine 211 according to its respective configuration. Performance indicators for each execution machine 211 can be indicators based on the processor frequency or number of cores, or the installed memory capacity, etc.

リソース決定演算部90は、リソース推定演算部75が算出したCIジョブ73の正規化論理複雑度82と、正規化論理複雑度471の範囲に応じて、CIジョブ73を実行するのに最適な実行マシン211を決定する。例えば、CIジョブ1(73-1)の実行マシンを割り当てる場合、正規化論理複雑度82の値が0.1以上0.4未満であれば実行マシンMにCIジョブ1(73-1)を割り当て、正規化論理複雑度82の値が0.4以上0.8未満であれば実行マシン2にCIジョブ1(73-1)を割り当て、正規化論理複雑度82の値が0.8以上1以下であれば実行マシン1にCIジョブ1(73-1)を割り当てる。 The resource determination calculation unit 90 determines the optimal execution machine 211 for executing the CI job 73 according to the normalized logical complexity 82 of the CI job 73 calculated by the resource estimation calculation unit 75 and the range of the normalized logical complexity 471. For example, when assigning an execution machine for CI job 1 (73-1), if the value of the normalized logical complexity 82 is 0.1 or more and less than 0.4, CI job 1 (73-1) is assigned to execution machine M, if the value of the normalized logical complexity 82 is 0.4 or more and less than 0.8, CI job 1 (73-1) is assigned to execution machine 2, and if the value of the normalized logical complexity 82 is 0.8 or more and less than 1, CI job 1 (73-1) is assigned to execution machine 1.

CIジョブ73毎のマシン割り当ての変更は、対応する正規化論理複雑度471のレンジの閾値を適宜変更することにより実現できる。特に正規化論理複雑度が0の場合は該対応表の中に最適なマシンは存在しない。 Changing the machine allocation for each CI job 73 can be achieved by appropriately changing the threshold of the range of the corresponding normalized logical complexity 471. In particular, when the normalized logical complexity is 0, there is no optimal machine in the correspondence table.

正規化論理複雑度が0とは、CIジョブ73の処理対象のファイルに論理が含まれていない場合であり、CIジョブ73として必要な処理がないと判断することが可能である。この場合、リソース決定演算部90は、CIジョブ実行部71には最適な実行マシン211はないという情報が送信される。 A normalized logical complexity of 0 means that the file to be processed by the CI job 73 does not contain any logic, and it is possible to determine that no processing is required for the CI job 73. In this case, the resource determination calculation unit 90 receives information that the CI job execution unit 71 does not have an optimal execution machine 211.

正規化論理複雑度は、CIジョブ73の種類毎に正規化論理複雑度-ジョブ実行マシン対応表47の値を設定すればよく、CIジョブ73がコンパイルの場合では、ソースファイルの行数を論理複雑度として算出し、CIジョブ73がテストの場合では、テストベクターを論理複雑度として算出すればよい。 The normalized logical complexity can be calculated by setting a value in the normalized logical complexity - job execution machine correspondence table 47 for each type of CI job 73. If the CI job 73 is a compile job, the number of lines in the source file can be calculated as the logical complexity. If the CI job 73 is a test job, the test vector can be calculated as the logical complexity.

また、論理複雑度は、CIジョブ73を処理する際の実行マシン211の負荷を表す指標であればよく、上記に限定されるものではない。 In addition, logical complexity may be any indicator that represents the load on the execution machine 211 when processing the CI job 73, and is not limited to the above.

以上のように、本実施例のCIサーバー70は、過去の履歴情報に頼ることなく、各CIジョブ73(各工程)の実行前にモデルファイルやソースファイルを静的に解析することで事前に処理の負荷を正規化論理複雑度として推定し、推定結果に基づいて各CIジョブ73(工程)を割り当てるリソース(実行マシン211)を最適に配分することができる。 As described above, the CI server 70 of this embodiment can estimate the processing load in advance as normalized logical complexity by statically analyzing model files and source files before executing each CI job 73 (each process) without relying on past history information, and can optimally allocate resources (execution machine 211) to which each CI job 73 (process) is assigned based on the estimation results.

<結び>
以上のように、上記実施例の継続的インテグレーションシステムは、以下のような構成とすることができる。
<Conclusion>
As described above, the continuous integration system of the above embodiment can be configured as follows.

(1)ファイル(入力ファイル群20)の構成管理を行うバージョン管理サーバー(40)と、前記バージョン管理サーバー(40)からの要求に応じてCIジョブ(73)の実行をジョブ実行マシン群(200)の実行マシン(211)に依頼するCIサーバー(70)と、前記CIサーバー(70)からの要求に応じて前記CIジョブ(73)を実行するジョブ実行マシン群(200)からなる継続的インテグレーションシステムであって、前記CIサーバー(70)は、前記バージョン管理サーバー(40)から入力ファイルを受け付けて、実行要求のあったパイプライン(72)を構成するCIジョブ(73)毎に、実行に必要なリソースの推定要求(81)を発行し、受信した推定結果に基づいて前記ジョブ実行マシン群(200)の実行マシン(211)にCIジョブ(73)の実行を依頼するCIジョブ実行部(71)と、前記CIジョブ実行部(71)からの推定要求(81)に応じて、前記CIジョブ(73)に割り当てるリソースを推定するリソース推定演算部(80)と、前記リソース推定演算部(80)からの推定結果(正規化論理複雑度822)に応じて、前記CIジョブ(73)に割り当てるリソースを決定するリソース決定演算部(90)を有し、前記リソース推定演算部(80)は、前記CIジョブ実行部(71)からのリソースの推定要求(91)に応じて、前記CIジョブ(73)の前記入力ファイルから論理複雑度(82)を算出し、前記リソース決定演算部(90)は、前記リソース推定演算部(80)から受け取った前記論理複雑度(82)に基づいて、予め設定された論理複雑度とジョブ実行マシン対応情報(47)から前記CIジョブ(73)を実行する実行マシン(211)を決定することを特徴とする継続的インテグレーションシステム。 (1) A continuous integration system comprising a version management server (40) that performs configuration management of a file (input file group 20), a CI server (70) that requests an execution machine (211) of a job execution machine group (200) to execute a CI job (73) in response to a request from the version management server (40), and a job execution machine group (200) that executes the CI job (73) in response to a request from the CI server (70), wherein the CI server (70) receives input files from the version management server (40), issues an estimation request (81) for resources required for execution for each CI job (73) that constitutes a pipeline (72) for which an execution request has been made, and requests an execution machine (211) of the job execution machine group (200) to execute the CI job (73) based on the received estimation result, and a CI job execution unit (71) that executes the CI job (73) based on the received estimation result. A continuous integration system comprising a resource estimation calculation unit (80) that estimates resources to be allocated to the CI job (73) in response to an estimation request (81) from a job execution unit (71), and a resource determination calculation unit (90) that determines resources to be allocated to the CI job (73) in response to an estimation result (normalized logical complexity 822) from the resource estimation calculation unit (80), wherein the resource estimation calculation unit (80) calculates logical complexity (82) from the input file of the CI job (73) in response to the resource estimation request (91) from the CI job execution unit (71), and the resource determination calculation unit (90) determines an execution machine (211) that executes the CI job (73) from a preset logical complexity and job execution machine correspondence information (47) based on the logical complexity (82) received from the resource estimation calculation unit (80).

上記構成により、過去の履歴情報に頼ることなく、日々単位で更新されるモデルファイルやソースファイル等の入力ファイルの更新情報に応じてCIジョブ73を実行するリソースを最適に配分し、各工程(CIジョブ)の処理の実行の際に割り当てるリソースを最適化することが可能となる。 The above configuration makes it possible to optimally allocate resources for executing CI job 73 in accordance with update information for input files such as model files and source files, which are updated daily, without relying on past history information, and to optimize the resources allocated when executing the processing of each process (CI job).

(2)上記(1)に記載の継続的インテグレーションシステムであって、前記リソース推定演算部(80)は、前記入力ファイルを処理する際の負荷の指標として前記論理複雑度を算出することを特徴とする継続的インテグレーションシステム。 (2) The continuous integration system described in (1) above, wherein the resource estimation calculation unit (80) calculates the logical complexity as an index of the load when processing the input file.

上記構成により、入力ファイルの種類に応じて論理複雑度を算出することで、パイプライン72を構成する各CIジョブ73間で処理負荷に応じたリソースの割り当てを最適化することができる。 With the above configuration, by calculating the logical complexity according to the type of input file, it is possible to optimize the allocation of resources according to the processing load between each CI job 73 that constitutes the pipeline 72.

(3)上記(2)に記載の継続的インテグレーションシステムであって、前記リソース推定演算部(80)は、前記入力ファイルがモデルファイルの場合、入力ポートの数と出力ポートの数に基づいて前記論理複雑度(82)を算出することを特徴とする継続的インテグレーションシステム。 (3) The continuous integration system described in (2) above, wherein the resource estimation calculation unit (80) calculates the logical complexity (82) based on the number of input ports and the number of output ports when the input file is a model file.

上記構成により、入力ファイルがモデルファイルの場合は、入力ポートの数と出力ポートの数の総和の大きさに応じて処理負荷が増大すると予測することができ、論理複雑度の大きさに応じて実行マシン211を決定することができる。 With the above configuration, when the input file is a model file, it is possible to predict that the processing load will increase according to the sum of the number of input ports and the number of output ports, and the execution machine 211 can be determined according to the degree of logical complexity.

なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に記載したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加、削除、又は置換のいずれもが、単独で、又は組み合わせても適用可能である。 The present invention is not limited to the above-described embodiments, but includes various modified examples. For example, the above-described embodiments are described in detail to clearly explain the present invention, and are not necessarily limited to those having all of the configurations described. It is also possible to replace part of the configuration of one embodiment with the configuration of another embodiment, and it is also possible to add the configuration of another embodiment to the configuration of one embodiment. In addition, the addition, deletion, or replacement of part of the configuration of each embodiment with other configurations can be applied alone or in combination.

また、上記の各構成、機能、処理部、及び処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、及び機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、又は、ICカード、SDカード、DVD等の記録媒体に置くことができる。 The above configurations, functions, processing units, and processing means may be realized in part or in whole in hardware, for example by designing them as integrated circuits. The above configurations and functions may be realized in software by a processor interpreting and executing a program that realizes each function. Information on the programs, tables, files, etc. that realize each function may be stored in a memory, a recording device such as a hard disk or SSD (Solid State Drive), or a recording medium such as an IC card, SD card, or DVD.

また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。 In addition, the control lines and information lines shown are those considered necessary for the explanation, and not all control lines and information lines on the product are necessarily shown. In reality, it can be assumed that almost all components are interconnected.

1 ユーザー
2 ユーザー端末
20 入力ファイル群
40 バージョン管理サーバー
41 リポジトリ
42 ブランチ
43 ソースファイル群
44 モデルファイル群
45 CIスクリプト
46 CIジョブ用スクリプト群
47 正規化論理複雑度-ジョブ実行マシン対応表
48 パイプライン構成ファイル群
50 ファイル更新情報
51 パイプライン入力ファイル
60 パイプライン実行結果
70 CIサーバー
71 CIジョブ実行部
72 パイプライン
73-1~73-N CIジョブ1~N
80 リソース推定演算部
81 リソース推定要求
82 正規化論理複雑度
90 リソース決定結果
100 ジョブ実行結果
110 ジョブ実行要求
111 入力ファイル
112 CIジョブ情報
200 ジョブ実行マシン群
211-1~211-M 実行マシン1~M
501 コード生成ジョブ
1 User 2 User terminal 20 Input file group 40 Version management server 41 Repository 42 Branch 43 Source file group 44 Model file group 45 CI script 46 CI job script group 47 Normalized logical complexity - job execution machine correspondence table 48 Pipeline configuration file group 50 File update information 51 Pipeline input file 60 Pipeline execution result 70 CI server 71 CI job execution unit 72 Pipeline 73-1 to 73-N CI jobs 1 to N
80 Resource estimation calculation unit 81 Resource estimation request 82 Normalized logical complexity 90 Resource determination result 100 Job execution result 110 Job execution request 111 Input file 112 CI job information 200 Job execution machine group 211-1 to 211-M Execution machines 1 to M
501 Code generation job

Claims (4)

ファイルの構成管理を行うバージョン管理サーバーと、
前記バージョン管理サーバーからの要求に応じてCIジョブの実行をジョブ実行マシン群の実行マシンに依頼するCIサーバーと、
前記CIサーバーからの要求に応じて前記CIジョブを実行するジョブ実行マシン群からなる継続的インテグレーションシステムであって、
前記CIサーバーは、
前記バージョン管理サーバーから入力ファイルを受け付けて、実行要求のあったパイプラインを構成するCIジョブ毎に、実行に必要なリソースの推定要求を発行し、受信した推定結果に基づいて前記ジョブ実行マシン群の実行マシンにCIジョブの実行を依頼するCIジョブ実行部と、
前記CIジョブ実行部からの推定要求に応じて、前記CIジョブに割り当てるリソースを推定するリソース推定演算部と、
前記リソース推定演算部からの推定結果に応じて、前記CIジョブに割り当てるリソースを決定するリソース決定演算部を有し、
前記リソース推定演算部は、
前記CIジョブ実行部からのリソースの推定要求に応じて、前記入力ファイルを処理する際の負荷の指標として、前記CIジョブの前記入力ファイルから論理複雑度を算出し、
前記リソース決定演算部は、
前記リソース推定演算部から受け取った前記論理複雑度に基づいて、予め設定された論理複雑度とジョブ実行マシン対応情報から前記CIジョブを実行する実行マシンを決定することを特徴とする継続的インテグレーションシステム。
A version control server that manages file configurations,
a CI server that requests an execution machine of a job execution machine group to execute a CI job in response to a request from the version management server;
A continuous integration system including a job execution machine group that executes the CI job in response to a request from the CI server,
The CI server includes:
a CI job execution unit that receives an input file from the version management server, issues a request to estimate resources required for execution for each CI job constituting a pipeline for which an execution request has been made, and requests an execution machine of the job execution machine group to execute the CI job based on the received estimation result;
a resource estimation calculation unit that estimates resources to be allocated to the CI job in response to an estimation request from the CI job executing unit;
a resource determination calculation unit that determines resources to be allocated to the CI job in accordance with an estimation result from the resource estimation calculation unit;
The resource estimation calculation unit,
Calculating a logical complexity from the input file of the CI job as an index of a load when processing the input file in response to a resource estimation request from the CI job execution unit;
The resource determination calculation unit is
A continuous integration system characterized by determining an execution machine to execute the CI job based on the logical complexity received from the resource estimation calculation unit, from a preset logical complexity and job execution machine correspondence information.
請求項1に記載の継続的インテグレーションシステムであって、2. The continuous integration system of claim 1,
前記リソース推定演算部は、The resource estimation calculation unit,
前記入力ファイルがモデルファイルの場合、入力ポートの数と出力ポートの数に基づいて前記論理複雑度を算出することを特徴とする継続的インテグレーションシステム。A continuous integration system, characterized in that, when the input file is a model file, the logical complexity is calculated based on the number of input ports and the number of output ports.
ファイルの構成管理を行うバージョン管理サーバーからの要求に応じてCIジョブの実行をジョブ実行マシン群の実行マシンに依頼するCIサーバーが前記CIジョブを実行するジョブ実行マシン群を制御する継続的インテグレーション方法であって、A continuous integration method in which a CI server controls a group of job execution machines that execute CI jobs by requesting the execution of the CI jobs from an execution machine of the group of job execution machines in response to a request from a version management server that performs configuration management of files, the method comprising:
前記CIサーバーが、前記バージョン管理サーバーから入力ファイルを受け付けて、実行要求のあったパイプラインを構成するCIジョブ毎に、実行に必要なリソースの推定要求を発行し、受信した推定結果に基づいて前記ジョブ実行マシン群の実行マシンにCIジョブの実行を依頼するCIジョブ実行ステップと、a CI job execution step in which the CI server receives an input file from the version management server, issues a request to estimate resources required for execution for each CI job constituting a pipeline for which execution has been requested, and requests an execution machine of the job execution machine group to execute the CI job based on the received estimation result;
前記CIサーバーが、前記推定要求に応じて、前記CIジョブに割り当てるリソースを推定するリソース推定演算ステップと、a resource estimation calculation step in which the CI server estimates resources to be allocated to the CI job in response to the estimation request;
前記CIサーバーが、前記推定結果に応じて、前記CIジョブに割り当てるリソースを決定するリソース決定演算ステップと、を含み、a resource determination calculation step in which the CI server determines resources to be allocated to the CI job in accordance with the estimation result;
前記リソース推定演算ステップは、The resource estimation calculation step includes:
前記リソースの推定要求に応じて、前記入力ファイルを処理する際の負荷の指標として、前記CIジョブの前記入力ファイルから論理複雑度を算出し、Calculating a logical complexity from the input file of the CI job as an indicator of a load when processing the input file in response to the resource estimation request;
前記リソース決定演算ステップは、The resource determination calculation step includes:
前記論理複雑度に基づいて、予め設定された論理複雑度とジョブ実行マシン対応情報かBased on the logical complexity, a predetermined logical complexity and job execution machine correspondence information are
ら前記CIジョブを実行する実行マシンを決定することを特徴とする継続的インテグレーション方法。The continuous integration method according to claim 1, further comprising: determining an execution machine for executing the CI job from the execution machine;
請求項3に記載の継続的インテグレーション方法であって、4. A continuous integration method according to claim 3, comprising:
前記リソース推定演算ステップは、The resource estimation calculation step includes:
前記入力ファイルがモデルファイルの場合、入力ポートの数と出力ポートの数に基づいて前記論理複雑度を算出することを特徴とする継続的インテグレーション方法。A continuous integration method, comprising the steps of: when the input file is a model file, calculating the logical complexity based on the number of input ports and the number of output ports.
JP2020105577A 2020-06-18 2020-06-18 Continuous integration system and continuous integration method Active JP7478037B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2020105577A JP7478037B2 (en) 2020-06-18 2020-06-18 Continuous integration system and continuous integration method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020105577A JP7478037B2 (en) 2020-06-18 2020-06-18 Continuous integration system and continuous integration method

Publications (2)

Publication Number Publication Date
JP2021197098A JP2021197098A (en) 2021-12-27
JP7478037B2 true JP7478037B2 (en) 2024-05-02

Family

ID=79195848

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020105577A Active JP7478037B2 (en) 2020-06-18 2020-06-18 Continuous integration system and continuous integration method

Country Status (1)

Country Link
JP (1) JP7478037B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7839075B2 (en) * 2022-10-26 2026-04-01 Astemo株式会社 Continuous integration system and continuous integration method

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170091078A1 (en) 2015-09-29 2017-03-30 International Business Machines Corporation Assessing risk of software commits to prioritize verification resources
WO2018116460A1 (en) 2016-12-22 2018-06-28 株式会社日立製作所 Continuous integration system and resource control method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170091078A1 (en) 2015-09-29 2017-03-30 International Business Machines Corporation Assessing risk of software commits to prioritize verification resources
WO2018116460A1 (en) 2016-12-22 2018-06-28 株式会社日立製作所 Continuous integration system and resource control method

Also Published As

Publication number Publication date
JP2021197098A (en) 2021-12-27

Similar Documents

Publication Publication Date Title
CA3090095C (en) Methods and systems to determine and optimize reservoir simulator performance in a cloud computing environment
US11257565B2 (en) Management of test resources to perform testing of memory components under different temperature conditions
CN108205469B (en) A resource allocation method and server based on MapReduce
US11514219B1 (en) System and method for assertion-based formal verification using cached metadata
US11334349B2 (en) Removing feature flag-related codebase from applications
CN110083535A (en) A kind of method for testing software and device
CN108647137B (en) An operation performance prediction method, device, medium, equipment and system
CN119271545A (en) Code evaluation and conversion method, system and medium applied to heterogeneous multi-core chips
US20200194092A1 (en) Multi-dimensional usage space testing of memory components
JP7478037B2 (en) Continuous integration system and continuous integration method
US20110191094A1 (en) System and method to evaluate and size relative system performance
CN110737509B (en) Thermal migration processing method and device, storage medium and electronic equipment
Schirmer et al. Elastibench: Scalable continuous benchmarking on cloud faas platforms
JP2014021847A (en) Resource management device, resource management method and program
CN119943127B (en) Storage device testing method and device, computer device and storage medium
JP7839075B2 (en) Continuous integration system and continuous integration method
CN114996102A (en) System availability assessment method, device, equipment and storage medium
JP7385536B2 (en) Software development support device and software development support method
CN119065784B (en) Virtual machine creation method, device, equipment, storage medium and product
JP5906844B2 (en) Computer parameter tuning program, method, and apparatus
WO2023112386A1 (en) Simulation method
WO2025196763A1 (en) Computer code execution operations quantification method and system
JP2022183757A (en) Continuous integration system and continuous integration method
JP2006178663A (en) Information processing apparatus, information processing method, verification apparatus, and verification method
CN119806975A (en) Cloud platform performance test result analysis method, device, electronic equipment and medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20231130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231212

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240326

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240419

R150 Certificate of patent or registration of utility model

Ref document number: 7478037

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150