Skip to content

Commit

Permalink
Add distribution path mappings
Browse files Browse the repository at this point in the history
  • Loading branch information
Yarden-Edery committed Nov 19, 2023
1 parent d33f1c8 commit d352d24
Show file tree
Hide file tree
Showing 9 changed files with 73 additions and 12 deletions.
24 changes: 23 additions & 1 deletion distribution_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -445,7 +445,7 @@ func TestUpdateBundleProps(t *testing.T) {
cleanDistributionTest(t)
}

func TestBundlePathMapping(t *testing.T) {
func TestBundlePathMappingFromPatternAndTarget(t *testing.T) {
initDistributionTest(t)

// Upload files
Expand All @@ -465,6 +465,28 @@ func TestBundlePathMapping(t *testing.T) {
cleanDistributionTest(t)
}

func TestBundlePathMappingFromPatternAndTargetUsingSpec(t *testing.T) {
initDistributionTest(t)

// Upload files
specFile, err := tests.CreateSpec(tests.DistributionUploadSpecB)
assert.NoError(t, err)
runRt(t, "u", "--spec="+specFile)

// Create and distribute release bundle with path mapping from <DistRepo1>/data/ to <DistRepo2>/target/
spec, err := tests.CreateSpec(tests.DistributionCreateWithPatternAndTarget)
assert.NoError(t, err)
runDs(t, "rbc", tests.BundleName, bundleVersion, "--sign", "--spec="+spec)
runDs(t, "rbd", tests.BundleName, bundleVersion, "--site=*", "--sync")

// Validate files are distributed to the target mapping
spec, err = tests.CreateSpec(tests.DistributionMappingDownload)
assert.NoError(t, err)
inttestutils.VerifyExistInArtifactory(tests.GetBundleMappingExpected(), spec, serverDetails, t)

cleanDistributionTest(t)
}

func TestBundlePathMappingUsingSpec(t *testing.T) {
initDistributionTest(t)

Expand Down
8 changes: 6 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,19 @@ module github.com/jfrog/jfrog-cli

go 1.20

replace github.com/jfrog/jfrog-client-go => github.com/YardenEdery/jfrog-client-go v1.28.1-0.20231119162547-c7934b968a7b

replace github.com/jfrog/jfrog-cli-core/v2 => github.com/YardenEdery/jfrog-cli-core/v2 v2.31.1-0.20231119163439-e62d1686d107

require (
github.com/agnivade/levenshtein v1.1.1
github.com/buger/jsonparser v1.1.1
github.com/go-git/go-git/v5 v5.9.0
github.com/gocarina/gocsv v0.0.0-20230616125104-99d496ca653d
github.com/jfrog/build-info-go v1.9.15
github.com/jfrog/gofrog v1.3.1
github.com/jfrog/jfrog-cli-core/v2 v2.46.1
github.com/jfrog/jfrog-client-go v1.34.5
github.com/jfrog/jfrog-cli-core/v2 v2.0.0-00010101000000-000000000000
github.com/jfrog/jfrog-client-go v0.0.0-00010101000000-000000000000
github.com/jszwec/csvutil v1.8.0
github.com/mholt/archiver/v3 v3.5.1
github.com/stretchr/testify v1.8.4
Expand Down
8 changes: 4 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,10 @@ github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c h1:kMFnB0vCcX
github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0=
github.com/VividCortex/ewma v1.2.0 h1:f58SaIzcDXrSy3kWaHNvuJgJ3Nmz59Zji6XoJR/q1ow=
github.com/VividCortex/ewma v1.2.0/go.mod h1:nz4BbCtbLyFDeC9SUHbtcT5644juEuWfUAUnGx7j5l4=
github.com/YardenEdery/jfrog-cli-core/v2 v2.31.1-0.20231119163439-e62d1686d107 h1:YVNeBLl3EcNc/UrPJ6NnbC0Vcr+afpoDzUuglCf7zaM=
github.com/YardenEdery/jfrog-cli-core/v2 v2.31.1-0.20231119163439-e62d1686d107/go.mod h1:zAPvo53r2mzdbfiBmUht0eQYGPCKVpU+cUCybHfjUDw=
github.com/YardenEdery/jfrog-client-go v1.28.1-0.20231119162547-c7934b968a7b h1:dulhOrezvLTRvnypeaVRSC7/I/LJaYvRrg3QPTZ2lXI=
github.com/YardenEdery/jfrog-client-go v1.28.1-0.20231119162547-c7934b968a7b/go.mod h1:0PVhP6xGvBBaUzOU9LKf5OYkke/gY2IFILHA++iabFM=
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d h1:licZJFw2RwpHMqeKTCYkitsPqHNxTmd4SNR5r94FGM8=
github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d/go.mod h1:asat636LX7Bqt5lYEZ27JNDcqxfjdBQuJ/MM4CN/Lzo=
github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ=
Expand Down Expand Up @@ -243,10 +247,6 @@ github.com/jfrog/gofrog v1.3.1 h1:QqAwQXCVReT724uga1AYqG/ZyrNQ6f+iTxmzkb+YFQk=
github.com/jfrog/gofrog v1.3.1/go.mod h1:IFMc+V/yf7rA5WZ74CSbXe+Lgf0iApEQLxRZVzKRUR0=
github.com/jfrog/jfrog-apps-config v1.0.1 h1:mtv6k7g8A8BVhlHGlSveapqf4mJfonwvXYLipdsOFMY=
github.com/jfrog/jfrog-apps-config v1.0.1/go.mod h1:8AIIr1oY9JuH5dylz2S6f8Ym2MaadPLR6noCBO4C22w=
github.com/jfrog/jfrog-cli-core/v2 v2.46.1 h1:4bkyykJk9OUJFXW44NmYGlOmhu6HVG43KUtY5p/wsQA=
github.com/jfrog/jfrog-cli-core/v2 v2.46.1/go.mod h1:S+KpcxVw9O3jY1KtzvbFtnejinc4GgbykQNhLLtfR8I=
github.com/jfrog/jfrog-client-go v1.34.5 h1:NYZrOHvT5D5BwwHdArIz5WnbP+DPbADjV/SPdN33bfQ=
github.com/jfrog/jfrog-client-go v1.34.5/go.mod h1:0PVhP6xGvBBaUzOU9LKf5OYkke/gY2IFILHA++iabFM=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk=
github.com/jszwec/csvutil v1.8.0 h1:G7vS2LGdpZZDH1HmHeNbxOaJ/ZnJlpwGFvOkTkJzzNk=
Expand Down
14 changes: 14 additions & 0 deletions schema/filespec-schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,19 @@
}
}
},
"mappings": {
"description": "If specified, determines release-bundle source and target metadata for artifacts that had been fetched using aql",
"properties": {
"input": {
"type": "string",
"description": "The input path for mapping."
},
"output": {
"type": "string",
"description": "The output path for mapping."
}
}
},
"archive": {
"type": "string",
"enum": ["zip"],
Expand Down Expand Up @@ -227,6 +240,7 @@
]
}
},
"mappings": { "required": ["aql"] },
"build": { "not": { "required": ["bundle", "limit", "offset"] } },
"bundle": { "not": { "required": ["build", "limit", "offset"] } },
"excludeArtifacts": { "required": ["build"] },
Expand Down
18 changes: 15 additions & 3 deletions testdata/filespecs/dist_create_with_mapping.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,20 @@
{
"files": [
{
"pattern": "${DIST_REPO1}/data/(*)",
"target": "${DIST_REPO2}/target/{1}"
"aql": {
"items.find": {
"repo": "${DIST_REPO1}",
"path": "data",
"$or": [
{
"name": {
"$match": "*"
}
}
]
}
},
"mappings": { "input": "${DIST_REPO1}/data/(.*)", "output": "${DIST_REPO2}/target/$1" }
}
]
}
}
8 changes: 8 additions & 0 deletions testdata/filespecs/dist_create_with_pattern_and_target.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"files": [
{
"pattern": "${DIST_REPO1}/data/(*)",
"target": "${DIST_REPO2}/target/{1}"
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ func execDependency() {
func Exec() {
fmt.Println("Executing ")
execDependency()
}
}
2 changes: 1 addition & 1 deletion utils/cliutils/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
"errors"
"fmt"
"github.com/jfrog/gofrog/version"
"github.com/jfrog/jfrog-client-go/utils/log"
"io"
"net/http"
"os"
Expand All @@ -26,7 +27,6 @@ import (
clientutils "github.com/jfrog/jfrog-client-go/utils"
"github.com/jfrog/jfrog-client-go/utils/errorutils"
"github.com/jfrog/jfrog-client-go/utils/io/content"
"github.com/jfrog/jfrog-client-go/utils/log"
"github.com/urfave/cli"
)

Expand Down
1 change: 1 addition & 0 deletions utils/tests/consts.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ const (
DelSpecExclusions = "delete_spec_exclusions.json"
DistributionCreateByAql = "dist_create_by_aql.json"
DistributionCreateWithMapping = "dist_create_with_mapping.json"
DistributionCreateWithPatternAndTarget = "dist_create_with_pattern_and_target.json"
DistributionMappingDownload = "dist_mapping_download_spec.json"
DistributionRepoConfig1 = "dist_repository_config1.json"
DistributionRepoConfig2 = "dist_repository_config2.json"
Expand Down

0 comments on commit d352d24

Please sign in to comment.