Skip to content

Building the project

Build docker images

Following standalone images should be built with Maven projects:

MAVEN_TARGET=tuna-fusion-operator \
docker buildx build --push \
      --platform linux/amd64,linux/arm64 \
      -t robinqu/$module:$(date +%s) \
      -t robinqu/$module:latest \
      --build-arg MAVEN_TARGET=$MAVEN_TARGET .

See build-all-images.sh for more details.

build-all-images.sh
#!/usr/bin/env bash
set -ex

image_tag=$(date +%s)
namespace=ghcr.io/tuna-headquater

echo "Build $namespace/fusion-a2a-fastapi-runtime"
docker buildx build --push --platform linux/amd64,linux/arm64 \
  -t $namespace/fusion-a2a-fastapi-runtime:"$image_tag" \
  -t $namespace/fusion-a2a-fastapi-runtime:latest \
  --label "org.opencontainers.image.source=https://github.com/tuna-headquater/tuna-fusion" \
 ./fusion-a2a-env/fastapi_runtime

echo "Build $namespace/fusion-a2a-env-builder"
docker buildx build --push --platform linux/amd64,linux/arm64 \
  -t $namespace/fusion-a2a-env-builder:"$image_tag" \
  -t $namespace/fusion-a2a-env-builder:latest  \
  --label "org.opencontainers.image.source=https://github.com/tuna-headquater/tuna-fusion" \
  ./fusion-a2a-env/builder

modules=("tuna-fusion-operator" "tuna-fusion-gitops-server" "tuna-fusion-executor")

for module in "${modules[@]}"; do
    echo "Build $namespace/$module"
    docker buildx build --push \
      --platform linux/amd64,linux/arm64 \
      -t $namespace/"$module":"$image_tag" \
      -t $namespace/"$module":latest \
      --label "org.opencontainers.image.source=https://github.com/tuna-headquater/tuna-fusion" \
      --build-arg MAVEN_TARGET="$module" \
      .
done

Build Helm chart

Official charts are hosted on ghcr.io/tuna-headquater. To trigger push, please run build-charts.sh.

build-charts.sh
#!/usr/bin/env bash
set -ex

helm package ./tuna-fusion-charts
helm push ./tuna-fusion-*.tgz oci://ghcr.io/tuna-headquater

Build docs

This project employs mkdocs to build documentation. And material theme is used for better experience, alongside other Markdown plugins: * plantuml_markdown * mermaid2 * mike

To prepare build tools:

pip install mkdocs mkdocs-material mkdocs-mermaid2-plugin plantuml-markdown mike

To trigger multi-version publish