@@ -10,7 +10,6 @@ import (
1010 "io"
1111 "os"
1212 "strings"
13- "time"
1413
1514 "code.gitea.io/gitea/models/db"
1615 packages_model "code.gitea.io/gitea/models/packages"
@@ -260,6 +259,13 @@ func createPackageAndVersion(ctx context.Context, mci *manifestCreationInfo, met
260259 return nil , err
261260 }
262261
262+ // "docker buildx imagetools create" multi-arch operations:
263+ // {"type":"oci","is_tagged":false,"platform":"unknown/unknown"}
264+ // {"type":"oci","is_tagged":false,"platform":"linux/amd64","layer_creation":["ADD file:9233f6f2237d79659a9521f7e390df217cec49f1a8aa3a12147bbca1956acdb9 in /","CMD [\"/bin/sh\"]"]}
265+ // {"type":"oci","is_tagged":false,"platform":"unknown/unknown"}
266+ // {"type":"oci","is_tagged":false,"platform":"linux/arm64","layer_creation":["ADD file:df53811312284306901fdaaff0a357a4bf40d631e662fe9ce6d342442e494b6c in /","CMD [\"/bin/sh\"]"]}
267+ // {"type":"oci","is_tagged":true,"manifests":[{"platform":"linux/amd64","digest":"sha256:72bb73e706c0dec424d00a1febb21deaf1175a70ead009ad8b159729cfcf5769","size":2819478},{"platform":"linux/arm64","digest":"sha256:9e1426dd084a3221663b85ca1ee99d140c50b153917a5c5604c1f9b78229fd24","size":2716499},{"platform":"unknown/unknown","digest":"sha256:b93f03d0ae11b988243e1b2cd8d29accf5b9670547b7bd8c7d96abecc7283e6e","size":1798},{"platform":"unknown/unknown","digest":"sha256:f034b182ba66366c63a5d195c6dfcd3333c027409c0ac98e55ade36aaa3b2963","size":1798}]}
268+
263269 _pv := & packages_model.PackageVersion {
264270 PackageID : p .ID ,
265271 CreatorID : mci .Creator .ID ,
@@ -273,25 +279,16 @@ func createPackageAndVersion(ctx context.Context, mci *manifestCreationInfo, met
273279 log .Error ("Error inserting package: %v" , err )
274280 return nil , err
275281 }
276-
277- if container_module .IsMediaTypeImageIndex (mci .MediaType ) {
278- if pv .CreatedUnix .AsTime ().Before (time .Now ().Add (- 24 * time .Hour )) {
279- if err = packages_service .DeletePackageVersionAndReferences (ctx , pv ); err != nil {
280- return nil , err
281- }
282- // keep download count on overwriting
283- _pv .DownloadCount = pv .DownloadCount
284- if pv , err = packages_model .GetOrInsertVersion (ctx , _pv ); err != nil {
285- if ! errors .Is (err , packages_model .ErrDuplicatePackageVersion ) {
286- log .Error ("Error inserting package: %v" , err )
287- return nil , err
288- }
289- }
290- } else {
291- err = packages_model .UpdateVersion (ctx , & packages_model.PackageVersion {ID : pv .ID , MetadataJSON : _pv .MetadataJSON })
292- if err != nil {
293- return nil , err
294- }
282+ if err = packages_service .DeletePackageVersionAndReferences (ctx , pv ); err != nil {
283+ return nil , err
284+ }
285+ // keep download count on overwriting
286+ _pv .DownloadCount = pv .DownloadCount
287+ pv , err = packages_model .GetOrInsertVersion (ctx , _pv )
288+ if err != nil {
289+ if ! errors .Is (err , packages_model .ErrDuplicatePackageVersion ) {
290+ log .Error ("Error inserting package: %v" , err )
291+ return nil , err
295292 }
296293 }
297294 }
0 commit comments