From a42fecfc638d08c1e0353920fe6079afd00152ae Mon Sep 17 00:00:00 2001 From: Vaala Cat Date: Wed, 6 Dec 2023 21:47:12 +0800 Subject: [PATCH] feat: drone ci --- .drone.yml | 116 +++++++++++++++++++++++++++++++++++++++++++++++++++++ Dockerfile | 19 +++++---- 2 files changed, 125 insertions(+), 10 deletions(-) create mode 100644 .drone.yml diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..7df80bd --- /dev/null +++ b/.drone.yml @@ -0,0 +1,116 @@ +kind: pipeline +name: build-and-publish + +steps: + - name: download modules + image: git.vaala.cloud/vaalacat/golang:1.20.0-alpine3.17 + commands: + - sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories + - apk update --no-cache && apk add --no-cache tzdata git + - GOPRIVATE=git.vaala.cloud CGO_ENABLED=0 GOPROXY=https://goproxy.cn,https://proxy.golang.org,direct go mod download + - mkdir -p etc + - cp /etc/ssl/certs/ca-certificates.crt ./etc/ca-certificates.crt + - cp /usr/share/zoneinfo/Asia/Shanghai ./etc/Shanghai + volumes: + - name: gocache + path: /go/pkg/mod + - name: build + path: /tmp/app + when: + event: + - pull_request + - promote + - rollback + - name: build - amd64 + image: git.vaala.cloud/vaalacat/golang:1.20.0-alpine3.17 + commands: + - GOOS=linux GOARCH=amd64 GOPRIVATE=git.vaala.cloud CGO_ENABLED=0 GOPROXY=https://goproxy.cn,https://proxy.golang.org,direct go build -ldflags="-s -w" -o mcbot-amd64 main.go + volumes: + - name: gocache + path: /go/pkg/mod + - name: build + path: /tmp/app + depends_on: + - download modules + when: + event: + - pull_request + - promote + - rollback + - name: build - arm64 + image: git.vaala.cloud/vaalacat/golang:1.20.0-alpine3.17 + commands: + - GOOS=linux GOARCH=arm64 GOPRIVATE=git.vaala.cloud CGO_ENABLED=0 GOPROXY=https://goproxy.cn,https://proxy.golang.org,direct go build -ldflags="-s -w" -o mcbot-arm64 main.go + volumes: + - name: gocache + path: /go/pkg/mod + - name: build + path: /tmp/app + depends_on: + - download modules + when: + event: + - pull_request + - promote + - rollback + + - name: publish - amd64 + image: git.vaala.cloud/vaalacat/drone-docker-buildx:24 + privileged: true + settings: + mirror: https://dockerproxy.com + debug: true + platforms: + - linux/amd64 + build_args: + - ARCH=amd64 + repo: git.vaala.cloud/vaalacat/mcbot + tags: + - amd64 + registry: + from_secret: docker_registry + username: + from_secret: docker_username + password: + from_secret: docker_password + depends_on: + - build - amd64 + when: + event: + - promote + - rollback + target: + - production + - name: publish - arm64 + image: git.vaala.cloud/vaalacat/drone-docker-buildx:24 + privileged: true + settings: + mirror: https://dockerproxy.com + debug: true + platforms: + - linux/arm64 + build_args: + - ARCH=arm64 + repo: git.vaala.cloud/vaalacat/mcbot + tags: + - arm64 + registry: + from_secret: docker_registry + username: + from_secret: docker_username + password: + from_secret: docker_password + depends_on: + - build - arm64 + when: + event: + - promote + - rollback + target: + - production +volumes: + - name: build + temp: {} + - name: gocache + host: + path: /tmp/drone/mcbot/gocache \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 4a8e14e..50626e5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,11 @@ -FROM git.vaala.cloud/vaalacat/golang:1.20 AS builder - -# WORKDIR $GOPATH/src/mcbot -# COPY . . -# RUN mkdir /app && \ -# CGO_ENABLED=0 GOPROXY=https://goproxy.cn,direct go build -o mcbot main.go && \ -# cp mcbot /app/ - FROM git.vaala.cloud/vaalacat/alpine -# COPY --from=builder /app/mcbot /app/mcbot -COPY mcbot /app/mcbot + +ARG ARCH + +RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apk/repositories && \ + apk update --no-cache && apk --no-cache add curl + +WORKDIR /app + +COPY mcbot-${ARCH} /app/mcbot ENTRYPOINT [ "/app/mcbot" ] \ No newline at end of file