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
相关推荐
三84412 分钟前
RCE长度&字符限制绕过
开发语言·php
小陈的进阶之路32 分钟前
爬虫三大解析库:lxml, jsonpath, bs4
开发语言·笔记·python
wuyk55534 分钟前
第1章:无刷电机核心原理与运行机制
c语言·开发语言·stm32·单片机·嵌入式硬件·机器学习
瑞码空间37 分钟前
Routing & API:前后端协作的本质与实现
前端·后端·接口·路由
SomeB1oody38 分钟前
【RustyML入门】2.10. 主成分分析
开发语言·后端·机器学习·rust·教程
我真是泰库辣41 分钟前
用TraeWork制作应用 —— 从 0 到 1 · 手把手搭建 opencode 网页对话网关
前端·后端
2603_965148111 小时前
抖音/快手直播选品:用API快速匹配爆款与低价货源
开发语言·python·自动化·api
RobinDevNotes1 小时前
轻量级动画引擎Anime.js迎来V4大版本更新
开发语言·前端·javascript·ecmascript·动画·c4前端
lv__pf1 小时前
servlet与jsp
java·开发语言·servlet
亚雷1 小时前
图解分布式架构:一个 Console,一群 Sidecar
后端·面试·程序员