Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
whqwjb
go-ethereum
提交
90ffcfde
G
go-ethereum
项目概览
whqwjb
/
go-ethereum
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
G
go-ethereum
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
90ffcfde
编写于
6月 17, 2021
作者:
P
Péter Szilágyi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
travis, build: own docker builder and hub pusher
上级
a675c89c
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
83 addition
and
0 deletion
+83
-0
.travis.yml
.travis.yml
+31
-0
build/ci.go
build/ci.go
+52
-0
未找到文件。
.travis.yml
浏览文件 @
90ffcfde
...
...
@@ -24,6 +24,37 @@ jobs:
script
:
-
go run build/ci.go lint
# This builder does the Docker Hub build and upload for amd64
-
stage
:
build
if
:
type = push
os
:
linux
dist
:
bionic
go
:
1.16.x
env
:
-
docker
services
:
-
docker
git
:
submodules
:
false
# avoid cloning ethereum/tests
script
:
-
go run build/ci.go docker -upload karalabe/geth-docker-test
# This builder does the Docker Hub build and upload for arm64
-
stage
:
build
if
:
type = push
os
:
linux
arch
:
arm64
dist
:
bionic
go
:
1.16.x
env
:
-
docker
services
:
-
docker
git
:
submodules
:
false
# avoid cloning ethereum/tests
script
:
-
go run build/ci.go docker -upload karalabe/geth-docker-test
# This builder does the Ubuntu PPA upload
-
stage
:
build
if
:
type = push
...
...
build/ci.go
浏览文件 @
90ffcfde
...
...
@@ -182,6 +182,8 @@ func main() {
doLint
(
os
.
Args
[
2
:
])
case
"archive"
:
doArchive
(
os
.
Args
[
2
:
])
case
"docker"
:
doDockerImage
(
os
.
Args
[
2
:
])
case
"debsrc"
:
doDebianSource
(
os
.
Args
[
2
:
])
case
"nsis"
:
...
...
@@ -452,6 +454,56 @@ func maybeSkipArchive(env build.Environment) {
}
}
// Builds the docker images and optionally uploads them to Docker Hub.
func
doDockerImage
(
cmdline
[]
string
)
{
var
(
upload
=
flag
.
String
(
"upload"
,
""
,
`Where to upload the docker image (usually "ethereum/client-go")`
)
)
flag
.
CommandLine
.
Parse
(
cmdline
)
// Skip building and pushing docker images for PR builds
env
:=
build
.
Env
()
maybeSkipArchive
(
env
)
// Retrieve the version infos to build and push to the following paths:
// - ethereum/client-go:latest - Pushes to the master branch, Geth only
// - ethereum/client-go:stable - Version tag publish on GitHub, Geth only
// - ethereum/client-go:alltools-latest - Pushes to the master branch, Geth & tools
// - ethereum/client-go:alltools-stable - Version tag publish on GitHub, Geth & tools
// - ethereum/client-go:release-<major>.<minor> - Version tag publish on GitHub, Geth only
// - ethereum/client-go:alltools-release-<major>.<minor> - Version tag publish on GitHub, Geth & tools
// - ethereum/client-go:v<major>.<minor>.<patch> - Version tag publish on GitHub, Geth only
// - ethereum/client-go:alltools-v<major>.<minor>.<patch> - Version tag publish on GitHub, Geth & tools
var
tags
[]
string
switch
{
case
env
.
Branch
==
"master"
:
tags
=
[]
string
{
"latest"
}
case
strings
.
HasPrefix
(
env
.
Tag
,
"v1."
)
:
tags
=
[]
string
{
"stable"
,
fmt
.
Sprintf
(
"release-1.%d"
,
params
.
VersionMinor
),
params
.
Version
}
}
// Build the docker images via CLI (don't pull in the `moby` dep to call 3 commands)
build
.
MustRunCommand
(
"docker"
,
"build"
,
"--tag"
,
fmt
.
Sprintf
(
"%s:TAG"
,
*
upload
),
"."
)
build
.
MustRunCommand
(
"docker"
,
"build"
,
"--tag"
,
fmt
.
Sprintf
(
"%s:alltools-TAG"
,
*
upload
),
"-f"
,
"Dockerfile.alltools"
,
"."
)
// Retrieve the upload credentials and authenticate
user
:=
getenvBase64
(
"DOCKER_HUB_USERNAME"
)
pass
:=
getenvBase64
(
"DOCKER_HUB_PASSWORD"
)
if
len
(
user
)
>
0
&&
len
(
pass
)
>
0
{
auther
:=
exec
.
Command
(
"docker"
,
"login"
,
"-u"
,
string
(
user
),
"--password-stdin"
)
auther
.
Stdin
=
bytes
.
NewReader
(
pass
)
build
.
MustRun
(
auther
)
}
// Tag and upload the images to Docker Hub
for
_
,
tag
:=
range
tags
{
build
.
MustRunCommand
(
"docker"
,
"image"
,
"tag"
,
fmt
.
Sprintf
(
"%s:TAG"
,
*
upload
),
fmt
.
Sprintf
(
"%s:%s"
,
*
upload
,
tag
))
build
.
MustRunCommand
(
"docker"
,
"image"
,
"tag"
,
fmt
.
Sprintf
(
"%s:alltools-TAG"
,
*
upload
),
fmt
.
Sprintf
(
"%s:alltools-%s"
,
*
upload
,
tag
))
build
.
MustRunCommand
(
"docker"
,
"push"
,
fmt
.
Sprintf
(
"%s:%s"
,
*
upload
,
tag
))
build
.
MustRunCommand
(
"docker"
,
"push"
,
fmt
.
Sprintf
(
"%s:alltools-%s"
,
*
upload
,
tag
))
}
}
// Debian Packaging
func
doDebianSource
(
cmdline
[]
string
)
{
var
(
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录