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
相关推荐
大阳光男孩2 小时前
Spring Boot 整合 Debezium 实现 MySQL 增量数据监听(嵌入式版)
spring boot·后端·mysql
皮皮林5512 小时前
ThreadLocal 不香了?ScopedValue才是王道?
后端
辞旧 lekkk2 小时前
【Redis初阶】常见数据类型
开发语言·数据库·c++·redis·学习·缓存·bootstrap
帅次3 小时前
Kotlin 与 Java 互操作:混合工程里的平台类型与 API 边界
java·开发语言·kotlin·suspend·nullable
X-⃢_⃢-X3 小时前
一、第一阶段:认识 Spring Boot
java·spring boot·后端
前端工作日常3 小时前
我学习到的Java程序的生命周期
java·后端
dtq04245 小时前
C语言-结构体详解
c语言·开发语言·学习
梅雅达编程笔记5 小时前
编程启蒙|Scratch 转 Python 系列第9天:字典/哈希表积木双向对照(AI大模型参数配置表实战)
开发语言·人工智能·python·numpy·pandas
持力行5 小时前
C++与Java变量声明、定义及内存分配的核心区别
java·开发语言·c++
AskHarries5 小时前
GitHub 登录配置流程
后端