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
相关推荐
卷无止境14 分钟前
Python能做嵌入式开发吗?一份写给动手派的生态与硬件全景图
后端·python
OPEN-F5 小时前
C++进阶教程:继承与多态
开发语言·c++
Sherotree6 小时前
Google Antigravity——Agent 被提到主界面
前端·ide·后端·edge浏览器
2601_962056237 小时前
Spring Boot 入门 与 无法解析符号 springframework 的解决
java·spring boot·后端
luj_17687 小时前
大律师考核应重能力与科技素养
c语言·开发语言·c++·经验分享·算法
你驴我7 小时前
WhatsApp 多账号场景下的会话归档与历史消息检索优化实践
后端·python
学长毕业设计8 小时前
基于SpringBoot的瑜伽馆网站的设计与实现(源码+文档+讲解视频)
java·spring boot·后端
leonkay8 小时前
C# 特性(Attribute)——【1】基础讲解
开发语言·青少年编程·面试·c#·.net·个人开发
harmful_sheep8 小时前
java group by常见用法
java·开发语言·python
SKH.8 小时前
Linux软件编程(6)线程间通信
java·开发语言·数据库