Quality assurance

Quality assurance

Version control

Git flow is used for version control. The main branch is main and the development branch is develop. Feature branches are created from develop and merged back into develop when the feature is complete. When a release is ready, develop is merged into main and a tag is created.

Version number is compliant to Semantic Versioning and dynamically generated by gitops-version.

gitGraph
  commit
  branch develop
  branch "feat/feature1"
  commit
  commit
  checkout develop
  merge "feat/feature1" tag: "v0.1.0"
  checkout develop
  branch "feat/feature2"
  commit
  checkout develop
  branch "feat/feature3"
  commit
  checkout "feat/feature2"
  commit
  checkout develop
  merge "feat/feature2" tag: "v0.2.0"
  checkout "feat/feature3"
  commit
  checkout develop
  merge "feat/feature3" tag: "v0.2.1"
  checkout main
  merge develop

Functional tests

Functional tests are run on every pull request and on every commit to develop and main branches. Azure DevOps is contacted to validate each pipeline run.

sequenceDiagram
  participant cicd as GitHub Actions
  participant func as Functional tests
  participant azure as Azure IacC
  participant agent as Agent
  participant azdo as Azure DevOps

  loop Every flavor
    cicd ->> func: Run functional tests
    func ->> azure: Deploy to Azure
    azure ->> azure: Process Bicep file
    func ->> azure: Validate deployment

    loop Every pipeline file
      func ->> azure: Manual job start
      azure ->> agent: Initialize
      activate agent
      agent ->> azdo: Registers to the pool
      func ->> azdo: Create & run a mock pipeline
      agent ->> agent: Execute the pipeline
      agent ->> azdo: Send result
      deactivate agent
      func ->> azdo: Validate pipeline
    end

    func ->> cicd: Success
  end
Last updated on