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:
To trigger multi-version publish