Список будет пополняться ig.

Collaboration

Lifecycle management

Application Lifecycle Management (ALM)

Communication

Knowledge sharing

Build

SCM/VCS

CI

  • GitLab CI/CD
    Tier #1
  • Jenkins
    Tier #1
  • TeamCity (Jetbrains)
    • Freemium
    • Cross-platform
    • Suitable for Windows/.NET projects
    • You can implement Kotlin DSL
  • Travis CI
    • Freemium
    • Not OSS
    • Cloud
    • simple configuration
  • Circle CI
    • Cloud/On-Premise
    • Freemium
    • Not fully OSS
    • flexible and scalable but hard to learn

Build

Build automation tools or Build systems
Автоматизировать сборку C/C++ проектов, в принципе, сложно из-за сбора и разрешения зависимостей. Но, вроде, Conan справляется.

  • Gradle
    • Modern
    • Flexible & Fast
    • Groovy/Kotlin DSL for describing tasks
    • Standard for Android
  • Apache Maven
  • Apache Ant
    • Flexible & Scriptable
    • Manual mgmt of dependencies and project structure
    • XML for describing tasks…
    • NOT that suitable for C/C++ projects
  • Conan (JFrog)
    • Suitable for C/C++ projects

Test

Сценарии тестирования

  • Запуск тестов в коде (в рамках одного из build step-ов)
  • Отправка артефактов сборки на специальные автостенды с тестами
  • Интеграция инструментов в сборочный контур

Testing tools Integration

  • PVS-Studio
    Static code analyzer for C/C#/C++/Java
    • Cross-platform
  • Valgrind
    Debugging and profiling tool
  • BlackDuck
    Software Composition Analysis (SCA)

Deploy

Варианты деплоя

Первый вариант:

  1. Terraform
  2. Ansible

Второй вариант (используется для проектов с модульной архитектурой из-за гибкости и возможности переиспользования компонентов):

  1. Артефакт
    который появляется после сборки
  2. Хранилище артефактов
  3. Второй этап сборки
    где тянутся артефакты из хранилища и собирается конечный продукт
  4. Релиз
  5. Интеграция у заказчика

Первый вариант:

  1. Terraform
  2. Ansible

Deployment

Config management/provision

Artifact management

Artifact repository managers

Run

  • Cloud
  • Hosting
  • Local hosting
  • Monitoring
  • Orchestration