artifactcache

package
v12.6.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 23, 2026 License: GPL-3.0 Imports: 22 Imported by: 0

Documentation

Overview

Package artifactcache provides a cache handler for the runner.

Inspired by https://github.com/sp-ricard-valverde/github-act-cache-server

TODO: Authorization TODO: Restrictions for accessing a cache, see https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#restrictions-for-accessing-a-cache TODO: Force deleting cache entries, see https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#force-deleting-cache-entries

Index

Constants

This section is empty.

Variables

View Source
var ErrValidation = errors.New("validation error")

Functions

func ComputeMac

func ComputeMac(secret, repo, run, ts, writeIsolationKey string) string

Types

type Cache

type Cache struct {
	ID                uint64 `json:"id" boltholdKey:"ID"`
	Repo              string `json:"repo" boltholdIndex:"Repo"`
	Key               string `json:"key"`
	Version           string `json:"version"`
	Size              int64  `json:"cacheSize"`
	Complete          bool   `json:"complete"`
	UsedAt            int64  `json:"usedAt"`
	CreatedAt         int64  `json:"createdAt"`
	WriteIsolationKey string `json:"writeIsolationKey"`
}

type Handler

type Handler interface {
	ExternalURL() string
	Close() error
	// contains filtered or unexported methods
}

func StartHandler

func StartHandler(dir, outboundIP string, port uint16, secret string, logger logrus.FieldLogger) (Handler, error)

type Request

type Request struct {
	Key     string `json:"key" `
	Version string `json:"version"`
	Size    int64  `json:"cacheSize"`
}

func (*Request) ToCache

func (c *Request) ToCache() *Cache

type RunData

type RunData struct {
	RepositoryFullName string
	RunNumber          string
	Timestamp          string
	RepositoryMAC      string
	WriteIsolationKey  string
}

type Storage

type Storage struct {
	// contains filtered or unexported fields
}

func NewStorage

func NewStorage(rootDir string) (*Storage, error)

func (*Storage) Commit

func (s *Storage) Commit(id uint64, size int64) (int64, error)

func (*Storage) Exist

func (s *Storage) Exist(id uint64) (bool, error)

func (*Storage) Remove

func (s *Storage) Remove(id uint64)

func (*Storage) Serve

func (s *Storage) Serve(w http.ResponseWriter, r *http.Request, id uint64)

func (*Storage) Write

func (s *Storage) Write(id, offset uint64, reader io.Reader) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL