worker: introduce job artifact directory
The `jobs/:job_id/builds/:build_id/image` route was awkward: the `:jobid` was actually weldr's compose id and `:build_id` was always `0`. Change it to `jobs/:job_id/artifacts/:name`, where `:job_id` is now a job id, and `:name` is the name of the artifact to upload. In the future, it could support uploading more than one artifact. This allows removing outputs from `store`, which is now back to being a pure JSON-store. Take care that `weldr` returns (and deletes) images from the new (or for backwards compatibility, the old) location. The `org.osbuild.local` target continues to exist as a marker for the worker to know whether it should upload artifacts.
This commit is contained in:
parent
8f7a9b3439
commit
a1cf3984dc
11 changed files with 122 additions and 146 deletions
|
|
@ -128,14 +128,16 @@ func main() {
|
|||
log.Fatalf("cannot create jobqueue: %v", err)
|
||||
}
|
||||
|
||||
outputDir := path.Join(stateDir, "outputs")
|
||||
err = os.Mkdir(outputDir, 0755)
|
||||
artifactsDir := path.Join(stateDir, "artifacts")
|
||||
err = os.Mkdir(artifactsDir, 0755)
|
||||
if err != nil && !os.IsExist(err) {
|
||||
log.Fatalf("cannot create output directory: %v", err)
|
||||
log.Fatalf("cannot create artifacts directory: %v", err)
|
||||
}
|
||||
|
||||
workers := worker.NewServer(logger, jobs, store.AddImageToImageUpload)
|
||||
weldrAPI := weldr.New(rpm, arch, distribution, repoMap[common.CurrentArch()], logger, store, workers)
|
||||
compatOutputDir := path.Join(stateDir, "outputs")
|
||||
|
||||
workers := worker.NewServer(logger, jobs, artifactsDir)
|
||||
weldrAPI := weldr.New(rpm, arch, distribution, repoMap[common.CurrentArch()], logger, store, workers, artifactsDir, compatOutputDir)
|
||||
|
||||
go func() {
|
||||
err := workers.Serve(jobListener)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue