Knotx / knotx

Knot.x is a highly-efficient and scalable integration framework designed to build backend APIs
https://knotx.io
Apache License 2.0
126 stars 26 forks source link

CI solution for Knot.x #504

Closed tomaszmichalak closed 4 years ago

tomaszmichalak commented 5 years ago

Is your feature request related to a problem? Please describe. Knot.x distribution (Knot.x Stack) consists of modules such as:

Knot.x Stack artifact is a ZIP file. This file is used to build Knot.x Docker image. This image is used via Knot.x Starter Kit to prepare custom, project specific Docker image - it contains its own configuration and system tests.

All changes to any repository should validate all elements: Stack, Docker, Starter Kit.

Describe the solution you'd like We want to explore Azure Pipelines to implement the CI solution for Knot.x. The initial design is a part of this task.

Design

  1. We consider to use Knot.x Aggregator to clone all repositories and build Knot.x Stack using Gradle Composite Builds.
- script: |
    echo "Knot.x Stack"
    git clone https://github.com/Knotx/knotx-aggregator.git
    cd knotx-aggregator/development
    ./pull-all.sh -r modules -b $(Build.SourceBranchName)
    ./build-all.sh -r modules -d

Knot.x Stack artifact is stored in a local maven repository.

  1. Build Knot.x Docker image
- script: |
    echo "Knot.x Docker"
    git clone https://github.com/Knotx/knotx-docker.git
    cd knotx-docker
    mvn clean package
  1. Build & validate Knot.x Starter Kit
- script: |
    echo "Knot.x Starter Kit"
    git clone https://github.com/Knotx/knotx-starter-kit.git
    cd knotx-starter-kit
    gradle build

Elements to cover:

Links

malaskowski commented 4 years ago

Done in https://github.com/Knotx/knotx-aggregator/pull/18