capture file metadata

This commit is contained in:
Brad Rydzewski 2017-08-02 16:04:00 -04:00
parent dba37018f4
commit 60cd607450
22 changed files with 369 additions and 93 deletions

View file

@ -209,6 +209,11 @@ func run(ctx context.Context, client rpc.Peer, filter rpc.Filter) error {
file.Data, _ = ioutil.ReadAll(limitedPart)
file.Size = len(file.Data)
file.Time = time.Now().Unix()
file.Meta = map[string]string{}
for key, value := range part.Header() {
file.Meta[key] = value[0]
}
if serr := client.Upload(ctxmeta, work.ID, file); serr != nil {
log.Printf("pipeline: cannot upload artifact: %s: %s: %s", work.ID, file.Mime, serr)

View file

@ -12,12 +12,15 @@ type FileStore interface {
// File represents a pipeline artifact.
type File struct {
ID int64 `json:"id" meddler:"file_id,pk"`
BuildID int64 `json:"-" meddler:"file_build_id"`
ProcID int64 `json:"proc_id" meddler:"file_proc_id"`
PID int `json:"pid" meddler:"file_pid"`
Name string `json:"name" meddler:"file_name"`
Size int `json:"size" meddler:"file_size"`
Mime string `json:"mime" meddler:"file_mime"`
Time int64 `json:"time" meddler:"file_time"`
ID int64 `json:"id" meddler:"file_id,pk"`
BuildID int64 `json:"-" meddler:"file_build_id"`
ProcID int64 `json:"proc_id" meddler:"file_proc_id"`
PID int `json:"pid" meddler:"file_pid"`
Name string `json:"name" meddler:"file_name"`
Size int `json:"size" meddler:"file_size"`
Mime string `json:"mime" meddler:"file_mime"`
Time int64 `json:"time" meddler:"file_time"`
Passed int `json:"passed" meddler:"file_meta_passed"`
Failed int `json:"failed" meddler:"file_meta_failed"`
Skipped int `json:"skipped" meddler:"file_meta_skipped"`
}

View file

@ -232,7 +232,7 @@ func (s *RPC) Upload(c context.Context, id string, file *rpc.File) error {
)
}
return Config.Storage.Files.FileCreate(&model.File{
report := &model.File{
BuildID: proc.BuildID,
ProcID: proc.ID,
PID: proc.PID,
@ -240,7 +240,35 @@ func (s *RPC) Upload(c context.Context, id string, file *rpc.File) error {
Name: file.Name,
Size: file.Size,
Time: file.Time,
},
}
if d, ok := file.Meta["X-Tests-Passed"]; ok {
report.Passed, _ = strconv.Atoi(d)
}
if d, ok := file.Meta["X-Tests-Failed"]; ok {
report.Failed, _ = strconv.Atoi(d)
}
if d, ok := file.Meta["X-Tests-Skipped"]; ok {
report.Skipped, _ = strconv.Atoi(d)
}
if d, ok := file.Meta["X-Checks-Passed"]; ok {
report.Passed, _ = strconv.Atoi(d)
}
if d, ok := file.Meta["X-Checks-Failed"]; ok {
report.Failed, _ = strconv.Atoi(d)
}
if d, ok := file.Meta["X-Coverage-Lines"]; ok {
report.Passed, _ = strconv.Atoi(d)
}
if d, ok := file.Meta["X-Coverage-Total"]; ok {
if total, _ := strconv.Atoi(d); total != 0 {
report.Failed = total - report.Passed
}
}
return Config.Storage.Files.FileCreate(
report,
bytes.NewBuffer(file.Data),
)
}
@ -579,7 +607,9 @@ func (s *DroneServer) Upload(c oldcontext.Context, req *proto.UploadRequest) (*p
Proc: req.GetFile().GetProc(),
Size: int(req.GetFile().GetSize()),
Time: req.GetFile().GetTime(),
Meta: req.GetFile().GetMeta(),
}
res := new(proto.Empty)
err := peer.Upload(c, req.GetId(), file)
return res, err

View file

@ -140,6 +140,22 @@ var migrations = []struct {
name: "alter-table-add-file-pid",
stmt: alterTableAddFilePid,
},
{
name: "alter-table-add-file-meta-passed",
stmt: alterTableAddFileMetaPassed,
},
{
name: "alter-table-add-file-meta-failed",
stmt: alterTableAddFileMetaFailed,
},
{
name: "alter-table-add-file-meta-skipped",
stmt: alterTableAddFileMetaSkipped,
},
{
name: "alter-table-update-file-meta",
stmt: alterTableUpdateFileMeta,
},
}
// Migrate performs the database migration. If the migration fails
@ -587,3 +603,22 @@ CREATE INDEX ix_perms_user ON perms (perm_user_id);
var alterTableAddFilePid = `
ALTER TABLE files ADD COLUMN file_pid INTEGER
`
var alterTableAddFileMetaPassed = `
ALTER TABLE files ADD COLUMN file_meta_passed INTEGER
`
var alterTableAddFileMetaFailed = `
ALTER TABLE files ADD COLUMN file_meta_failed INTEGER
`
var alterTableAddFileMetaSkipped = `
ALTER TABLE files ADD COLUMN file_meta_skipped INTEGER
`
var alterTableUpdateFileMeta = `
UPDATE files SET
file_meta_passed=0
,file_meta_failed=0
,file_meta_skipped=0
`

View file

@ -1,3 +1,22 @@
-- name: alter-table-add-file-pid
ALTER TABLE files ADD COLUMN file_pid INTEGER
-- name: alter-table-add-file-meta-passed
ALTER TABLE files ADD COLUMN file_meta_passed INTEGER
-- name: alter-table-add-file-meta-failed
ALTER TABLE files ADD COLUMN file_meta_failed INTEGER
-- name: alter-table-add-file-meta-skipped
ALTER TABLE files ADD COLUMN file_meta_skipped INTEGER
-- name: alter-table-update-file-meta
UPDATE files SET
file_meta_passed=0
,file_meta_failed=0
,file_meta_skipped=0

View file

@ -140,6 +140,22 @@ var migrations = []struct {
name: "alter-table-add-file-pid",
stmt: alterTableAddFilePid,
},
{
name: "alter-table-add-file-meta-passed",
stmt: alterTableAddFileMetaPassed,
},
{
name: "alter-table-add-file-meta-failed",
stmt: alterTableAddFileMetaFailed,
},
{
name: "alter-table-add-file-meta-skipped",
stmt: alterTableAddFileMetaSkipped,
},
{
name: "alter-table-update-file-meta",
stmt: alterTableUpdateFileMeta,
},
}
// Migrate performs the database migration. If the migration fails
@ -587,3 +603,22 @@ CREATE INDEX IF NOT EXISTS ix_perms_user ON perms (perm_user_id);
var alterTableAddFilePid = `
ALTER TABLE files ADD COLUMN file_pid INTEGER
`
var alterTableAddFileMetaPassed = `
ALTER TABLE files ADD COLUMN file_meta_passed INTEGER
`
var alterTableAddFileMetaFailed = `
ALTER TABLE files ADD COLUMN file_meta_failed INTEGER
`
var alterTableAddFileMetaSkipped = `
ALTER TABLE files ADD COLUMN file_meta_skipped INTEGER
`
var alterTableUpdateFileMeta = `
UPDATE files SET
file_meta_passed=0
,file_meta_failed=0
,file_meta_skipped=0
`

View file

@ -1,3 +1,22 @@
-- name: alter-table-add-file-pid
ALTER TABLE files ADD COLUMN file_pid INTEGER
-- name: alter-table-add-file-meta-passed
ALTER TABLE files ADD COLUMN file_meta_passed INTEGER
-- name: alter-table-add-file-meta-failed
ALTER TABLE files ADD COLUMN file_meta_failed INTEGER
-- name: alter-table-add-file-meta-skipped
ALTER TABLE files ADD COLUMN file_meta_skipped INTEGER
-- name: alter-table-update-file-meta
UPDATE files SET
file_meta_passed=0
,file_meta_failed=0
,file_meta_skipped=0

View file

@ -144,6 +144,22 @@ var migrations = []struct {
name: "alter-table-add-file-pid",
stmt: alterTableAddFilePid,
},
{
name: "alter-table-add-file-meta-passed",
stmt: alterTableAddFileMetaPassed,
},
{
name: "alter-table-add-file-meta-failed",
stmt: alterTableAddFileMetaFailed,
},
{
name: "alter-table-add-file-meta-skipped",
stmt: alterTableAddFileMetaSkipped,
},
{
name: "alter-table-update-file-meta",
stmt: alterTableUpdateFileMeta,
},
}
// Migrate performs the database migration. If the migration fails
@ -588,3 +604,22 @@ CREATE INDEX IF NOT EXISTS ix_perms_user ON perms (perm_user_id);
var alterTableAddFilePid = `
ALTER TABLE files ADD COLUMN file_pid INTEGER
`
var alterTableAddFileMetaPassed = `
ALTER TABLE files ADD COLUMN file_meta_passed INTEGER
`
var alterTableAddFileMetaFailed = `
ALTER TABLE files ADD COLUMN file_meta_failed INTEGER
`
var alterTableAddFileMetaSkipped = `
ALTER TABLE files ADD COLUMN file_meta_skipped INTEGER
`
var alterTableUpdateFileMeta = `
UPDATE files SET
file_meta_passed=0
,file_meta_failed=0
,file_meta_skipped=0
`

View file

@ -1,3 +1,22 @@
-- name: alter-table-add-file-pid
ALTER TABLE files ADD COLUMN file_pid INTEGER
-- name: alter-table-add-file-meta-passed
ALTER TABLE files ADD COLUMN file_meta_passed INTEGER
-- name: alter-table-add-file-meta-failed
ALTER TABLE files ADD COLUMN file_meta_failed INTEGER
-- name: alter-table-add-file-meta-skipped
ALTER TABLE files ADD COLUMN file_meta_skipped INTEGER
-- name: alter-table-update-file-meta
UPDATE files SET
file_meta_passed=0
,file_meta_failed=0
,file_meta_skipped=0

View file

@ -47,6 +47,9 @@ func (db *datastore) FileCreate(file *model.File, r io.Reader) error {
Size: file.Size,
Mime: file.Mime,
Time: file.Time,
Passed: file.Passed,
Failed: file.Failed,
Skipped: file.Skipped,
Data: d,
}
return meddler.Insert(db, "files", &f)
@ -61,5 +64,8 @@ type fileData struct {
Size int `meddler:"file_size"`
Mime string `meddler:"file_mime"`
Time int64 `meddler:"file_time"`
Passed int `meddler:"file_meta_passed"`
Failed int `meddler:"file_meta_failed"`
Skipped int `meddler:"file_meta_skipped"`
Data []byte `meddler:"file_data"`
}

View file

@ -9,6 +9,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
FROM files
WHERE file_build_id = ?
@ -23,6 +26,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
FROM files
WHERE file_proc_id = ?
AND file_name = ?
@ -38,6 +44,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
,file_data
FROM files
WHERE file_proc_id = ?

View file

@ -170,6 +170,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
FROM files
WHERE file_build_id = ?
`
@ -184,6 +187,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
FROM files
WHERE file_proc_id = ?
AND file_name = ?
@ -199,6 +205,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
,file_data
FROM files
WHERE file_proc_id = ?

View file

@ -9,6 +9,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
FROM files
WHERE file_build_id = $1
@ -23,6 +26,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
FROM files
WHERE file_proc_id = $1
AND file_name = $2
@ -38,6 +44,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
,file_data
FROM files
WHERE file_proc_id = $1

View file

@ -170,6 +170,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
FROM files
WHERE file_build_id = $1
`
@ -184,6 +187,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
FROM files
WHERE file_proc_id = $1
AND file_name = $2
@ -199,6 +205,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
,file_data
FROM files
WHERE file_proc_id = $1

View file

@ -9,6 +9,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
FROM files
WHERE file_build_id = ?
@ -23,6 +26,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
FROM files
WHERE file_proc_id = ?
AND file_name = ?
@ -38,6 +44,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
,file_data
FROM files
WHERE file_proc_id = ?

View file

@ -170,6 +170,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
FROM files
WHERE file_build_id = ?
`
@ -184,6 +187,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
FROM files
WHERE file_proc_id = ?
AND file_name = ?
@ -199,6 +205,9 @@ SELECT
,file_mime
,file_size
,file_time
,file_meta_passed
,file_meta_failed
,file_meta_skipped
,file_data
FROM files
WHERE file_proc_id = ?

View file

@ -211,7 +211,7 @@ func (m *Metadata) EnvironDrone() map[string]string {
"DRONE_PREV_BUILD_NUMBER": fmt.Sprintf("%v", m.Prev.Number),
"DRONE_PREV_COMMIT_SHA": m.Prev.Commit.Sha,
}
if m.Curr.Event == EventTag {
if m.Curr.Event == EventTag || strings.HasPrefix(m.Curr.Commit.Ref, "refs/tags/") {
params["DRONE_TAG"] = strings.TrimPrefix(m.Curr.Commit.Ref, "refs/tags/")
}
if m.Curr.Event == EventPull {

View file

@ -12,6 +12,9 @@ import (
"google.golang.org/grpc/codes"
)
// generate protobuffs
// protoc --go_out=plugins=grpc,import_path=proto:. *.proto
var backoff = time.Second
type client struct {
@ -182,6 +185,7 @@ func (c *client) Upload(ctx context.Context, id string, file *File) (err error)
req.File.Size = int32(file.Size)
req.File.Time = file.Time
req.File.Data = file.Data
req.File.Meta = file.Meta
for {
_, err = c.client.Upload(ctx, req)
if err == nil {

View file

@ -35,12 +35,13 @@ type (
// File defines a pipeline artifact.
File struct {
Name string `json:"name"`
Proc string `json:"proc"`
Mime string `json:"mime"`
Time int64 `json:"time"`
Size int `json:"size"`
Data []byte `json:"data"`
Name string `json:"name"`
Proc string `json:"proc"`
Mime string `json:"mime"`
Time int64 `json:"time"`
Size int `json:"size"`
Data []byte `json:"data"`
Meta map[string]string `json:"meta"`
}
)

View file

@ -47,12 +47,13 @@ var _ = math.Inf
const _ = proto1.ProtoPackageIsVersion2 // please upgrade the proto package
type File struct {
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
Proc string `protobuf:"bytes,2,opt,name=proc" json:"proc,omitempty"`
Mime string `protobuf:"bytes,3,opt,name=mime" json:"mime,omitempty"`
Time int64 `protobuf:"varint,4,opt,name=time" json:"time,omitempty"`
Size int32 `protobuf:"varint,5,opt,name=size" json:"size,omitempty"`
Data []byte `protobuf:"bytes,6,opt,name=data,proto3" json:"data,omitempty"`
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
Proc string `protobuf:"bytes,2,opt,name=proc" json:"proc,omitempty"`
Mime string `protobuf:"bytes,3,opt,name=mime" json:"mime,omitempty"`
Time int64 `protobuf:"varint,4,opt,name=time" json:"time,omitempty"`
Size int32 `protobuf:"varint,5,opt,name=size" json:"size,omitempty"`
Data []byte `protobuf:"bytes,6,opt,name=data,proto3" json:"data,omitempty"`
Meta map[string]string `protobuf:"bytes,7,rep,name=meta" json:"meta,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
}
func (m *File) Reset() { *m = File{} }
@ -102,6 +103,13 @@ func (m *File) GetData() []byte {
return nil
}
func (m *File) GetMeta() map[string]string {
if m != nil {
return m.Meta
}
return nil
}
type State struct {
Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
Exited bool `protobuf:"varint,2,opt,name=exited" json:"exited,omitempty"`
@ -770,45 +778,47 @@ var _Drone_serviceDesc = grpc.ServiceDesc{
func init() { proto1.RegisterFile("drone.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 625 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x5d, 0x6b, 0xd4, 0x40,
0x14, 0x35, 0x9f, 0xdd, 0xbd, 0x69, 0xb5, 0x0e, 0x45, 0xe2, 0x8a, 0x74, 0x19, 0x10, 0x82, 0xc2,
0x82, 0xab, 0x0f, 0x55, 0x10, 0x94, 0x7e, 0x80, 0xb0, 0x14, 0x19, 0x11, 0x1f, 0x25, 0x6d, 0xa6,
0x75, 0x30, 0x9b, 0x89, 0xc9, 0xac, 0x6c, 0x7c, 0xf0, 0x07, 0xf8, 0x1b, 0xfc, 0x9b, 0xbe, 0xcb,
0x9d, 0x99, 0xa4, 0xd9, 0x76, 0xd7, 0x97, 0x3e, 0xf5, 0x7e, 0x9c, 0x3b, 0xf7, 0x9c, 0x7b, 0xd2,
0x85, 0x28, 0xab, 0x64, 0xc1, 0x27, 0x65, 0x25, 0x95, 0x24, 0x81, 0xfe, 0x43, 0x7f, 0x81, 0x7f,
0x22, 0x72, 0x4e, 0x08, 0xf8, 0x45, 0x3a, 0xe7, 0xb1, 0x33, 0x76, 0x92, 0x21, 0xd3, 0x31, 0xd6,
0xca, 0x4a, 0x9e, 0xc7, 0xae, 0xa9, 0x61, 0x8c, 0xb5, 0xb9, 0x98, 0xf3, 0xd8, 0x33, 0x35, 0x8c,
0xb1, 0xa6, 0xb0, 0xe6, 0x8f, 0x9d, 0xc4, 0x63, 0x3a, 0xc6, 0x5a, 0x2d, 0x7e, 0xf2, 0x38, 0x18,
0x3b, 0x49, 0xc0, 0x74, 0x8c, 0xb5, 0x2c, 0x55, 0x69, 0x1c, 0x8e, 0x9d, 0x64, 0x9b, 0xe9, 0x98,
0xfe, 0x71, 0x20, 0xf8, 0xa8, 0x52, 0xb5, 0x9e, 0xc1, 0x03, 0x08, 0xf9, 0x52, 0x28, 0x9e, 0x69,
0x0e, 0x03, 0x66, 0x33, 0xf2, 0x08, 0x86, 0x18, 0x7d, 0x39, 0x97, 0x99, 0xa1, 0x12, 0xb0, 0x01,
0x16, 0x0e, 0x65, 0xc6, 0x49, 0x0c, 0x5b, 0xb5, 0x4a, 0x2b, 0x9c, 0x32, 0x8c, 0xda, 0x94, 0x8c,
0x60, 0x70, 0x21, 0x0a, 0x51, 0x7f, 0xe5, 0x99, 0x26, 0xe6, 0xb1, 0x2e, 0x27, 0x7b, 0x10, 0xf0,
0xaa, 0x92, 0x95, 0x66, 0x37, 0x64, 0x26, 0xa1, 0x0c, 0xfc, 0x99, 0x28, 0xae, 0x4e, 0xe1, 0xac,
0x9e, 0x42, 0xcb, 0x76, 0x7b, 0xb2, 0x77, 0xc1, 0x2b, 0x65, 0x6d, 0x29, 0x61, 0x88, 0x15, 0xb9,
0x50, 0x9a, 0xc9, 0x90, 0x61, 0x48, 0x7f, 0x3b, 0x10, 0x9e, 0x88, 0x5c, 0xf1, 0x8a, 0x3c, 0x87,
0x30, 0x4f, 0xcf, 0x78, 0x5e, 0xc7, 0xce, 0xd8, 0x4b, 0xa2, 0xe9, 0x43, 0x63, 0xce, 0xc4, 0xb4,
0x27, 0x33, 0xdd, 0x3b, 0x2e, 0x54, 0xd5, 0x30, 0x0b, 0xc4, 0xad, 0x7c, 0x59, 0x56, 0xad, 0x29,
0x18, 0x8f, 0x5e, 0x41, 0xd4, 0x83, 0xe2, 0xca, 0x6f, 0xbc, 0xb1, 0x5c, 0x31, 0x44, 0x71, 0x3f,
0xd2, 0x7c, 0xc1, 0xed, 0x94, 0x49, 0x5e, 0xbb, 0x07, 0x0e, 0x3d, 0x85, 0xc1, 0x07, 0x51, 0xf2,
0x1c, 0x45, 0xde, 0x05, 0x57, 0x64, 0x76, 0xcc, 0x15, 0x19, 0x1e, 0x12, 0x45, 0x21, 0x7d, 0xa3,
0xb1, 0x4d, 0xb1, 0x53, 0xa6, 0x4d, 0x2e, 0xd3, 0x4c, 0x4b, 0xdd, 0x66, 0x6d, 0x4a, 0x5f, 0x42,
0x74, 0xca, 0x97, 0x8a, 0xf1, 0xef, 0x0b, 0x5e, 0x2b, 0xf2, 0x04, 0xc2, 0x0b, 0xad, 0x45, 0x3f,
0x1b, 0x4d, 0x77, 0x56, 0x04, 0x32, 0xdb, 0xa4, 0x07, 0x30, 0x34, 0x53, 0x65, 0xde, 0x90, 0x67,
0x30, 0x28, 0x2d, 0x25, 0x3b, 0x75, 0xcf, 0x4e, 0xb5, 0x4c, 0x59, 0x07, 0xa0, 0xef, 0x20, 0x7a,
0x5f, 0x88, 0x6e, 0xdf, 0x75, 0x09, 0x14, 0x82, 0x1a, 0xbf, 0x2e, 0x2d, 0x20, 0x9a, 0x6e, 0xdb,
0x87, 0xf4, 0x17, 0xc7, 0x4c, 0x8b, 0x3e, 0x86, 0xe8, 0x73, 0xba, 0xf1, 0x09, 0xdc, 0x70, 0x24,
0x0b, 0x7e, 0x9b, 0x0d, 0xfb, 0xb0, 0x73, 0xbc, 0x54, 0xbc, 0xc8, 0x36, 0xed, 0x78, 0x0b, 0x3b,
0x9f, 0x4a, 0xbc, 0xdf, 0xa6, 0x2d, 0xfb, 0xe0, 0x5f, 0x88, 0xbc, 0x5d, 0x12, 0x5d, 0x5d, 0x91,
0x33, 0xdd, 0xa0, 0x87, 0xf8, 0x42, 0x86, 0x3b, 0x6f, 0xc1, 0xf3, 0x0d, 0xc0, 0x4c, 0x5e, 0xfe,
0x87, 0x83, 0xf6, 0x64, 0x95, 0x03, 0xfe, 0x7b, 0x30, 0xdd, 0xa0, 0x5b, 0x10, 0x1c, 0xcf, 0x4b,
0xd5, 0x4c, 0xff, 0xba, 0x10, 0x1c, 0xe1, 0x6f, 0x0d, 0x99, 0x80, 0x8f, 0xc6, 0x12, 0x62, 0xd1,
0xbd, 0x6f, 0x63, 0xb4, 0xbb, 0x52, 0x2b, 0xf3, 0x86, 0xde, 0x21, 0x4f, 0xc1, 0x47, 0x3b, 0x3b,
0x7c, 0xcf, 0xdb, 0x51, 0x4b, 0x59, 0xef, 0x30, 0x58, 0xf4, 0xad, 0xc3, 0xf6, 0x4c, 0x5c, 0x87,
0x45, 0x13, 0x3b, 0x6c, 0xcf, 0xd1, 0x1b, 0xd8, 0x09, 0x84, 0xc6, 0x2d, 0xb2, 0xd7, 0x76, 0xfa,
0xe6, 0xad, 0xc3, 0x9b, 0xd3, 0x77, 0xf8, 0x15, 0x27, 0xd6, 0xe3, 0xd1, 0xec, 0x1e, 0xbe, 0xe7,
0xfd, 0x0d, 0x7c, 0x02, 0xde, 0x4c, 0x5e, 0x92, 0xfb, 0xed, 0xc1, 0x3b, 0x87, 0xae, 0x23, 0xcf,
0x42, 0x9d, 0xbe, 0xf8, 0x17, 0x00, 0x00, 0xff, 0xff, 0xa1, 0x30, 0x6a, 0x80, 0xe9, 0x05, 0x00,
0x00,
// 661 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0xed, 0x6a, 0xd4, 0x4c,
0x14, 0x7e, 0xb3, 0xf9, 0xe8, 0xee, 0x49, 0xfb, 0x5a, 0x87, 0x2a, 0x71, 0x45, 0xba, 0x04, 0x84,
0x55, 0x61, 0xc1, 0x55, 0xb0, 0x0a, 0x82, 0xd2, 0x0f, 0x10, 0xd6, 0x22, 0x23, 0xe2, 0x4f, 0x49,
0x9b, 0xd3, 0x3a, 0x98, 0xcd, 0xc4, 0x64, 0x2a, 0x1b, 0x2f, 0xc1, 0x6b, 0xf0, 0xea, 0xbc, 0x07,
0xff, 0xcb, 0x99, 0x99, 0xa4, 0xd9, 0x76, 0x2b, 0x48, 0x7f, 0xed, 0xf9, 0x78, 0x66, 0xce, 0x73,
0x9e, 0x67, 0xb2, 0x10, 0xa6, 0xa5, 0xcc, 0x71, 0x52, 0x94, 0x52, 0x49, 0xe6, 0xeb, 0x9f, 0xf8,
0x97, 0x03, 0xde, 0x81, 0xc8, 0x90, 0x31, 0xf0, 0xf2, 0x64, 0x8e, 0x91, 0x33, 0x72, 0xc6, 0x03,
0xae, 0x63, 0xaa, 0x15, 0xa5, 0x3c, 0x8e, 0x7a, 0xa6, 0x46, 0x31, 0xd5, 0xe6, 0x62, 0x8e, 0x91,
0x6b, 0x6a, 0x14, 0x53, 0x4d, 0x51, 0xcd, 0x1b, 0x39, 0x63, 0x97, 0xeb, 0x98, 0x6a, 0x95, 0xf8,
0x8e, 0x91, 0x3f, 0x72, 0xc6, 0x3e, 0xd7, 0x31, 0xd5, 0xd2, 0x44, 0x25, 0x51, 0x30, 0x72, 0xc6,
0xeb, 0x5c, 0xc7, 0xec, 0x01, 0x78, 0x73, 0x54, 0x49, 0xb4, 0x36, 0x72, 0xc7, 0xe1, 0xf4, 0x96,
0x61, 0x37, 0x21, 0x4a, 0x93, 0xb7, 0xa8, 0x92, 0xfd, 0x5c, 0x95, 0x35, 0xd7, 0x90, 0xe1, 0x33,
0x18, 0xb4, 0x25, 0xb6, 0x09, 0xee, 0x17, 0xac, 0x2d, 0x5d, 0x0a, 0xd9, 0x16, 0xf8, 0xdf, 0x92,
0xec, 0x0c, 0x2d, 0x5d, 0x93, 0xbc, 0xe8, 0xed, 0x38, 0xf1, 0x4f, 0x07, 0xfc, 0xf7, 0x2a, 0x51,
0xab, 0xb7, 0xbc, 0x0d, 0x01, 0x2e, 0x84, 0xc2, 0x54, 0x1f, 0xec, 0x73, 0x9b, 0xb1, 0xbb, 0x30,
0xa0, 0xe8, 0xd3, 0xb1, 0x4c, 0xcd, 0xba, 0x3e, 0xef, 0x53, 0x61, 0x57, 0xa6, 0xc8, 0x22, 0x58,
0xab, 0x54, 0x52, 0xd2, 0x29, 0xb3, 0x75, 0x93, 0xb2, 0x21, 0xf4, 0x4f, 0x44, 0x2e, 0xaa, 0xcf,
0x98, 0xea, 0xe5, 0x5d, 0xde, 0xe6, 0x44, 0x11, 0xcb, 0x52, 0x96, 0x5a, 0x81, 0x01, 0x37, 0x49,
0xcc, 0xc1, 0x9b, 0x89, 0xfc, 0x5c, 0x6e, 0x67, 0x59, 0x6e, 0x2d, 0x6d, 0xaf, 0x23, 0xed, 0x26,
0xb8, 0x85, 0xac, 0x2c, 0x25, 0x0a, 0xa9, 0x22, 0xcf, 0x94, 0x66, 0x32, 0xe0, 0x14, 0xc6, 0x3f,
0x1c, 0x08, 0x0e, 0x44, 0xa6, 0xb0, 0x64, 0x8f, 0x21, 0xc8, 0x92, 0x23, 0xcc, 0xaa, 0xc8, 0xd1,
0x1a, 0xdf, 0x39, 0xd7, 0x58, 0x61, 0x39, 0x99, 0xe9, 0x9e, 0xd1, 0xd9, 0x02, 0x69, 0x2a, 0x2e,
0x8a, 0xb2, 0x31, 0x9e, 0xe2, 0xe1, 0x73, 0x08, 0x3b, 0xd0, 0x7f, 0xd2, 0xff, 0x10, 0xfa, 0xef,
0x44, 0x81, 0x19, 0x2d, 0xf9, 0x3f, 0xf4, 0x44, 0x6a, 0x8f, 0xf5, 0x44, 0x4a, 0x42, 0xd2, 0x52,
0x44, 0xdf, 0xec, 0xd8, 0xa4, 0xd4, 0x29, 0x92, 0x3a, 0x93, 0x49, 0xaa, 0x57, 0x5d, 0xe7, 0x4d,
0x1a, 0x3f, 0x85, 0xf0, 0x10, 0x17, 0x8a, 0xe3, 0xd7, 0x33, 0xac, 0x14, 0xbb, 0x0f, 0xc1, 0x89,
0xde, 0x45, 0x5f, 0x1b, 0x4e, 0x37, 0x96, 0x16, 0xe4, 0xb6, 0x19, 0xef, 0xc0, 0xc0, 0x9c, 0x2a,
0xb2, 0x9a, 0x3d, 0x82, 0x7e, 0x61, 0x29, 0xd9, 0x53, 0x37, 0xec, 0xa9, 0x86, 0x29, 0x6f, 0x01,
0xf1, 0x6b, 0x08, 0xdf, 0xe4, 0xa2, 0x9d, 0x77, 0x71, 0x85, 0x18, 0xfc, 0x8a, 0x5e, 0x97, 0x5e,
0x20, 0x9c, 0xae, 0xdb, 0x8b, 0xf4, 0x8b, 0xe3, 0xa6, 0x15, 0xdf, 0x83, 0xf0, 0x63, 0x72, 0xe5,
0x15, 0x34, 0x61, 0x4f, 0xe6, 0x78, 0x9d, 0x09, 0xdb, 0xb0, 0xb1, 0xbf, 0x50, 0x98, 0xa7, 0x57,
0xcd, 0x78, 0x05, 0x1b, 0x1f, 0x0a, 0xd2, 0xef, 0xaa, 0x29, 0xdb, 0xe0, 0x9d, 0x88, 0xac, 0x19,
0x12, 0x76, 0x3e, 0x45, 0xae, 0x1b, 0xf1, 0x2e, 0xdd, 0x90, 0xd2, 0xcc, 0x6b, 0xf0, 0x7c, 0x09,
0x30, 0x93, 0xa7, 0x7f, 0xe1, 0xa0, 0x3d, 0x59, 0xe6, 0x40, 0x9f, 0x07, 0xd7, 0x8d, 0x78, 0x0d,
0xfc, 0xfd, 0x79, 0xa1, 0xea, 0xe9, 0xef, 0x1e, 0xf8, 0x7b, 0xf4, 0x87, 0xc6, 0x26, 0xe0, 0x91,
0xb1, 0x8c, 0x59, 0x74, 0xe7, 0x6d, 0x0c, 0x37, 0x97, 0x6a, 0x45, 0x56, 0xc7, 0xff, 0xb1, 0x87,
0xe0, 0x91, 0x9d, 0x2d, 0xbe, 0xe3, 0xed, 0xb0, 0xa1, 0xac, 0x67, 0x18, 0x2c, 0xf9, 0xd6, 0x62,
0x3b, 0x26, 0xae, 0xc2, 0x92, 0x89, 0x2d, 0xb6, 0xe3, 0xe8, 0x25, 0xec, 0x04, 0x02, 0xe3, 0x16,
0xdb, 0x6a, 0x3a, 0x5d, 0xf3, 0x56, 0xe1, 0x8d, 0xf4, 0x2d, 0x7e, 0xc9, 0x89, 0xd5, 0x78, 0x32,
0xbb, 0x83, 0xef, 0x78, 0x7f, 0x09, 0x3f, 0x06, 0x77, 0x26, 0x4f, 0xd9, 0xcd, 0x46, 0xf0, 0xd6,
0xa1, 0x8b, 0xc8, 0xa3, 0x40, 0xa7, 0x4f, 0xfe, 0x04, 0x00, 0x00, 0xff, 0xff, 0xe9, 0x21, 0xb6,
0xce, 0x4e, 0x06, 0x00, 0x00,
}

View file

@ -9,6 +9,7 @@ message File {
int64 time = 4;
int32 size = 5;
bytes data = 6;
map<string, string> meta = 7;
}
message State {

58
vendor/vendor.json vendored
View file

@ -39,80 +39,80 @@
{
"checksumSHA1": "W3AuK8ocqHwlUajGmQLFvnRhTZE=",
"path": "github.com/cncd/pipeline/pipeline",
"revision": "ab22744b29732792a53fe22e322a7408ba04d758",
"revisionTime": "2017-07-21T21:40:10Z"
"revision": "4ee869791092749a481c9ed9e888dfc503535917",
"revisionTime": "2017-08-02T19:39:34Z"
},
{
"checksumSHA1": "rO+djTfB4LrT+FBbpotyUUobOtU=",
"path": "github.com/cncd/pipeline/pipeline/backend",
"revision": "ab22744b29732792a53fe22e322a7408ba04d758",
"revisionTime": "2017-07-21T21:40:10Z"
"revision": "4ee869791092749a481c9ed9e888dfc503535917",
"revisionTime": "2017-08-02T19:39:34Z"
},
{
"checksumSHA1": "DzP4c915B+gJTE5RCKQHzxwrUg4=",
"path": "github.com/cncd/pipeline/pipeline/backend/docker",
"revision": "ab22744b29732792a53fe22e322a7408ba04d758",
"revisionTime": "2017-07-21T21:40:10Z"
"revision": "4ee869791092749a481c9ed9e888dfc503535917",
"revisionTime": "2017-08-02T19:39:34Z"
},
{
"checksumSHA1": "8Hj/OZnYZyz5N2hqENCTTaGtkNQ=",
"checksumSHA1": "2A3+CnkMfvvO4oRkjQKqi44no0g=",
"path": "github.com/cncd/pipeline/pipeline/frontend",
"revision": "ab22744b29732792a53fe22e322a7408ba04d758",
"revisionTime": "2017-07-21T21:40:10Z"
"revision": "4ee869791092749a481c9ed9e888dfc503535917",
"revisionTime": "2017-08-02T19:39:34Z"
},
{
"checksumSHA1": "9KYIsY8WlWbrRAP7caEpWT70P9c=",
"path": "github.com/cncd/pipeline/pipeline/frontend/yaml",
"revision": "ab22744b29732792a53fe22e322a7408ba04d758",
"revisionTime": "2017-07-21T21:40:10Z"
"revision": "4ee869791092749a481c9ed9e888dfc503535917",
"revisionTime": "2017-08-02T19:39:34Z"
},
{
"checksumSHA1": "EgCQ0v0mExUBHMoxA6+8J8zWqFE=",
"path": "github.com/cncd/pipeline/pipeline/frontend/yaml/compiler",
"revision": "ab22744b29732792a53fe22e322a7408ba04d758",
"revisionTime": "2017-07-21T21:40:10Z"
"revision": "4ee869791092749a481c9ed9e888dfc503535917",
"revisionTime": "2017-08-02T19:39:34Z"
},
{
"checksumSHA1": "xBjAqRhLsJyh+8rbaKdPYOntTHw=",
"path": "github.com/cncd/pipeline/pipeline/frontend/yaml/linter",
"revision": "ab22744b29732792a53fe22e322a7408ba04d758",
"revisionTime": "2017-07-21T21:40:10Z"
"revision": "4ee869791092749a481c9ed9e888dfc503535917",
"revisionTime": "2017-08-02T19:39:34Z"
},
{
"checksumSHA1": "kx2sPUIMozPC/g6E4w48h3FfH3k=",
"path": "github.com/cncd/pipeline/pipeline/frontend/yaml/matrix",
"revision": "ab22744b29732792a53fe22e322a7408ba04d758",
"revisionTime": "2017-07-21T21:40:10Z"
"revision": "4ee869791092749a481c9ed9e888dfc503535917",
"revisionTime": "2017-08-02T19:39:34Z"
},
{
"checksumSHA1": "L7Q5qJmPITNmvFEEaj5MPwCWFRk=",
"path": "github.com/cncd/pipeline/pipeline/frontend/yaml/types",
"revision": "ab22744b29732792a53fe22e322a7408ba04d758",
"revisionTime": "2017-07-21T21:40:10Z"
"revision": "4ee869791092749a481c9ed9e888dfc503535917",
"revisionTime": "2017-08-02T19:39:34Z"
},
{
"checksumSHA1": "2/3f3oNmxXy5kcrRLCFa24Oc9O4=",
"path": "github.com/cncd/pipeline/pipeline/interrupt",
"revision": "ab22744b29732792a53fe22e322a7408ba04d758",
"revisionTime": "2017-07-21T21:40:10Z"
"revision": "4ee869791092749a481c9ed9e888dfc503535917",
"revisionTime": "2017-08-02T19:39:34Z"
},
{
"checksumSHA1": "uOjTfke7Qxosrivgz/nVTHeIP5g=",
"path": "github.com/cncd/pipeline/pipeline/multipart",
"revision": "ab22744b29732792a53fe22e322a7408ba04d758",
"revisionTime": "2017-07-21T21:40:10Z"
"revision": "4ee869791092749a481c9ed9e888dfc503535917",
"revisionTime": "2017-08-02T19:39:34Z"
},
{
"checksumSHA1": "YlIaMsvB5fFXRolugambNzkSu4I=",
"checksumSHA1": "t2HtsL+IUCVkjvHk99Jn1Fj8AXU=",
"path": "github.com/cncd/pipeline/pipeline/rpc",
"revision": "ab22744b29732792a53fe22e322a7408ba04d758",
"revisionTime": "2017-07-21T21:40:10Z"
"revision": "4ee869791092749a481c9ed9e888dfc503535917",
"revisionTime": "2017-08-02T19:39:34Z"
},
{
"checksumSHA1": "WAQJYKWUIFBnL1s8AnY4fePnzJ8=",
"checksumSHA1": "huYd+DhpBP/0kHMAC0mPZAZBmnw=",
"path": "github.com/cncd/pipeline/pipeline/rpc/proto",
"revision": "ab22744b29732792a53fe22e322a7408ba04d758",
"revisionTime": "2017-07-21T21:40:10Z"
"revision": "4ee869791092749a481c9ed9e888dfc503535917",
"revisionTime": "2017-08-02T19:39:34Z"
},
{
"checksumSHA1": "7Qj1DK0ceAXkYztW0l3+L6sn+V8=",