Skip to content

DataMate Package

DataMate Package #40

Workflow file for this run

name: DataMate Package
on:
workflow_dispatch:
inputs:
milvus:
type: boolean
description: 是否打包milvus
required: false
default: true
label-studio:
type: boolean
description: 是否打包label-studio
required: false
default: true
deer-flow:
type: boolean
description: 是否打包deer-flow
required: false
default: false
version:
type: string
description: 版本号
required: false
default: 1.0.0
jobs:
package-all:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Clone DataMate
uses: GuillaumeFalourd/clone-github-repo-action@v2.3
with:
owner: ModelEngine-Group
repository: 'DataMate'
access-token: ${{ secrets.ACCESS_TOKEN }}
- name: DataMate Package
run: |
sudo rm -rf /usr/local/lib/android
sudo rm -rf /usr/share/dotnet
mkdir helm
cp -r DataMate/deployment/helm/datamate helm/datamate
sed -i "s#^\(\s*repository:\s*\).*#\1\"\"#" helm/datamate/values.yaml
sed -i "s/type: NodePort/type: ClusterIP/g" helm/datamate/values.yaml
sed -i "s/latest/${{ inputs.version }}/g" helm/datamate/values.yaml
- name: DeerFlow Package
if: inputs.deer-flow == true
run: |
cd DataMate
cp runtime/deer-flow/.env deployment/helm/deer-flow/charts/public/.env
cp runtime/deer-flow/conf.yaml deployment/helm/deer-flow/charts/public/conf.yaml
cp -r deployment/helm/deer-flow ../helm/deer-flow
sed -i "s/latest/${{ inputs.version }}/g" ../helm/deer-flow/values.yaml
- name: Milvus Package
if: inputs.milvus == true
run: |
cp -r DataMate/deployment/helm/milvus helm/milvus
sed -i "s#^\(\s*workload:\s*\).*#\1deployment#" helm/milvus/values.yaml
sed -i "s/latest/${{ inputs.version }}/g" helm/milvus/values.yaml
- name: Label Studio Package
if: inputs.label-studio == true
run: |
cp -r DataMate/deployment/helm/label-studio helm/label-studio
sed -i "s#heartexlabs/label-studio#datamate-label-studio#g" helm/label-studio/values.yaml
sed -i "s/type: NodePort/type: ClusterIP/g" helm/label-studio/values.yaml
sed -i "s/latest/${{ inputs.version }}/g" helm/label-studio/values.yaml
- name: Download DataMate Image
run: |
mkdir -p images/datamate
LOWERCASE_REPO=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')
services=("runtime" "backend" "frontend" "database" "backend-python" "gateway")
for service in "${services[@]}"; do
docker pull ghcr.io/$LOWERCASE_REPO/datamate-$service:latest --platform arm64
docker tag ghcr.io/$LOWERCASE_REPO/datamate-$service:latest datamate-$service:${{ inputs.version }}
docker save -o images/datamate/datamate-$service.tar datamate-$service:${{ inputs.version }}
docker rmi ghcr.io/$LOWERCASE_REPO/datamate-$service:latest datamate-$service:${{ inputs.version }}
done
docker pull quay.io/kuberay/operator:v1.4.2 --platform arm64
docker save -o images/datamate/kuberay-operator.tar quay.io/kuberay/operator:v1.4.2
docker rmi quay.io/kuberay/operator:v1.4.2
- name: Download DeerFlow Image
if: inputs.deer-flow == true
run: |
mkdir -p images/deer-flow
LOWERCASE_REPO=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')
services=("backend" "frontend")
for service in "${services[@]}"; do
docker pull ghcr.io/$LOWERCASE_REPO/deer-flow-$service:latest --platform arm64
docker tag ghcr.io/$LOWERCASE_REPO/deer-flow-$service:latest deer-flow-$service:${{ inputs.version }}
docker save -o images/deer-flow/deer-flow-$service.tar deer-flow-$service:${{ inputs.version }}
docker rmi ghcr.io/$LOWERCASE_REPO/deer-flow-$service:latest deer-flow-$service:${{ inputs.version }}
done
- name: Download Milvus Image
if: inputs.milvus == true
run: |
mkdir -p images/milvus
docker pull milvusdb/milvus:v2.6.5 --platform arm64
docker save -o images/milvus/milvus.tar milvusdb/milvus:v2.6.5
docker rmi milvusdb/milvus:v2.6.5
docker pull minio/minio:RELEASE.2024-12-18T13-15-44Z --platform arm64
docker save -o images/milvus/minio.tar minio/minio:RELEASE.2024-12-18T13-15-44Z
docker rmi minio/minio:RELEASE.2024-12-18T13-15-44Z
docker pull milvusdb/etcd:3.5.18-r1 --platform arm64
docker save -o images/milvus/etcd.tar milvusdb/etcd:3.5.18-r1
docker rmi milvusdb/etcd:3.5.18-r1
- name: Download Label Studio Image
if: inputs.label-studio == true
run: |
mkdir -p images/label-studio
LOWERCASE_REPO=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')
docker pull ghcr.io/$LOWERCASE_REPO/datamate-label-studio:latest --platform arm64
docker tag ghcr.io/$LOWERCASE_REPO/datamate-label-studio:latest datamate-label-studio:${{ inputs.version }}
docker save -o images/label-studio/datamate-label-studio.tar datamate-label-studio:${{ inputs.version }}
docker rmi ghcr.io/$LOWERCASE_REPO/datamate-label-studio:latest datamate-label-studio:${{ inputs.version }}
docker pull pgautoupgrade/pgautoupgrade:13-alpine --platform arm64
docker save -o images/label-studio/pgautoupgrade.tar pgautoupgrade/pgautoupgrade:13-alpine
docker rmi pgautoupgrade/pgautoupgrade:13-alpine
- name: Upload Package
uses: actions/upload-artifact@v4
with:
name: DataMate_${{ inputs.version }}_Aarch64
include-hidden-files: true
path: |
helm/
images/
tools/