Help us shape the future of Go! Take the 2026 Go Developer Survey

build

package
v0.1.1 Latest Latest
Warning

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

Go to latest
Published: Jul 8, 2025 License: Apache-2.0 Imports: 35 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ERRORSRDI    = errors.New("srdi error")
	ERROROBJCOPY = errors.New("objcopy error")
)
View Source
var (
	//NameSpace                   = "ghcr.io/chainreactors"
	//Tag                         = "nightly-2023-09-18-latest"
	DefaultImage                = GetDefaultImage()
	ContainerSourceCodePath     = "/root/src"
	ContainerCargoRegistryCache = "/root/cargo/registry"
	ContainerCargoGitCache      = "/root/cargo/git"
	ContainerBinPath            = "/root/bin"

	SourceCodeVolume         = fmt.Sprintf("%s:%s", filepath.ToSlash(sourcePath), ContainerSourceCodePath)
	CargoRegistryCacheVolume = fmt.Sprintf("%s:%s", filepath.ToSlash(registryPath), ContainerCargoRegistryCache)
	CargoGitCacheVolume      = fmt.Sprintf("%s:%s", filepath.ToSlash(gitPath), ContainerCargoGitCache)
	BinPathVolume            = fmt.Sprintf("%s:%s", filepath.ToSlash(binPath), ContainerBinPath)
	//Volumes                  = []string{SourceCodeVolume, CargoRegistryCacheVolume, CargoGitCacheVolume, BinPathVolume}
	Volumes  = []string{SourceCodeVolume, BinPathVolume}
	PATH_ENV = ContainerBinPath + ":/root/cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/osxcross/bin:/usr/bin/mingw-w64"
)

Functions

func AmountArtifact

func AmountArtifact(artifactName string) error

func DeleteSuccessWorkflow

func DeleteSuccessWorkflow(owner, repo, token string, workflowID int64) error

删除成功workflow

func GenerateProfile

func GenerateProfile(req *clientpb.BuildConfig) ([]byte, error)

GenerateProfile - Generate profile first recover profile from database then use Generate overwrite profile

func GetActionStatus

func GetActionStatus(owner, repo, token, artifactName string) (string, string, error)

获取action状态

func GetContainerID

func GetContainerID(d *DockerBuilder) string

func GetDefaultImage

func GetDefaultImage() string

func GetDockerClient

func GetDockerClient() (*client.Client, error)

func GetDockerStatus

func GetDockerStatus(cli *client.Client, containerName string) (string, error)

func GetFilePath

func GetFilePath(name, target, buildType, format string) string

func GetWorkflowStatus

func GetWorkflowStatus(config *clientpb.GithubWorkflowConfig) error

func MoveBuildOutput

func MoveBuildOutput(target, buildType string, enable3RD bool) (string, string, error)

func PushArtifact

func PushArtifact(owner, repo, token, buildName string, isRemove bool) (*models.Artifact, error)

主流程

func SaveArtifact

func SaveArtifact(dst string, bin []byte) error

func SendBuildMsg

func SendBuildMsg(builder *clientpb.Artifact, status string, msg string)

func WirteProfile

func WirteProfile(config *types.ProfileConfig) error

Types

type ActionBuilder

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

func NewActionBuilder

func NewActionBuilder(req *clientpb.BuildConfig) *ActionBuilder

func (*ActionBuilder) Collect

func (a *ActionBuilder) Collect() (string, string)

func (*ActionBuilder) Execute

func (a *ActionBuilder) Execute() error

func (*ActionBuilder) Generate

func (a *ActionBuilder) Generate() (*clientpb.Artifact, error)

type Artifact

type Artifact struct {
	ID                 int64     `json:"id"`
	NodeID             string    `json:"node_id"`
	Name               string    `json:"name"`
	SizeInBytes        int64     `json:"size_in_bytes"`
	URL                string    `json:"url"`
	ArchiveDownloadURL string    `json:"archive_download_url"`
	Expired            bool      `json:"expired"`
	CreatedAt          time.Time `json:"created_at"`
	ExpiresAt          time.Time `json:"expires_at"`
	UpdatedAt          time.Time `json:"updated_at"`
	WorkflowRun        struct {
		ID               int64  `json:"id"`
		RepositoryID     int64  `json:"repository_id"`
		HeadRepositoryID int64  `json:"head_repository_id"`
		HeadBranch       string `json:"head_branch"`
		HeadSHA          string `json:"head_sha"`
	} `json:"workflow_run"`
}

Artifact represents a GitHub Actions artifact

type ArtifactsResponse

type ArtifactsResponse struct {
	TotalCount int        `json:"total_count"`
	Artifacts  []Artifact `json:"artifacts"`
}

ArtifactsResponse is the response structure for listing artifacts

type Builder

type Builder interface {
	Generate() (*clientpb.Artifact, error)

	Execute() error

	Collect() (string, string)
}

Builder

func NewBuilder

func NewBuilder(req *clientpb.BuildConfig) (Builder, error)

type BuilderState

type BuilderState struct {
	ID     uint32 // Artifact.ID
	Status string // 状态
}

type DockerBuilder

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

func NewDockerBuilder

func NewDockerBuilder(req *clientpb.BuildConfig) *DockerBuilder

func (*DockerBuilder) Collect

func (d *DockerBuilder) Collect() (string, string)

func (*DockerBuilder) Execute

func (d *DockerBuilder) Execute() error

func (*DockerBuilder) Generate

func (d *DockerBuilder) Generate() (*clientpb.Artifact, error)

type Job

type Job struct {
	ID         int64  `json:"id"`
	Name       string `json:"name"`
	Status     string `json:"status"`
	Conclusion string `json:"conclusion"`
	Steps      []Step `json:"steps"`
}

type JobsResponse

type JobsResponse struct {
	TotalCount int   `json:"total_count"`
	Jobs       []Job `json:"jobs"`
}

type SaasBuilder

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

func NewSaasBuilder

func NewSaasBuilder(req *clientpb.BuildConfig) *SaasBuilder

func (*SaasBuilder) Collect

func (s *SaasBuilder) Collect() (string, string)

func (*SaasBuilder) Execute

func (s *SaasBuilder) Execute() error

func (*SaasBuilder) Generate

func (s *SaasBuilder) Generate() (*clientpb.Artifact, error)

type Step

type Step struct {
	Name       string `json:"name"`
	Status     string `json:"status"`
	Conclusion string `json:"conclusion"`
}

type Workflow

type Workflow struct {
	ID           int64     `json:"id"`
	NodeID       string    `json:"node_id"`
	Name         string    `json:"name"`
	Path         string    `json:"path"`
	CreatedAt    time.Time `json:"created_at"`
	UpdatedAt    time.Time `json:"updated_at"`
	Status       string    `json:"status"`
	State        string    `json:"state"`
	Conclusion   string    `json:"conclusion"`
	URL          string    `json:"url"`
	HTMLURL      string    `json:"html_url"`
	ArtifactsURL string    `json:"artifacts_url"`
}

Workflow represents a GitHub Actions workflow

type WorkflowDispatchPayload

type WorkflowDispatchPayload struct {
	Ref    string            `json:"ref"`
	Inputs map[string]string `json:"inputs,omitempty"`
}

WorkflowDispatchPayload defines the payload for triggering a workflow dispatch event

Jump to

Keyboard shortcuts

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