ソースを参照

chore(CI): build taos plugins (#538)

Rory Z 4 年 前
コミット
7cbbb321b4
3 ファイル変更26 行追加28 行削除
  1. 9 2
      .ci/Dockerfile-plugins
  2. 1 1
      .github/workflows/build_packages.yaml
  3. 16 25
      Makefile

+ 9 - 2
.ci/Dockerfile-plugins

@@ -14,14 +14,21 @@ RUN set -e -u -x \
     && mkdir -p _plugins/$PLUGIN_TYPE/$PLUGIN_NAME \
     && for lib in $(cat etc/$PLUGIN_TYPE/$PLUGIN_NAME.json | jq -r ".libs[]"); do go get $lib; done \
     && case $PLUGIN_NAME in \
-         influxdb | taos ) \
+         influxdb ) \
            go build --buildmode=plugin -tags plugins -o _plugins/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME@$VERSION.so plugins/$PLUGIN_TYPE/$PLUGIN_NAME.go \
            ;; \
+         taos ) \
+           if [ "$(uname -m)" = "x86_64" ]; then \
+             wget "https://www.taosdata.com/download/download-all.php?pkgType=tdengine_linux&pkgName=TDengine-client-2.0.3.1-Linux-x64.tar.gz" -O /tmp/TDengine-client-2.0.3.1-Linux-x64.tar.gz \
+             && tar -zxvf /tmp/TDengine-client-2.0.3.1-Linux-x64.tar.gz \
+             && cd TDengine-client && ./install_client.sh && cd - \
+             && go build --buildmode=plugin -tags plugins -o _plugins/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME@$VERSION.so plugins/$PLUGIN_TYPE/$PLUGIN_NAME.go; \
+           fi \
+           ;; \
          * ) \
            go build --buildmode=plugin -o _plugins/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME@$VERSION.so plugins/$PLUGIN_TYPE/$PLUGIN_NAME.go \
            ;; \
        esac \
-    && go build --buildmode=plugin -o _plugins/$PLUGIN_TYPE/$PLUGIN_NAME/$PLUGIN_NAME@$VERSION.so plugins/$PLUGIN_TYPE/$PLUGIN_NAME.go \
     && if [ -f "etc/$PLUGIN_TYPE/$PLUGIN_NAME.yaml" ]; then cp etc/$PLUGIN_TYPE/$PLUGIN_NAME.yaml _plugins/$PLUGIN_TYPE/$PLUGIN_NAME; fi \
     && cd _plugins/$PLUGIN_TYPE/$PLUGIN_NAME \
     && zip -r ${PLUGIN_NAME}_$(go version | grep -o "linux/.*" | sed -r 's linux/(.*) \1 g').zip .

+ 1 - 1
.github/workflows/build_packages.yaml

@@ -68,7 +68,7 @@ jobs:
                 plugin:
                 - sinks/file
                 - sinks/influx
-              # - sinks/taos
+                - sinks/taos
                 - sinks/zmq
                 - sources/random
                 - sources/zmq

+ 16 - 25
Makefile

@@ -169,10 +169,8 @@ cross_docker: cross_prepare
 	-f deploy/docker/Dockerfile-alpine . \
 	--push
 
-
 PLUGINS := sinks/file \
 	sinks/influx \
-	sinks/taos \
 	sinks/zmq \
 	sources/random \
 	sources/zmq \
@@ -180,8 +178,22 @@ PLUGINS := sinks/file \
 	functions/countPlusOne \
 	functions/echo
 
-.PHONE: plugins
-plugins: cross_prepare $(PLUGINS)
+.PHONY: plugins sinks/taos $(PLUGINS)
+plugins: cross_prepare sinks/taos $(PLUGINS)
+sinks/taos:
+	@docker buildx build --no-cache \
+    --platform=linux/amd64 \
+    -t cross_build \
+    --build-arg VERSION=$(VERSION) \
+    --build-arg PLUGIN_TYPE=sinks \
+    --build-arg PLUGIN_NAME=taos \
+    --output type=tar,dest=/tmp/cross_build_plugins_sinks_taos.tar \
+    -f .ci/Dockerfile-plugins .
+
+	@mkdir -p _plugins/debian/sinks
+	@tar -xvf /tmp/cross_build_plugins_sinks_taos.tar --wildcards "go/kuiper/_plugins/sinks/taos/taos_amd64.zip" \
+	&& mv go/kuiper/_plugins/sinks/taos/taos_amd64.zip _plugins/debian/sinks
+	@rm -f /tmp/cross_build_plugins_sinks_taos.tar
 $(PLUGINS): PLUGIN_TYPE = $(word 1, $(subst /, , $@))
 $(PLUGINS): PLUGIN_NAME = $(word 2, $(subst /, , $@))
 $(PLUGINS):
@@ -201,27 +213,6 @@ $(PLUGINS):
 	done
 	@rm -f /tmp/cross_build_plugins_$(PLUGIN_TYPE)_$(PLUGIN_NAME).tar
 
-.PHONE: apline_plugins
-alpine_plugins: cross_prepare $(PLUGINS:%=alpine/%)
-$(PLUGINS:%=alpine/%): PLUGIN_TYPE = $(word 2, $(subst /, , $@))
-$(PLUGINS:%=alpine/%): PLUGIN_NAME = $(word 3, $(subst /, , $@))
-$(PLUGINS:%=alpine/%):
-	@docker buildx build --no-cache \
-    --platform=linux/amd64,linux/arm64,linux/arm/v7,linux/386,linux/ppc64le \
-    -t cross_build \
-    --build-arg VERSION=$(VERSION) \
-    --build-arg PLUGIN_TYPE=$(PLUGIN_TYPE)\
-    --build-arg PLUGIN_NAME=$(PLUGIN_NAME)\
-    --output type=tar,dest=/tmp/cross_build_plugins_$(PLUGIN_TYPE)_$(PLUGIN_NAME)_on_alpine.tar \
-    -f .ci/Dockerfile-plugins .
-
-	@mkdir -p _plugins/alpine/$(PLUGIN_TYPE)
-	@for arch in amd64 arm64 arm_v7 386 ppc64le; do \
-		tar -xvf /tmp/cross_build_plugins_$(PLUGIN_TYPE)_$(PLUGIN_NAME)_on_alpine.tar --wildcards "linux_$${arch}/go/kuiper/_plugins/$(PLUGIN_TYPE)/$(PLUGIN_NAME)/$(PLUGIN_NAME)_$$(echo $${arch%%_*}).zip" \
-		&& mv $$(ls linux_$${arch}/go/kuiper/_plugins/$(PLUGIN_TYPE)/$(PLUGIN_NAME)/$(PLUGIN_NAME)_$$(echo $${arch%%_*}).zip) _plugins/alpine/$(PLUGIN_TYPE); \
-	done
-	@rm -f /tmp/cross_build_plugins_$(PLUGIN_TYPE)_$(PLUGIN_NAME)_on_alpine.tar
-
 .PHONY: clean
 clean:
 	@rm -rf cross_build.tar linux_amd64 linux_arm64 linux_arm_v7 linux_ppc64le linux_386