Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Miguel Herranz (miguel@midokura.com)
  • ... (collaborate and put your name here too (smile))

Document conventions

Aside typical conventions, these one will be used:

  • Personal comments: use superscript and include author name in bold. Example: some text Miguel Herranz: "I think this text is awesome!"
  • ...

Goals

The goals of continuous integration are the following:

...

To some extension, the following table should give a hint about what to include in each situation:

CaseMaximum durationCommit message format & code styleBuild of nuttx and/or appsMinimal testingFull testing
Rebase from master in local developer environment~1-5 minutesalwaysalwaysoptionalnot recommended
Prepare local code for pull request~1 houralwaysalwaysrecommendedoptional
Continuous integration triggered by a pull request update~2-3 hoursalwaysalwaysalwaysoptional
Nightly build~12 hoursalwaysalwaysalwaysalways


Pipeline

The pipeline term is used here in a loose way. It means whatever arrange of tools and scripts to execute the CI. Specifically it does not restrict to the Jenkins CI pipelines.

...

Here is a draft of what could be the pipeline script:


pipeline {

    agent any

        stages {

            stage('Admit') {

                steps {

                    sh './testing/ci/check-commit-message.sh'

                    sh './nuttx/tools/nxstyle ...'

                }

            }


            stage('Build') {


                steps {


                    sh './nuttx/tools/testbuild.sh check'


                }


            }

            stage('Test') {

                steps {

                    sh './apps/testing/foo ...'

                    sh './apps/testing/bar ...'

                    sh './testing/ci/test-report.sh ...'

                }           

            }

        }

    }

}



TODO

This is a TODO list with questions and issues to discuss:

...