Skip to content

Commit 7124069

Browse files
committed
add body message + asset testing before upload
1 parent 629491b commit 7124069

File tree

6 files changed

+29
-102
lines changed

6 files changed

+29
-102
lines changed

main.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ func init() {
5757
releaseSet.Create.Fs = flag.NewFlagSet("release create", flag.ExitOnError)
5858
releaseSet.Create.Fs.IntVar(&releaseSet.Create.PrNumber, "prnumber", 0, "overwrite the issue number")
5959
releaseSet.Create.Fs.StringVar(&releaseSet.Create.Version, "version", "", "override version to Update")
60+
releaseSet.Create.Fs.StringVar(&releaseSet.Create.Body, "body", "", "custom release message (markdow string or file)")
6061
releaseSet.Create.Fs.StringVar(&releaseSet.Create.PatchLevel, "patchLevel", "", "predefine version to Update")
6162
releaseSet.Create.Fs.BoolVar(&releaseSet.Create.DryRun, "dry-run", false, "make dry-run before writing version to Git by calling it")
6263
releaseSet.Create.Fs.Usage = func() {
@@ -66,6 +67,7 @@ func init() {
6667
releaseSet.Publish.Fs = flag.NewFlagSet("release publish", flag.ExitOnError)
6768
releaseSet.Publish.Fs.IntVar(&releaseSet.Publish.PrNumber, "prnumber", 0, "overwrite the issue number")
6869
releaseSet.Publish.Fs.StringVar(&releaseSet.Publish.Version, "version", "", "override version to Update")
70+
releaseSet.Publish.Fs.StringVar(&releaseSet.Publish.Body, "body", "", "custom release message (markdow string or file)")
6971
releaseSet.Publish.Fs.StringVar(&releaseSet.Publish.PatchLevel, "patchLevel", "", "predefine version to Update")
7072
releaseSet.Publish.Fs.StringVar(&releaseSet.Publish.Assets, "assets", "", "upload assets to release. eg.: \"file=awesome-ci\"")
7173
releaseSet.Publish.Fs.Int64Var(&releaseSet.Publish.ReleaseId, "releaseid", 0, "publish an early defined release")

src/acigithub/release.go

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
)
1212

1313
// CreateRelease
14-
func CreateRelease(version string, draft bool) (createdRelease *github.RepositoryRelease, err error) {
14+
func CreateRelease(version string, body string, draft bool) (createdRelease *github.RepositoryRelease, err error) {
1515
if !isgithubRepository {
1616
log.Fatalln("make shure the GITHUB_REPOSITORY is available!")
1717
}
@@ -20,11 +20,20 @@ func CreateRelease(version string, draft bool) (createdRelease *github.Repositor
2020
relName := "Release " + version
2121
defaultBranch := tools.GetDefaultBranch()
2222

23+
// get body for release
24+
if body != "" {
25+
bodyFile, err := tools.CheckIsFile(body)
26+
if err == nil {
27+
body = bodyFile
28+
}
29+
}
30+
2331
releaseObject := github.RepositoryRelease{
2432
TargetCommitish: &defaultBranch,
2533
TagName: &version,
2634
Name: &relName,
2735
Draft: &draft,
36+
Body: &body,
2837
}
2938
createdRelease, _, err = GithubClient.Repositories.CreateRelease(
3039
ctx,
@@ -46,7 +55,7 @@ func CreateRelease(version string, draft bool) (createdRelease *github.Repositor
4655
}
4756

4857
// PublishRelease
49-
func PublishRelease(version string, releaseId int64, uploadArtifacts *string) (err error) {
58+
func PublishRelease(version string, body string, releaseId int64, uploadArtifacts *string) (err error) {
5059
draftFalse := false
5160
if !isgithubRepository {
5261
log.Fatalln("make shure the GITHUB_REPOSITORY is available!")
@@ -57,7 +66,7 @@ func PublishRelease(version string, releaseId int64, uploadArtifacts *string) (e
5766
releaseIdStr, releaseIdBool := os.LookupEnv("ACI_RELEASE_ID")
5867
if !releaseIdBool {
5968
log.Println("No release found, creating one...")
60-
release, err := CreateRelease(version, false)
69+
release, err := CreateRelease(version, body, false)
6170
if err != nil {
6271
log.Fatalln(err)
6372
}
@@ -92,7 +101,7 @@ func PublishRelease(version string, releaseId int64, uploadArtifacts *string) (e
92101
}
93102

94103
if uploadArtifacts != nil {
95-
filesAndInfos, err := tools.GetFilesAndInfos(uploadArtifacts)
104+
filesAndInfos, err := tools.GetAsstes(uploadArtifacts, false)
96105
if err != nil {
97106
return err
98107
}

src/service/getBuildInfos.go

Lines changed: 0 additions & 63 deletions
This file was deleted.

src/service/release.go

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package service
33
import (
44
"awesome-ci/src/acigithub"
55
"awesome-ci/src/semver"
6+
"awesome-ci/src/tools"
67
"errors"
78
"flag"
89
"fmt"
@@ -23,6 +24,7 @@ type ReleaseCreateSet struct {
2324
PatchLevel string
2425
PrNumber int
2526
DryRun bool
27+
Body string
2628
}
2729

2830
type ReleasePublishSet struct {
@@ -33,6 +35,7 @@ type ReleasePublishSet struct {
3335
Assets string
3436
PrNumber int
3537
DryRun bool
38+
Body string
3639
}
3740

3841
func ReleaseCreate(args *ReleaseCreateSet) {
@@ -65,17 +68,11 @@ func ReleaseCreate(args *ReleaseCreateSet) {
6568
fmt.Printf("Would create new release with version: %s\n", version)
6669
} else {
6770
fmt.Printf("Writing new release: %s\n", version)
68-
createdRelease, err := acigithub.CreateRelease(version, true)
71+
createdRelease, err := acigithub.CreateRelease(version, args.Body, true)
6972
if err != nil {
7073
log.Fatalln(err)
7174
}
7275
fmt.Println("Create release successful. ID:", *createdRelease.ID)
73-
envVars, err := acigithub.OpenEnvFile()
74-
if err != nil {
75-
log.Fatalln(err)
76-
}
77-
envVars.Set("ACI_RELEASE_ID", fmt.Sprint(*createdRelease.ID))
78-
envVars.SaveEnvFile()
7976
}
8077
}
8178

@@ -105,11 +102,19 @@ func ReleasePublish(args *ReleasePublishSet) {
105102
version = prInfos.NextVersion
106103
}
107104

105+
_, err = tools.GetAsstes(&args.Assets, true)
106+
if err != nil {
107+
log.Fatalln("not all specified asstes available, please check")
108+
}
109+
108110
if args.DryRun {
109111
fmt.Printf("Would publishing release: %s\n", version)
110112
} else {
111113
fmt.Printf("Publishing release: %s - %d\n", version, args.ReleaseId)
112-
acigithub.PublishRelease(version, args.ReleaseId, &args.Assets)
114+
err = acigithub.PublishRelease(version, args.Body, args.ReleaseId, &args.Assets)
115+
if err != nil {
116+
log.Fatalln(err)
117+
}
113118
}
114119
}
115120

src/tools/tools.go

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,36 +2,10 @@ package tools
22

33
import (
44
"fmt"
5-
"os"
65
"os/exec"
76
"strings"
87
)
98

10-
type UploadArtifact struct {
11-
File os.File
12-
Name string
13-
}
14-
15-
func GetFilesAndInfos(uploadArtifacts *string) (artifacts []UploadArtifact, err error) {
16-
artifactsToUpload := strings.Split(*uploadArtifacts, ",")
17-
for _, artifact := range artifactsToUpload {
18-
var sanFilename string
19-
if strings.HasPrefix(artifact, "file=") {
20-
sanFilename = artifact[5:]
21-
}
22-
file, err := os.OpenFile(sanFilename, os.O_RDWR, 0644)
23-
if err != nil {
24-
return nil, err
25-
}
26-
info, _ := file.Stat()
27-
artifacts = append(artifacts, UploadArtifact{
28-
File: *file,
29-
Name: info.Name(),
30-
})
31-
}
32-
return
33-
}
34-
359
func GetDefaultBranch() string {
3610
branch := runcmd(`git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@'`, true)
3711
return strings.TrimSuffix(branch, "\n")

tests/github_env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ ACI_VERSION=0.7.7
88
ACI_LATEST_VERSION=0.7.6
99
ACI_OWNER=fullstack-devops
1010
ACI_REPO=awesome-ci
11-
ACI_RELEASE_ID=58283687
11+
ACI_RELEASE_ID=58286218
1212
ACI_ARTIFACT_0_URL=https://github.com/eksrha/playground/releases/download/2.0.0/awesome-ci
1313
ACI_ARTIFACT_1_URL=https://github.com/eksrha/playground/releases/download/4.0.0/awesome-ci

0 commit comments

Comments
 (0)