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