File tree Expand file tree Collapse file tree 8 files changed +35
-810
lines changed
Expand file tree Collapse file tree 8 files changed +35
-810
lines changed Original file line number Diff line number Diff line change 5757
5858 - name : Build Manager
5959 run : |
60- go build -ldflags "-s -w -X main.Version=${{ steps.version.outputs.version }}" -o runner-manager .
60+ go build -ldflags "-s -w -X main.Version=${{ steps.version.outputs.version }}" -o runner-manager ./cmd/runner-manager
6161
6262 - name : Build Runner Agent (container mode)
6363 run : go build -o runner-agent ./cmd/runner-agent
Original file line number Diff line number Diff line change @@ -53,10 +53,10 @@ jobs:
5353 VERSION=${{ steps.version.outputs.version }}
5454 COMMIT=${{ github.sha }}
5555 LDFLAGS="-s -w -X main.Version=v${VERSION}"
56- GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "${LDFLAGS}" -o dist/runner-manager-linux-amd64 .
57- GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -ldflags "${LDFLAGS}" -o dist/runner-manager-linux-arm64 .
58- GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "${LDFLAGS}" -o dist/runner-manager-darwin-amd64 .
59- GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -ldflags "${LDFLAGS}" -o dist/runner-manager-darwin-arm64 .
56+ GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "${LDFLAGS}" -o dist/runner-manager-linux-amd64 ./cmd/runner-manager
57+ GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build -ldflags "${LDFLAGS}" -o dist/runner-manager-linux-arm64 ./cmd/runner-manager
58+ GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "${LDFLAGS}" -o dist/runner-manager-darwin-amd64 ./cmd/runner-manager
59+ GOOS=darwin GOARCH=arm64 CGO_ENABLED=0 go build -ldflags "${LDFLAGS}" -o dist/runner-manager-darwin-arm64 ./cmd/runner-manager
6060
6161 - name : Generate checksums
6262 run : |
Original file line number Diff line number Diff line change 11# Runner Fleet Manager:多阶段构建,编译 + Ubuntu 运行时(避免 Alpine 导致 GitHub Runner 运行异常)
2- FROM golang:1.26-bookworm AS builder
2+ # 使用 BUILDPLATFORM 让 builder 在宿主机(amd64)上运行,TARGETOS/TARGETARCH 交叉编译,避免 QEMU 下 go build 失败
3+ ARG BUILDPLATFORM=linux/amd64
4+ FROM --platform=$BUILDPLATFORM golang:1.26-bookworm AS builder
35WORKDIR /app
46COPY go.mod go.sum ./
57RUN go mod download
68COPY . .
79ARG VERSION=dev
8- RUN CGO_ENABLED=0 go build -ldflags "-X main.Version=${VERSION}" -o runner-manager .
10+ ARG TARGETOS=linux
11+ ARG TARGETARCH=amd64
12+ RUN CGO_ENABLED=0 GOOS=${TARGETOS} GOARCH=${TARGETARCH} go build -ldflags "-X main.Version=${VERSION}" -o runner-manager ./cmd/runner-manager
913
1014FROM ubuntu:24.04
1115LABEL org.opencontainers.image.title="Runner Fleet Manager" \
Original file line number Diff line number Diff line change @@ -5,13 +5,18 @@ VERSION ?= dev
55# 本地构建 Runner 镜像的默认 tag;使用 CI 推送的镜像时为同仓库名、tag 带 -runner,如 ghcr.io/<owner>/<repo>:main-runner
66RUNNER_IMAGE ?= ghcr.io/soulteary/runner-fleet-runner:main
77
8- .PHONY : build test run docker-build docker-build-runner docker-run docker-stop clean help
8+ .PHONY : build build-agent build-all test run docker-build docker-build-runner docker-run docker-stop clean help
99
1010help :
11- @echo " targets: build test run docker-build docker-build-runner docker-run docker-stop clean"
11+ @echo " targets: build build-agent build-all test run docker-build docker-build-runner docker-run docker-stop clean"
1212
1313build :
14- go build -ldflags " -X main.Version=$( VERSION) " -o $(BINARY ) .
14+ go build -ldflags " -X main.Version=$( VERSION) " -o $(BINARY ) ./cmd/runner-manager
15+
16+ build-agent :
17+ go build -o runner-agent ./cmd/runner-agent
18+
19+ build-all : build build-agent
1520
1621test :
1722 go test ./...
@@ -35,4 +40,4 @@ docker-stop:
3540 -docker stop runner-manager 2> /dev/null; docker rm runner-manager 2> /dev/null; true
3641
3742clean :
38- rm -f $(BINARY )
43+ rm -f $(BINARY ) runner-agent
Original file line number Diff line number Diff line change @@ -21,7 +21,7 @@ CI:push 到 `main`/`master` 时通过 [GitHub Actions](.github/workflows/build
2121cp config.yaml.example config.yaml
2222
2323# 2. 二选一:本地运行 或 Docker
24- go run . # 需 Go 1.26
24+ go run ./cmd/runner-manager # 需 Go 1.26
2525# 或 Docker(需挂载 config 与 runners,详见 docs/docker.md)
2626make docker-build && make docker-run
2727# 或使用已发布镜像:见 docs/docker.md 中的「运行容器」与 DinD 说明
Original file line number Diff line number Diff line change 88
99``` bash
1010# 生成可执行文件 runner-manager
11- go build -o runner-manager .
11+ go build -o runner-manager ./cmd/runner-manager
1212
1313# 注入版本号(便于 /version 与排障)
14- go build -ldflags " -X main.Version=1.0.0" -o runner-manager .
14+ go build -ldflags " -X main.Version=1.0.0" -o runner-manager ./cmd/runner-manager
15+
16+ # 仅构建 Runner Agent(容器模式用)
17+ go build -o runner-agent ./cmd/runner-agent
18+
19+ # 或使用 Make:make build / make build-agent / make build-all
1520```
1621
17- 模板已通过 ` embed ` 内嵌 ,可执行文件可单文件分发,无需附带 ` templates/ ` 目录。
22+ 模板已通过 ` embed ` 内嵌于 Manager 二进制( ` cmd/runner-manager/templates/ ` ) ,可执行文件可单文件分发,无需附带 ` templates/ ` 目录。
1823
1924## 本地开发
2025
2126``` bash
2227# 需先有 config.yaml(可 cp config.yaml.example config.yaml)
23- go run .
28+ go run ./cmd/runner-manager
2429
2530# 或:先 build 再运行
2631make run
@@ -53,12 +58,14 @@ make run
5358## Makefile 目标
5459
5560- ` make help ` :查看全部目标。
56- - ` make build ` :构建(带 Version ldflags)。
61+ - ` make build ` :构建 Manager(带 Version ldflags)。
62+ - ` make build-agent ` :构建 Runner Agent(容器模式用)。
63+ - ` make build-all ` :同时构建 Manager 与 Agent。
5764- ` make test ` :运行测试。
58- - ` make run ` :先 build 再运行当前目录二进制 。
65+ - ` make run ` :先 build 再运行 Manager 。
5966- ` make docker-build ` / ` make docker-run ` / ` make docker-stop ` :Manager 镜像构建与运行,见 [ Docker 部署] ( docker.md ) 。
6067- ` make docker-build-runner ` :构建容器模式用的 Runner 镜像(` Dockerfile.runner ` ,默认 tag 见 ` RUNNER_IMAGE ` )。
61- - ` make clean ` :删除生成的二进制。
68+ - ` make clean ` :删除生成的二进制(runner-manager、runner-agent) 。
6269
6370容器模式下 Runner 容器内运行的是 ` cmd/runner-agent ` 编译出的 Agent,仅构建 Manager 时不会包含该二进制;Runner 镜像单独用 ` Dockerfile.runner ` 构建。
6471
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments