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 26, 2023
1 parent d33f1c8 commit 2cff93c
Show file tree
Hide file tree
Showing 9 changed files with 69 additions and 11 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
7 changes: 6 additions & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +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.20231120154900-a4c055743b3a
replace github.com/jfrog/jfrog-client-go => /Users/yardene/tmp_jfrog-client-go-fork_clone/jfrog-client-go

replace github.com/jfrog/jfrog-cli-core/v2 => /Users/yardene/tmp_jfrog-cli-core-fork_clone/jfrog-cli-core

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-cli-core/v2 v2.0.0-00010101000000-000000000000
github.com/jfrog/jfrog-client-go v1.34.5
github.com/jszwec/csvutil v1.8.0
github.com/mholt/archiver/v3 v3.5.1
Expand Down
4 changes: 0 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -243,10 +243,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 @@
}
}
},
"pathMapping": {
"description": "If specified, determines release-bundle source and target paths 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 @@
]
}
},
"pathMapping": { "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": "*"
}
}
]
}
},
"pathMapping": { "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 2cff93c

Please sign in to comment.