openETCS / toolchain

WP7: Top Level Project for the toolchain
26 stars 30 forks source link

Create a CI build process for the openETCS modeling team #498

Closed jastram closed 8 years ago

jastram commented 8 years ago

Summary: For the modeling and V&V teams it is important that the modeling repository contains only artefacts that compile without errors (at a minimum). Due to the nature of the tools used (Scade Suite requiring expensive licenses), it is not possible to perform build automation within openETCS.

Therefore: A lightweight, manual process is needed to ensure error-freeness in the repository. The following process is inspired by gitFlow.

One requirement is to impose as little inconveniences to the team as possible. They are currently working on the master branch. We will keep it that way, even though gitFlow works differently. In fact, the main change can be seen as a change in naming convention: (gitFlow)develop becomes (openETCS) master, and (gitFlow) master becomes (openETCS) stable.

High-Level process description

  1. Modellers work on master
  2. Optionally, they may use features branches that are merged into master upon completion
  3. On regular intervals (or as needed), the build master will merge the changes from master into stable.
  4. Once stable is stabelized, the adjustments are merged back into master.
  5. The stable model is tagged

Detailed process

If the above is approved, we will add the details to the process by providing specific commands, paths, etc.

MERCEmentre commented 8 years ago

Hello Michael,

Process seems good to me. Would it be possible to have C sources included into the "stable" version (due to the same SCADE license cost reason)?

If the process is accepeted, would also be nice to document the entry point (SCADE root node?) of the model, for both SCADE and C version.

Best regards, david

MarcBehrens commented 8 years ago

Hello David,

the C sources are planned to be generated from the Error- Free Master Branch.

A repository for this already exists: https://github.com/openETCS/srcAndBinary

Best regards, Marc

MERCEmentre commented 8 years ago

Oh, very good, thanks. I did not know this repository.

jastram commented 8 years ago

Work started on this in the Wiki at https://github.com/openETCS/toolchain/wiki/Process-Documentation#continuous-integration-process

jastram commented 8 years ago

A first draft of the process is complete. Please review and comment.

MERCEmentre commented 8 years ago

In "Merge into stable" (in https://github.com/openETCS/toolchain/wiki/Process-Documentation#releasing-to-stable), shouldn't it be "git checkout stable"?

jastram commented 8 years ago

Hi David,

You're right, that was a copy&paste-error. I fixed it, thanks.

jastram commented 8 years ago

I believe this can be closed now.