@@ -43,50 +43,65 @@ func github_getLatestReleaseVersion() string {
4343 return version
4444}
4545
46- func github_createNextGitHubRelease (branch string , newReleaseVersion string , preRelease bool , uploadArtifacts string ) {
47- requestBody , err := json .Marshal (models.GithubNewRelease {
48- TagName : newReleaseVersion ,
49- TargetCommitish : strings .Trim (branch , "\n " ),
50- Name : "Release " + newReleaseVersion ,
51- Body : "" ,
52- Draft : false ,
53- PreRelease : preRelease ,
54- })
55- if err != nil {
56- fmt .Println ("(github_createNextGitHubRelease) Error building requestBody: " , err )
57- }
46+ func github_createNextGitHubRelease (branch string , newReleaseVersion string , preRelease * bool , isDryRun * bool , uploadArtifacts * string ) {
47+ var respCreateRelease map [string ]interface {}
48+
49+ if ! * isDryRun {
50+ requestBody , err := json .Marshal (models.GithubNewRelease {
51+ TagName : newReleaseVersion ,
52+ TargetCommitish : strings .Trim (branch , "\n " ),
53+ Name : "Release " + newReleaseVersion ,
54+ Body : "" ,
55+ Draft : false ,
56+ PreRelease : * preRelease ,
57+ })
58+ if err != nil {
59+ fmt .Println ("(github_createNextGitHubRelease) Error building requestBody: " , err )
60+ }
5861
59- url := fmt .Sprintf ("%srepos/%s/releases" , CiEnvironment .GitInfos .ApiUrl , CiEnvironment .GitInfos .FullRepo )
62+ url := fmt .Sprintf ("%srepos/%s/releases" , CiEnvironment .GitInfos .ApiUrl , CiEnvironment .GitInfos .FullRepo )
63+
64+ respCreateRelease = newGitHubPostRequest (url , CiEnvironment .GitInfos .ApiToken , false , requestBody )
65+ if respCreateRelease ["name" ] == "Release " + newReleaseVersion {
66+ fmt .Println ("Release " + newReleaseVersion + " sucsessfully created" )
67+ } else {
68+ fmt .Println ("Somethin went worng at creating release:\n " , githubErrorPrinter (respCreateRelease ))
69+ os .Exit (1 )
70+ }
6071
61- respCreateRelease := newGitHubPostRequest (url , CiEnvironment .GitInfos .ApiToken , false , requestBody )
62- if respCreateRelease ["name" ] == "Release " + newReleaseVersion {
63- fmt .Println ("Release " + newReleaseVersion + " sucsessfully created" )
64- } else {
65- fmt .Println ("Somethin went worng at creating release:\n " , githubErrorPrinter (respCreateRelease ))
66- os .Exit (1 )
6772 }
6873
69- if uploadArtifacts != "" {
70- log .Printf ("Uploading artifacts from: %s\n " , uploadArtifacts )
74+ if * uploadArtifacts != "" {
75+ fmt .Printf ("Uploading artifacts from: %s\n " , * uploadArtifacts )
7176
72- artifactsToUpload := strings .Split (uploadArtifacts , "," )
77+ artifactsToUpload := strings .Split (* uploadArtifacts , "," )
7378
7479 for _ , artifact := range artifactsToUpload {
75- file , err := ioutil .ReadFile (artifact )
76- if err != nil {
77- log .Fatal (err )
78- }
80+ var sanFilename , fixedUploadUrl , releaseFileName string
81+ var data []byte
82+ if strings .HasPrefix (artifact , "file=" ) {
83+ sanFilename = artifact [5 :]
84+ fmt .Println ("Uploading file: " , sanFilename )
85+ var err error
86+ data , err = ioutil .ReadFile (sanFilename )
87+ if err != nil {
88+ log .Fatal (err )
89+ }
90+ releaseFileName = sanFilename [strings .LastIndex (sanFilename , "/" )+ 1 :]
91+ uploadUrl := fmt .Sprintf ("%s" , respCreateRelease ["upload_url" ])
92+ fixedUploadUrl = strings .Replace (uploadUrl , "{?name,label}" , "?name=" + releaseFileName , - 1 )
7993
80- releaseFileName := artifact [ strings . LastIndex ( artifact , "/" ) + 1 :]
94+ }
8195
82- uploadUrl := fmt .Sprintf ("%s" , respCreateRelease ["upload_url" ])
83- newUploadUrl := strings .Replace (uploadUrl , "{?name,label}" , "?name=" + releaseFileName , - 1 )
84- // log.Println("url for uploading asset to release:", newUploadUrl)
85- respUploadArtifact := newGitHubPostRequest (newUploadUrl , CiEnvironment .GitInfos .ApiToken , true , file )
86- if respUploadArtifact ["name" ] == releaseFileName {
87- fmt .Printf ("Sucsessfully uploaded asset: %s\n " , releaseFileName )
96+ if * isDryRun {
97+ fmt .Println ("Would upload artifact " , sanFilename , " as " , releaseFileName )
8898 } else {
89- log .Fatalln ("Somethin went wrong at uploading asset:" , respUploadArtifact ["message" ])
99+ respUploadArtifact := newGitHubPostRequest (fixedUploadUrl , CiEnvironment .GitInfos .ApiToken , true , data )
100+ if respUploadArtifact ["name" ] == releaseFileName {
101+ fmt .Printf ("Sucsessfully uploaded asset: %s\n " , releaseFileName )
102+ } else {
103+ log .Fatalln ("Somethin went wrong at uploading asset:" , respUploadArtifact ["message" ])
104+ }
90105 }
91106 }
92107 }
0 commit comments