go语言项目部署的makefile

go语言项目如何打包,makefile的脚本:

复制代码
ifeq ($(shell uname), Darwin)
    SED := gsed
else
    SED := sed
endif

.PHONY: build
build:
     make api && \
     env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build && \
     scp 项目名称 root@服务器ip:/data/项目路径

.PHONY: api
pb_path=../carku-public/proto
api:
    mkdir -p ./pb && \
    rm -rf ./pb/* && \
    protoc  --proto_path=$(GOPATH)/src/googleapis --proto_path=$(pb_path)  \
      --go-http_out=. --go-grpc_out=. --go_out=. \
      $(pb_path)/base.proto \
      $(pb_path)/order.data.proto \
        $(pb_path)/common.proto \
      $(pb_path)/common.data.proto \
      $(pb_path)/das.data.proto \
      $(pb_path)/dms.data.proto \
        $(pb_path)/dms.proto \
      $(pb_path)/lfs.data.proto \
      $(pb_path)/mqttgateway.data.proto \
      $(pb_path)/worker.enum.proto \
      $(pb_path)/worker.data.proto \
      $(pb_path)/worker.proto \
      $(pb_path)/pay.data.proto \
      $(pb_path)/pay.proto \
      $(pb_path)/agent.api.data.proto \
      $(pb_path)/agent.api.proto && \
    protoc  --proto_path=$(GOPATH)/src/googleapis --proto_path=$(pb_path)  \
      --openapi_out=fq_schema_naming=true,default_response=false:./pb \
      $(pb_path)/base.proto \
      $(pb_path)/order.data.proto \
      $(pb_path)/common.data.proto \
      $(pb_path)/das.data.proto \
      $(pb_path)/dms.data.proto \
      $(pb_path)/lfs.data.proto \
      $(pb_path)/mqttgateway.data.proto \
      $(pb_path)/worker.enum.proto \
      $(pb_path)/worker.data.proto \
      $(pb_path)/pay.data.proto \
      $(pb_path)/agent.api.data.proto \
      $(pb_path)/agent.api.proto && \
    protoc-go-inject-tag -input=./pb/*.pb.go && \
    $(SED) -i '/^.*summary.*$$/d' ./pb/openapi.yaml && \
    $(SED) -E -i '/description:/ { N; /operationId:/ s/(^[[:space:]]*)description: (.*)\n\1([ ]*operationId:)/\1description: \2\n\1summary: \2\n\1\3/; }' ./pb/openapi.yaml

.PHONY: api-win
pb_path=../carku-public/proto
pb_path2=/c/msys64/ucrt64/include/googleapis
api-win:
    mkdir -p ./pb && \
    rm -rf ./pb/* && \
    protoc  --proto_path=$(pb_path) --proto_path=$(pb_path2) \
      --go-http_out=. --go-grpc_out=. --go_out=. \
      $(pb_path)/base.proto \
      $(pb_path)/order.data.proto \
        $(pb_path)/common.proto \
      $(pb_path)/common.data.proto \
      $(pb_path)/das.data.proto \
      $(pb_path)/dms.data.proto \
        $(pb_path)/dms.proto \
      $(pb_path)/lfs.data.proto \
      $(pb_path)/mqttgateway.data.proto \
      $(pb_path)/worker.enum.proto \
      $(pb_path)/worker.data.proto \
      $(pb_path)/worker.proto \
      $(pb_path)/pay.data.proto \
      $(pb_path)/pay.proto \
      $(pb_path)/agent.api.data.proto \
      $(pb_path)/agent.api.proto && \
    protoc  --proto_path=$(pb_path) --proto_path=$(pb_path2) \
      --openapi_out=fq_schema_naming=true,default_response=false:./pb \
      $(pb_path)/base.proto \
      $(pb_path)/order.data.proto \
      $(pb_path)/common.data.proto \
      $(pb_path)/das.data.proto \
      $(pb_path)/dms.data.proto \
      $(pb_path)/lfs.data.proto \
      $(pb_path)/mqttgateway.data.proto \
      $(pb_path)/worker.enum.proto \
      $(pb_path)/worker.data.proto \
      $(pb_path)/pay.data.proto \
      $(pb_path)/agent.api.data.proto \
      $(pb_path)/agent.api.proto && \
    protoc-go-inject-tag -input=./pb/*.pb.go && \
    $(SED) -i '/^.*summary.*$$/d' ./pb/openapi.yaml && \
    $(SED) -E -i '/description:/ { N; /operationId:/ s/(^[[:space:]]*)description: (.*)\n\1([ ]*operationId:)/\1description: \2\n\1summary: \2\n\1\3/; }' ./pb/openapi.yaml
相关推荐
上进小菜猪9 小时前
把 KES 集群交给 Kubernetes 的九十天:一个 DBA 的试用实录
后端
两点王爷10 小时前
PostgreSQL 常用 SQL 语句与 GIS 相关函数详解
数据库·后端
考虑考虑10 小时前
Springboot环境变量占位符语法
spring boot·后端·spring
C++ 老炮儿的技术栈11 小时前
我们在设计tcp协议时,要传一个字符串过去,报文:头十长度十内容,是否要把‘\0‘也填入,长度是否包含‘\0‘
开发语言·数据结构·c++·mfc·c
传奇开心果编程11 小时前
【Rust入门练中学】第2课:变量、可变性与常量
开发语言·学习·rust
zr想努力11 小时前
从0开始配置Perforce4环境
开发语言
步行cgn12 小时前
Spring 基于 XML 的自动装配:byName 详解
java·后端·spring
幸运小圣13 小时前
PointerEvent 常用属性与事件整理【JavaScript】
开发语言·javascript·ecmascript
长谷深风11113 小时前
评测AI Agent:三种裁判各司其职
java·大数据·开发语言·人工智能·ai agent
边境悍匪13 小时前
蜗牛学苑 Java 智能体学习 Day42|项目周开发技术汇总 1 思维导图复盘
java·开发语言·spring boot·学习·spring