commit e0b72630bc3b219a0e14e562d66690e978ca3f47 Author: Muryor Date: Wed Sep 1 22:51:08 2021 +0800 test diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..4c4def4 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,54 @@ +kind: pipeline +name: golang-docker-ci + +steps: + - name: 执行代码检查 + image: golang:latest + commands: + - go get -u github.com/golangci/golangci-lint/cmd/golangci-lint + - golangci-lint run + + - name: 编译二进制文件 + image: golang:latest + environment: + GOOS: linux + GOARCH: amd64 + CGO_ENABLED: 0 + # 编译生成二进制文件,我这儿叫 go-app,酌情修改 + commands: + - go build -o go-app + + - name: 打包Docker镜像并推送 + image: plugins/docker + settings: + registry: 需要推送的Docker私服服务器地址 + repo: 需要打包的镜像名称 + use_cache: true + username: 私服登录用户名 + password: 私服登录密码 + auto_tag: true # 自动打tag + # 也可以用下面这个手动指定 + # tags: + # - latest + # - 0.0.1 + when: + event: push + branch: master + +kind: pipeline +type: docker +name: default + +steps: +- name: notify + image: kaynewang/drone-wechat-robot + settings: + msgtype: markdown + key: your own robot key + content: > + {{#success build.status}} + 第 {{build.number}} 次构建已完成,状态:构建成功 + {{else}} + 第 {{build.number}} 次构建已完成,状态:构建失败 + {{/success}} + 提交记录:{{commit.author}} - {{commit.message}} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a2598d7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,14 @@ +FROM alpine +MAINTAINER LiXunHuan(lxh@cxh.cn) +# 创建工作目录,修改alpine源为中科大的源,安装必要工具 +RUN mkdir -p /app && sed -i 's/dl-cdn.alpinelinux.org/mirrors.ustc.edu.cn/g' /etc/apk/repositories && \ + apk update && \ + apk upgrade && \ + apk add ca-certificates && update-ca-certificates && \ + apk add --update tzdata && \ + rm -rf /var/cache/apk/* +WORKDIR /app +COPY go-app ./ +ENV TZ=Asia/Shanghai +EXPOSE 8080 +ENTRYPOINT ./go-app diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..02a689d --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module test_drone + +go 1.16 diff --git a/main.go b/main.go new file mode 100644 index 0000000..e871e59 --- /dev/null +++ b/main.go @@ -0,0 +1,23 @@ +package main + +import ( + "net/http" + + "github.com/gin-gonic/gin" + "github.com/sirupsen/logrus" +) + +func main() { + r := gin.Default() + + r.GET("/health", func(c *gin.Context) { + c.JSON(http.StatusOK, gin.H { + "health": true, + }) + }) + + if err := r.Run(":8080"); err != nil { + logrus.WithError(err).Fatal("Couldn't listen") + } + +}