update
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
745daedf91
commit
9d2f9d6c32
|
@ -50,7 +50,7 @@ func (p *plugin) Find(ctx context.Context, req *config.Request) (*drone.Config,
|
|||
// 4. 根据文件树以及原始配置文件的信息,组装需要构建的服务的ci信息
|
||||
// 4.1 api
|
||||
modifiedApiList := getModifiedApi(cfg.Api, modifiedFileList)
|
||||
destinationApi, err := modifiedApiList.toDestinationConfig()
|
||||
destinationApi, err := modifiedApiList.toDestinationConfig(cfg.Name)
|
||||
if err != nil {
|
||||
logrus.Error(err)
|
||||
return nil, err
|
||||
|
@ -58,7 +58,7 @@ func (p *plugin) Find(ctx context.Context, req *config.Request) (*drone.Config,
|
|||
|
||||
// 4.2 service
|
||||
modifiedServiceList := getModifiedService(cfg.Service, modifiedFileList)
|
||||
destinationService, err := modifiedServiceList.toDestinationConfig()
|
||||
destinationService, err := modifiedServiceList.toDestinationConfig(cfg.Name)
|
||||
if err != nil {
|
||||
logrus.Error(err)
|
||||
return nil, err
|
||||
|
|
|
@ -6,10 +6,10 @@ type Handler interface {
|
|||
ToDestinationConfig() (string, error)
|
||||
}
|
||||
|
||||
func (al ApiList) toDestinationConfig() (string, error) {
|
||||
func (al ApiList) toDestinationConfig(nameSpace string) (string, error) {
|
||||
retConfig := ""
|
||||
for _, api := range al {
|
||||
config, err := api.toDestinationConfig()
|
||||
config, err := api.toDestinationConfig(nameSpace)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
@ -18,24 +18,25 @@ func (al ApiList) toDestinationConfig() (string, error) {
|
|||
return retConfig, nil
|
||||
}
|
||||
|
||||
func (a Api) toDestinationConfig() (string, error) {
|
||||
func (a Api) toDestinationConfig(nameSpace string) (string, error) {
|
||||
var handler Handler
|
||||
switch a.Type {
|
||||
case go_handler.TypeGolang:
|
||||
handler = go_handler.GoApiHandler{
|
||||
Name: a.Name,
|
||||
Root: a.Root,
|
||||
Port: a.Port,
|
||||
NameSpace: nameSpace,
|
||||
Name: a.Name,
|
||||
Root: a.Root,
|
||||
Port: a.Port,
|
||||
}
|
||||
}
|
||||
|
||||
return handler.ToDestinationConfig()
|
||||
}
|
||||
|
||||
func (sl ServiceList) toDestinationConfig() (string, error) {
|
||||
func (sl ServiceList) toDestinationConfig(nameSpace string) (string, error) {
|
||||
retConfig := ""
|
||||
for _, service := range sl {
|
||||
config, err := service.toDestinationConfig()
|
||||
config, err := service.toDestinationConfig(nameSpace)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
@ -44,14 +45,15 @@ func (sl ServiceList) toDestinationConfig() (string, error) {
|
|||
return retConfig, nil
|
||||
}
|
||||
|
||||
func (s Service) toDestinationConfig() (string, error) {
|
||||
func (s Service) toDestinationConfig(nameSpace string) (string, error) {
|
||||
var handler Handler
|
||||
switch s.Type {
|
||||
case go_handler.TypeGolang:
|
||||
handler = go_handler.GoApiHandler{
|
||||
Name: s.Name,
|
||||
Root: s.Root,
|
||||
Port: s.Port,
|
||||
NameSpace: nameSpace,
|
||||
Name: s.Name,
|
||||
Root: s.Root,
|
||||
Port: s.Port,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ var cli *gitea.Client
|
|||
|
||||
func init() {
|
||||
var err error
|
||||
cli, err = gitea.NewClient("https://git.icechen.cn/", gitea.SetToken("4322b0d361004db5dcea1741417f9e014a0f428f"))
|
||||
cli, err = gitea.NewClient("http://gitea:3000/", gitea.SetToken("4322b0d361004db5dcea1741417f9e014a0f428f"))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
|
|
@ -1,24 +1,67 @@
|
|||
package go_handler
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"text/template"
|
||||
)
|
||||
|
||||
const TypeGolang = "golang"
|
||||
|
||||
const defaultPipeline = `
|
||||
const apiPipeline = `
|
||||
kind: pipeline
|
||||
name: default
|
||||
type: docker
|
||||
name: 部署{{ .Name }}
|
||||
|
||||
steps:
|
||||
- name: build
|
||||
image: golang
|
||||
commands:
|
||||
- go build
|
||||
- go test -v
|
||||
- name: build
|
||||
image: plugins/docker
|
||||
volumes:
|
||||
- name: docker
|
||||
path: /var/run/docker.sock
|
||||
settings:
|
||||
username:
|
||||
from_secret: reg_username
|
||||
password:
|
||||
from_secret: reg_password
|
||||
repo: reg.icechen.cn/{{ .NameSpace }}/{{ .Name }}
|
||||
registry: reg.icechen.cn
|
||||
tags: ${DRONE_COMMIT:0:8}
|
||||
|
||||
- name: run
|
||||
image: docker
|
||||
volumes:
|
||||
- name: docker
|
||||
path: /var/run/docker.sock
|
||||
commands:
|
||||
- docker rm -f {{ .NameSpace }}-{{ .Name }}
|
||||
- docker run -d --name="{{ .NameSpace }}-{{ .Name }}" reg.icechen.cn/{{ .NameSpace }}/{{ .Name }}:${DRONE_COMMIT:0:8}
|
||||
|
||||
volumes:
|
||||
- name: docker
|
||||
host:
|
||||
path: /var/run/docker.sock
|
||||
`
|
||||
|
||||
type GoApiHandler struct {
|
||||
Name string
|
||||
Root string
|
||||
Port string
|
||||
NameSpace string
|
||||
Name string
|
||||
Root string
|
||||
Port string
|
||||
}
|
||||
|
||||
func (GoApiHandler) ToDestinationConfig() (string, error) {
|
||||
return "", nil
|
||||
func (gah GoApiHandler) ToDestinationConfig() (string, error) {
|
||||
var err error
|
||||
t := template.New(gah.Name)
|
||||
t, err = t.Parse(apiPipeline)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
b := bytes.Buffer{}
|
||||
err = t.Execute(&b, gah)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return b.String(), nil
|
||||
}
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
package go_handler
|
||||
|
||||
type GoServiceHandler struct {
|
||||
Name string
|
||||
Root string
|
||||
Port string
|
||||
NameSpace string
|
||||
Name string
|
||||
Root string
|
||||
Port string
|
||||
}
|
||||
|
||||
func (GoServiceHandler) ToDestinationConfig() (string, error) {
|
||||
|
|
Loading…
Reference in New Issue