@@ -69,7 +69,7 @@ func run(argv []string) int {
69
69
return exitError
70
70
}
71
71
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 () )
73
73
if err != nil {
74
74
log .Printf ("error occured while uploading artifacts to github: %+v\n " , err )
75
75
return exitError
@@ -79,7 +79,7 @@ func run(argv []string) int {
79
79
80
80
var errAlreadyReleased = fmt .Errorf ("the release of this version has already existed at GitHub Releases, so skip the process" )
81
81
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 {
83
83
tag := "staging"
84
84
if ! staging {
85
85
tag = "v" + releaseVer
@@ -102,7 +102,13 @@ func uploadToGithubRelease(proj *github.Project, releaseVer string, staging, dry
102
102
}
103
103
104
104
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
+ }
106
112
if err != nil {
107
113
return fmt .Errorf ("error occured while collecting releasing assets: %w" , err )
108
114
}
@@ -243,6 +249,25 @@ func collectAssets() (assets []string, err error) {
243
249
return assets , nil
244
250
}
245
251
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
+
246
271
func uploadAssets (gh * github.Client , release * github.Release , assets []string ) error {
247
272
for _ , asset := range assets {
248
273
err := retry .Retry (3 , 3 * time .Second , func () error {
0 commit comments