Skip to content

Commit 1435a92

Browse files
authored
Merge pull request #29 from eksrvb/bugfix/tests-and-release
fix upload artifacts
2 parents 7de397b + f705b8b commit 1435a92

File tree

5 files changed

+77
-51
lines changed

5 files changed

+77
-51
lines changed

.github/workflows/Release.yaml

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,23 @@ jobs:
3030
run: echo "::set-output name=new_version::$(./awesome-ci-latest getBuildInfos -format version)"
3131
env:
3232
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
33-
- name: Build
34-
run: go build -v -ldflags "-X main.version=${{ steps.version_step.outputs.new_version }}"
33+
- name: Build amd64
34+
run: go build -v -ldflags "-X main.version=${{ steps.version_step.outputs.new_version }}" -o out/awesome-ci
35+
env:
36+
GOOS: linux
37+
GOARCH: amd64
38+
- name: Build arm64
39+
run: go build -v -ldflags "-X main.version=${{ steps.version_step.outputs.new_version }}" -o out/awesome-ci-arm64
40+
env:
41+
GOOS: linux
42+
GOARCH: arm64
3543
- name: Print version of awesome-ci
36-
run: ./awesome-ci -version
44+
run: ./out/awesome-ci -version
3745
- name: Integration testing
38-
run: ./tools/test.sh
46+
run: ./tools/test.sh ./out/awesome-ci
47+
env:
48+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3949
- name: Create Release
40-
run: ./awesome-ci createRelease -uploadArtifacts awesome-ci
50+
run: ./awesome-ci createRelease -uploadArtifacts "out/awesome-ci,out/awesome-ci-arm64"
4151
env:
4252
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

docs/examples/github_actions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ jobs:
8282
- name: Build and write version to binary
8383
run: go build -v -ldflags "-X main.version=${{ steps.version_step.outputs.new_version }}"
8484
- name: Create Release and upload
85-
run: ./awesome-ci createRelease -uploadArtifacts my-compiled-bynary
85+
run: ./awesome-ci createRelease -uploadArtifacts file=my-compiled-binary
8686
env:
8787
GITHUB_TOKEN: $\{\{ secrets.GITHUB_TOKEN \}\}
8888
```

gitOnlineController/gitOnlineController.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,14 @@ func GetLatestReleaseVersion() string {
2323
}
2424

2525
// CreateNextGitHubRelease
26-
func CreateNextGitHubRelease(releaseBranch string, newReleaseVersion string, preRelease *bool, uploadArtifacts string) {
26+
func CreateNextGitHubRelease(releaseBranch string, newReleaseVersion string, preRelease *bool, isDryRun *bool, uploadArtifacts *string) {
2727
switch CiEnvironment.GitType {
2828
case "github":
2929
github_createNextGitHubRelease(
3030
releaseBranch,
3131
newReleaseVersion,
32-
*preRelease,
32+
preRelease,
33+
isDryRun,
3334
uploadArtifacts)
3435
}
3536
}

gitOnlineController/github.go

Lines changed: 49 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

service/createRelease.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,18 @@ func CreateRelease(cienv string, overrideVersion *string, getVersionIncrease *st
3838
} else {
3939
fmt.Printf("Old version: %s\n", gitVersion)
4040
fmt.Printf("Writing new release: %s\n", newVersion)
41-
gitOnlineController.CreateNextGitHubRelease(CiEnvironment.GitInfos.DefaultBranchName, newVersion, preRelease, *uploadArtifacts)
42-
}
4341

44-
if *publishNpm != "" {
45-
// check if subfolder has slash
46-
pathToSource := *publishNpm
47-
if !strings.HasSuffix(*publishNpm, "/") {
48-
pathToSource = *publishNpm + "/"
42+
if *publishNpm != "" {
43+
// check if subfolder has slash
44+
pathToSource := *publishNpm
45+
if !strings.HasSuffix(*publishNpm, "/") {
46+
pathToSource = *publishNpm + "/"
47+
}
48+
fmt.Printf("Puplishing npm packages under path: %s\n", pathToSource)
49+
npmPublish(pathToSource, newVersion)
4950
}
50-
fmt.Printf("Puplishing npm packages under path: %s\n", pathToSource)
51-
npmPublish(pathToSource, newVersion)
5251
}
52+
gitOnlineController.CreateNextGitHubRelease(CiEnvironment.GitInfos.DefaultBranchName, newVersion, preRelease, isDryRun, uploadArtifacts)
5353
}
5454

5555
func npmPublish(pathToSource string, newVersion string) {

0 commit comments

Comments
 (0)