Skip to content

Commit 6a3d8ff

Browse files
authored
Merge pull request #30 from mackerelio/m-g-r-selective-assets
Support collect assets under specified directories
2 parents b981526 + 72bf62e commit 6a3d8ff

File tree

1 file changed

+28
-3
lines changed

1 file changed

+28
-3
lines changed

cmd/mackerel-github-release/main.go

+28-3
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ func run(argv []string) int {
6969
return exitError
7070
}
7171
log.Printf("Start uploading files to GitHub Releases. version: %s, staging: %t, dry-run: %t\n", v.Version, *staging, *dryRun)
72-
err = uploadToGithubRelease(proj, v.Version, *staging, *dryRun)
72+
err = uploadToGithubRelease(proj, v.Version, *staging, *dryRun, fs.Args())
7373
if err != nil {
7474
log.Printf("error occured while uploading artifacts to github: %+v\n", err)
7575
return exitError
@@ -79,7 +79,7 @@ func run(argv []string) int {
7979

8080
var errAlreadyReleased = fmt.Errorf("the release of this version has already existed at GitHub Releases, so skip the process")
8181

82-
func uploadToGithubRelease(proj *github.Project, releaseVer string, staging, dryRun bool) error {
82+
func uploadToGithubRelease(proj *github.Project, releaseVer string, staging, dryRun bool, directories []string) error {
8383
tag := "staging"
8484
if !staging {
8585
tag = "v" + releaseVer
@@ -102,7 +102,13 @@ func uploadToGithubRelease(proj *github.Project, releaseVer string, staging, dry
102102
}
103103

104104
body := pr.Body
105-
assets, err := collectAssets()
105+
106+
var assets []string
107+
if len(directories) > 0 {
108+
assets, err = specifiedCollectAssets(directories)
109+
} else {
110+
assets, err = collectAssets()
111+
}
106112
if err != nil {
107113
return fmt.Errorf("error occured while collecting releasing assets: %w", err)
108114
}
@@ -243,6 +249,25 @@ func collectAssets() (assets []string, err error) {
243249
return assets, nil
244250
}
245251

252+
func specifiedCollectAssets(directories []string) (assets []string, err error) {
253+
for _, dir := range directories {
254+
errWalk := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
255+
if err != nil {
256+
return err
257+
}
258+
if info.IsDir() {
259+
return nil
260+
}
261+
assets = append(assets, path)
262+
return nil
263+
})
264+
if errWalk != nil {
265+
return nil, errWalk
266+
}
267+
}
268+
return assets, nil
269+
}
270+
246271
func uploadAssets(gh *github.Client, release *github.Release, assets []string) error {
247272
for _, asset := range assets {
248273
err := retry.Retry(3, 3*time.Second, func() error {

0 commit comments

Comments
 (0)