11package release
22
33import (
4+ "os"
5+ "strconv"
6+
47 "github.com/fullstack-devops/awesome-ci/internal/app/awesome-ci/service"
8+ log "github.com/sirupsen/logrus"
59
610 "github.com/spf13/cobra"
711)
812
913var (
10- Version string
11- PatchLevel string
12- ReleaseId int64
13- Assets string
14- PrNumber int
15- MergeCommitSHA string
16- ReleaseBranch string
17- DryRun bool
18- Hotfix bool
19- Body string
14+ releaseArgs service.ReleaseArgs
15+ releaseId int64
16+ assets []string
2017)
2118
2219var Cmd = & cobra.Command {
@@ -33,16 +30,7 @@ var createCmd = &cobra.Command{
3330 Short : "create a GitHub release" ,
3431 Long : `Print all infos about a pull request in GitHub.` ,
3532 Run : func (cmd * cobra.Command , args []string ) {
36- service .ReleaseCreate (& service.ReleaseCreateSet {
37- Version : Version ,
38- PatchLevel : PatchLevel ,
39- PrNumber : PrNumber ,
40- MergeCommitSHA : MergeCommitSHA ,
41- ReleaseBranch : ReleaseBranch ,
42- DryRun : DryRun ,
43- Hotfix : Hotfix ,
44- Body : Body ,
45- })
33+ service .ReleaseCreate (& releaseArgs )
4634 },
4735}
4836
@@ -51,18 +39,21 @@ var publishCmd = &cobra.Command{
5139 Short : "publish a GitHub release" ,
5240 Long : `Print all infos about a pull request in GitHub.` ,
5341 Run : func (cmd * cobra.Command , args []string ) {
54- service .ReleasePublish (& service.ReleasePublishSet {
55- Version : Version ,
56- PatchLevel : PatchLevel ,
57- PrNumber : PrNumber ,
58- MergeCommitSHA : MergeCommitSHA ,
59- ReleaseBranch : ReleaseBranch ,
60- DryRun : DryRun ,
61- Hotfix : Hotfix ,
62- Body : Body ,
63- ReleaseId : ReleaseId ,
64- Assets : Assets ,
65- })
42+
43+ if releaseId == 0 {
44+ log .Traceln ("looking of env variable 'ACI_RELEASE_ID' since flag is not set" )
45+ releaseIdStr , releaseIdBool := os .LookupEnv ("ACI_RELEASE_ID" )
46+ if releaseIdBool {
47+ releaseIdTmp , err := strconv .ParseInt (releaseIdStr , 10 , 64 )
48+ if err != nil {
49+ log .Fatalln (err )
50+ } else {
51+ releaseId = releaseIdTmp
52+ }
53+ }
54+ }
55+
56+ service .ReleasePublish (& releaseArgs , releaseId , assets )
6657 },
6758}
6859
@@ -72,16 +63,16 @@ func init() {
7263 Cmd .AddCommand (publishCmd )
7364
7465 // Flags
75- Cmd .PersistentFlags ().IntVar (& PrNumber , "prnumber" , 0 , "overwrite the issue number" )
76- Cmd .PersistentFlags ().BoolVarP (& DryRun , "dry-run" , "" , false , "make dry-run before writing version to Git by calling it" )
77- Cmd .PersistentFlags ().BoolVarP (& Hotfix , "hotfix" , "" , false , "create a hotfix release" )
78- Cmd .PersistentFlags ().StringVar (& MergeCommitSHA , "merge-sha" , "" , "set the merge sha" )
79- Cmd .PersistentFlags ().StringVar (& ReleaseBranch , "release-branch" , "" , "set release branch (default: git default)" )
80- Cmd .PersistentFlags ().StringVar (& Version , "version" , "" , "override version to Update" )
81- Cmd .PersistentFlags ().StringVarP (& Body , "body" , "b" , "" , "custom release message (markdow string or file)" )
82- Cmd .PersistentFlags ().StringVarP (& PatchLevel , "patch-level" , "L " , "" , "predefine patch level of version to Update" )
66+ Cmd .PersistentFlags ().IntVar (& releaseArgs . PrNumber , "prnumber" , 0 , "overwrite the issue number" )
67+ Cmd .PersistentFlags ().BoolVarP (& releaseArgs . DryRun , "dry-run" , "" , false , "make dry-run before writing version to Git by calling it" )
68+ Cmd .PersistentFlags ().BoolVarP (& releaseArgs . Hotfix , "hotfix" , "" , false , "create a hotfix release" )
69+ Cmd .PersistentFlags ().StringVar (& releaseArgs . MergeCommitSHA , "merge-sha" , "" , "set the merge sha" )
70+ Cmd .PersistentFlags ().StringVar (& releaseArgs . ReleaseBranch , "release-branch" , "" , "set release branch (default: git default)" )
71+ Cmd .PersistentFlags ().StringVar (& releaseArgs . Version , "version" , "" , "override version to Update" )
72+ Cmd .PersistentFlags ().StringVarP (& releaseArgs . Body , "body" , "b" , "" , "custom release message (markdown string or file)" )
73+ Cmd .PersistentFlags ().StringVarP (& releaseArgs . PatchLevel , "patch-level" , "l " , "" , "predefine patch level of version to Update" )
8374
8475 // exclusive Flags
85- publishCmd .Flags ().Int64VarP (& ReleaseId , "releaseid " , "" , 0 , "publish an early defined release" )
86- publishCmd .Flags ().StringVarP ( & Assets , "assets " , "a" , "" , "define output by get" )
76+ publishCmd .Flags ().Int64VarP (& releaseId , "release-id " , "" , 0 , "publish an early defined release (also looking for env ACI_RELEASE_ID) " )
77+ publishCmd .Flags ().StringArrayVarP ( & assets , "asset " , "a" , [] string {} , "define output by get" )
8778}
0 commit comments