Uploaded image for project: 'Camunda Optimize'
  1. Camunda Optimize
  2. OPT-5987

Optimize CI extended to support maintenance branches

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Unresolved
    • Icon: L3 - Default L3 - Default
    • None
    • None
    • None

      Description of the problem:
      The Optimize teams needs to prepare it's processes and tooling to properly be able to build patch releases for previous minor releases.
      In order to confidently develop patches however it's required to also have all Jenkins test pipelines setup for the specific minor releases. As on master these jobs are often adopted to the latest release (e.g. by adding or removing integration steps for supported elasticsearch, campbpm or zeebe versions), these can't be reliable used for developing patches on previous minor releases.

      Desired outcome and acceptance tests:

      • For every maintenance version, a branch with a maintenance/ prefix is created and will be picked up by CI.
      • For each maintenance branch, a set of seed jobs in the .ci/maintenance-jobs directory is generated
      • For each maintenance branch, a matching maintenance branch is created in the optimize shared library and used by that branch's Jenkinsfile

      Hints (optional):

      • A POC was made in Q3 and a technical solution explained in INFRA-2720
      • Special care needs to be taken when jobs are duplicated (or symlinked) to run on both master and maintenance/ branches - cf. optimize#3900
      • Jenkinsfile is adjusted to run as well in the maintenance/ branch context (cf. the TODOs in optimize#3900

      Jobs required to be supported

      Jobs to run for maintenance branches classified by priority:

      P1:

      .ci/jobs/elasticsearch_combatibility.dsl
      .ci/jobs/engine_compatibility.dsl
      .ci/jobs/java_combatibility.dsl
      .ci/jobs/e2e_tests.dsl
      .ci/jobs/import_dynamic_data_performance.dsl
      .ci/jobs/import_mediator_permutation_test.dsl
      .ci/jobs/secured_es.dsl
      .ci/jobs/cluster_test.dsl
      .ci/jobs/dependency_check.dsl
      .ci/jobs/release_optimize.dsl

      P2: (for most of them we have the challenge to organize cambpm database dumps separately)

      .ci/jobs/query_performance.dsl
      .ci/jobs/event_import_performance.dsl
      .ci/jobs/cleanup_data_performance_large.dsl
      .ci/jobs/event_import_performance.dsl
      .ci/jobs/import_large_static_data_performance.dsl
      .ci/jobs/upgrade_data_performance_large.dsl
      .ci/jobs/event_cleanup_performance.dsl

      P3:

      .ci/jobs/test_release.dsl
      .ci/jobs/elasticsearch_aws_compatibility.dsl
      .ci/jobs/sonarqube_analysis.dsl
      .ci/jobs/generate_cambpm_test_data.dsl (for the rare case that we need to generate a data-set for an older cambpm version)

      Not needed:
      .ci/jobs/deploy_k8s_branches.dsl
      .ci/jobs/release_example_repo.dsl

        This is the controller panel for Smart Panels app

              Unassigned Unassigned
              leonhardt.wille Leonhardt Wille
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Created:
                Updated: