28 lines
822 B
Go
28 lines
822 B
Go
package artifacts
|
|
|
|
import "os"
|
|
|
|
// Ref identifies a pipeline artifact and its local/remote coordinates.
|
|
type Ref struct {
|
|
Kind string
|
|
Category string
|
|
SessionID string
|
|
RelativePath string
|
|
AbsolutePath string
|
|
RemoteKey string
|
|
Checksum string
|
|
}
|
|
|
|
// Store is the local artifact/workdir abstraction used by orchestration code.
|
|
type Store interface {
|
|
SessionPaths(sessionID string) SessionPaths
|
|
EnsureLayout(sessionID string) (SessionPaths, error)
|
|
CopyInput(sessionID, srcPath, destRelativePath string) (Ref, error)
|
|
Exists(path string) (bool, error)
|
|
ExistsRef(ref Ref) (bool, error)
|
|
WriteFileAtomic(path string, data []byte, perm os.FileMode) error
|
|
Checksum(path string) (string, error)
|
|
AcquireSessionLock(sessionID string) (*LockHandle, error)
|
|
ReleaseSessionLock(lock *LockHandle) error
|
|
}
|