Update cache after tagging, so the cache reflects the updated version of
the source code.
This commit is contained in:
parent
0837c80915
commit
4e2759e69f
@ -226,6 +226,12 @@ func (api *api) module(ctx context.Context, module string, version vcs.Version)
|
|||||||
api.semc <- struct{}{}
|
api.semc <- struct{}{}
|
||||||
defer func() { <-api.semc }()
|
defer func() { <-api.semc }()
|
||||||
|
|
||||||
|
return api.store(ctx, module, version)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (api *api) store(ctx context.Context, module string, version vcs.Version) ([]byte, time.Time, error) {
|
||||||
|
api.log("api.store", "module", module, "version", version.String())
|
||||||
|
|
||||||
timestamp, err := api.vcs(ctx, module).Timestamp(ctx, version)
|
timestamp, err := api.vcs(ctx, module).Timestamp(ctx, version)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, time.Time{}, err
|
return nil, time.Time{}, err
|
||||||
@ -355,10 +361,21 @@ func (api *api) tag(w http.ResponseWriter, r *http.Request, module, version stri
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// wait for semaphore
|
||||||
|
api.semc <- struct{}{}
|
||||||
|
defer func() { <-api.semc }()
|
||||||
|
|
||||||
err = taggable.Tag(r.Context(), vcs.Version(version), req.Short)
|
err = taggable.Tag(r.Context(), vcs.Version(version), req.Short)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
api.log("api.tag", "module", module, "version", version, "error", err)
|
api.log("api.tag", "module", module, "version", version, "error", err)
|
||||||
http.Error(w, err.Error(), http.StatusBadRequest)
|
http.Error(w, err.Error(), http.StatusBadRequest)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_, _, err = api.store(r.Context(), module, vcs.Version(version))
|
||||||
|
if err != nil {
|
||||||
|
api.log("api.tag", "module", module, "version", version, "error", err)
|
||||||
|
http.Error(w, err.Error(), http.StatusBadRequest)
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -82,6 +82,7 @@ func (v *taggableVCS) Tag(ctx context.Context, semVer Version, short string) err
|
|||||||
if versionExists(remoteVersions, semVer) {
|
if versionExists(remoteVersions, semVer) {
|
||||||
return fmt.Errorf("remote version %s already exists for module %s", semVer, v.module)
|
return fmt.Errorf("remote version %s already exists for module %s", semVer, v.module)
|
||||||
}
|
}
|
||||||
|
v.wrapped.log("taggableVCS.Tag", "version", semVer, "short", short)
|
||||||
return v.storage.Tag(v.module, semVer, short)
|
return v.storage.Tag(v.module, semVer, short)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,7 +93,10 @@ func (v *taggableVCS) List(ctx context.Context) ([]Version, error) {
|
|||||||
}
|
}
|
||||||
tags := v.storage.tags(v.module)
|
tags := v.storage.tags(v.module)
|
||||||
// Remote versions win.
|
// Remote versions win.
|
||||||
return appendEphemeralVersion(remoteVersions, tags...), nil
|
allVersions := appendEphemeralVersion(remoteVersions, tags...)
|
||||||
|
// TODO(bilus): BUG - tag version 1.0.0 and then 0.1.0 - 0.1.0 is the "latest".
|
||||||
|
// sort.Slice(allVersions, func(i, j) bool { return allVersions[i].Before(allVersions[j]) })
|
||||||
|
return allVersions, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func appendEphemeralVersion(versions []Version, tags ...ephemeralTag) []Version {
|
func appendEphemeralVersion(versions []Version, tags ...ephemeralTag) []Version {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user