Publish
This commit is contained in:
		| @@ -21,30 +21,47 @@ func main() { | |||||||
|  |  | ||||||
| 	vversion := fmt.Sprintf("v%s", version) | 	vversion := fmt.Sprintf("v%s", version) | ||||||
| 	existe, _ := releases.CheckRelease(vversion) | 	existe, _ := releases.CheckRelease(vversion) | ||||||
| 	fmt.Printf(" <<   existe : %t\n", existe) |  | ||||||
|  |  | ||||||
| 	if existe == false { |     if existe == false { | ||||||
| 		err := releases.CreateRelease(vversion, occonst.PUBLISH_BRANCH) |         err := releases.CreateRelease(vversion, occonst.PUBLISH_BRANCH) | ||||||
| 		if err != nil { |         if err != nil { | ||||||
| 			fmt.Println(err) |             fmt.Println(err) | ||||||
| 			os.Exit(1) |             os.Exit(1) | ||||||
| 		} |         } | ||||||
| 	} |     } | ||||||
|  |  | ||||||
| 	idRelease, _ := releases.GetReleaseId(vversion) |     idRelease, _ := releases.GetReleaseId(vversion) | ||||||
| 	fmt.Println(fmt.Sprintf(" <<   id : %d ", idRelease)) |     if  existe == true { | ||||||
|  |         fmt.Println(fmt.Sprintf(" <<   Release existante : %d ", idRelease)) | ||||||
|  |     } else { | ||||||
|  |         fmt.Println(fmt.Sprintf(" <<   Release crée : %d ", idRelease)) | ||||||
|  |     } | ||||||
|  |  | ||||||
|  | 	assetname := "oc.json" | ||||||
| 	ficversion := fmt.Sprintf("../oc_%s.yml", version) | 	ficversion := fmt.Sprintf("../oc_%s.yml", version) | ||||||
| 	ficjson := fmt.Sprintf("../oc.json") | 	ficjson := fmt.Sprintf("../%s", assetname) | ||||||
| 	createJsonFile(ficversion, ficjson) | 	err := createJsonFile(ficversion, ficjson) | ||||||
|  |     if err != nil { | ||||||
|  |         fmt.Println(err) | ||||||
|  |         os.Exit(1) | ||||||
|  |     } | ||||||
|  |  | ||||||
| 	idAsset, _ := releases.GetAssetId(idRelease, "oc.json") |     idAsset, _ := releases.GetAssetId(idRelease, assetname) | ||||||
| 	if idAsset == 0 { |     if idAsset == 0 { | ||||||
| 		releases.CreateAsset(idRelease, ficjson) |         fmt.Println(fmt.Sprintf(" <<   Ajout Asset : %s", assetname)) | ||||||
| 	} else { |         err := releases.CreateAsset(idRelease, ficjson, assetname) | ||||||
| 		releases.UpdateAsset(idRelease, idAsset, ficjson) |         if err != nil { | ||||||
| 		fmt.Println(fmt.Sprintf(" <<   idAsset : %d ", idAsset)) |             fmt.Println(err) | ||||||
| 	} |             os.Exit(1) | ||||||
|  |         }     | ||||||
|  |     } else { | ||||||
|  |         fmt.Println(fmt.Sprintf(" <<   Mise à jour : %s (idAsset=%d) ", assetname, idAsset)) | ||||||
|  |         err := releases.UpdateAsset(idRelease, idAsset, ficjson, assetname) | ||||||
|  |         if err != nil { | ||||||
|  |             fmt.Println(err) | ||||||
|  |             os.Exit(1) | ||||||
|  |         }     | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -6,6 +6,7 @@ import ( | |||||||
|     "path/filepath" |     "path/filepath" | ||||||
|     "mime/multipart" |     "mime/multipart" | ||||||
|     "io" |     "io" | ||||||
|  |     "io/ioutil" | ||||||
|     "encoding/json" |     "encoding/json" | ||||||
|     "net/http" |     "net/http" | ||||||
|     "bytes" |     "bytes" | ||||||
| @@ -53,7 +54,7 @@ func GetAssetId(idRelease int, name string) (int, error) { | |||||||
| //   -H 'accept: application/json' \ | //   -H 'accept: application/json' \ | ||||||
| //   -H 'Content-Type: multipart/form-data' \ | //   -H 'Content-Type: multipart/form-data' \ | ||||||
| //   -F 'attachment=oc-deploy' | //   -F 'attachment=oc-deploy' | ||||||
| func CreateAsset(idRelease int, filename string, name string) (int, error) { | func CreateAsset(idRelease int, filename string, name string) (error) { | ||||||
|     url := fmt.Sprintf("%s/api/v1/repos/%s/releases/%d/assets?name=%s&token=%s", |     url := fmt.Sprintf("%s/api/v1/repos/%s/releases/%d/assets?name=%s&token=%s", | ||||||
|                         occonst.PUBLISH_URL, |                         occonst.PUBLISH_URL, | ||||||
|                         occonst.PUBLISH_REPO, |                         occonst.PUBLISH_REPO, | ||||||
| @@ -63,20 +64,42 @@ func CreateAsset(idRelease int, filename string, name string) (int, error) { | |||||||
|  |  | ||||||
|     err := uploadFile(url, "attachment", filename) |     err := uploadFile(url, "attachment", filename) | ||||||
|  |  | ||||||
|     return 0, err  |     return err  | ||||||
| } | } | ||||||
|  |  | ||||||
| func UpdateAsset(idRelease int, idAsset int,filename string, name string) (int, error) { | func UpdateAsset(idRelease int, idAsset int, filename string, name string) (error) { | ||||||
|   url := fmt.Sprintf("%s/api/v1/repos/%s/releases/%d/assets?name=%s&token=%s", |  | ||||||
|                       occonst.PUBLISH_URL, |  | ||||||
|                       occonst.PUBLISH_REPO, |  | ||||||
|                       idRelease, |  | ||||||
|                       name, |  | ||||||
|                       occonst.PUBLISH_TOKEN) |  | ||||||
|  |  | ||||||
|   err := uploadFile(url, "attachment", filename) |   url := fmt.Sprintf("%s/api/v1/repos/%s/releases/%d/assets/%d?token=%s", | ||||||
|  |             occonst.PUBLISH_URL, | ||||||
|  |             occonst.PUBLISH_REPO, | ||||||
|  |             idRelease, | ||||||
|  |             idAsset, | ||||||
|  |             occonst.PUBLISH_TOKEN) | ||||||
|  |  | ||||||
|   return 0, err |     // Create client | ||||||
|  |     client := &http.Client{} | ||||||
|  |  | ||||||
|  |     // Create request | ||||||
|  |     req, err := http.NewRequest("DELETE", url, nil) | ||||||
|  |     if err != nil { | ||||||
|  |         return err | ||||||
|  |     } | ||||||
|  |  | ||||||
|  |     // Fetch Request | ||||||
|  |     resp, err := client.Do(req) | ||||||
|  |     if err != nil { | ||||||
|  |         return err | ||||||
|  |     } | ||||||
|  |     defer resp.Body.Close() | ||||||
|  |  | ||||||
|  |     // Read Response Body | ||||||
|  |     respBody, err := ioutil.ReadAll(resp.Body) | ||||||
|  |     if err != nil { | ||||||
|  |         return err | ||||||
|  |     } | ||||||
|  |     fmt.Println(string(respBody)) | ||||||
|  |  | ||||||
|  |   return CreateAsset(idRelease, filename, name) | ||||||
| } | } | ||||||
|  |  | ||||||
| func uploadFile(url string, paramName string, filePath string) error { | func uploadFile(url string, paramName string, filePath string) error { | ||||||
| @@ -85,7 +108,7 @@ func uploadFile(url string, paramName string, filePath string) error { | |||||||
|       return err |       return err | ||||||
|     } |     } | ||||||
|     defer file.Close() |     defer file.Close() | ||||||
|    |  | ||||||
|     body := &bytes.Buffer{} |     body := &bytes.Buffer{} | ||||||
|     writer := multipart.NewWriter(body) |     writer := multipart.NewWriter(body) | ||||||
|     part, err := writer.CreateFormFile(paramName, filepath.Base(filePath)) |     part, err := writer.CreateFormFile(paramName, filepath.Base(filePath)) | ||||||
| @@ -104,14 +127,19 @@ func uploadFile(url string, paramName string, filePath string) error { | |||||||
|     request.Header.Add("accept", "application/json") |     request.Header.Add("accept", "application/json") | ||||||
|     client := &http.Client{} |     client := &http.Client{} | ||||||
|     response, err := client.Do(request) |     response, err := client.Do(request) | ||||||
|    |  | ||||||
|     if err != nil { |     if err != nil { | ||||||
|  |       fmt.Println(109, err) | ||||||
|       return err |       return err | ||||||
|     } |     } | ||||||
|     defer response.Body.Close() |     defer response.Body.Close() | ||||||
|    |    | ||||||
|     _, err := io.ReadAll(response.Body) |     if response.StatusCode > 400 { | ||||||
|  |         return fmt.Errorf(response.Status) | ||||||
|  |   } | ||||||
|  |  | ||||||
|  |     _, err1 := io.ReadAll(response.Body) | ||||||
|  |  | ||||||
|     // Handle the server response... |     // Handle the server response... | ||||||
|     return nil |     return err1 | ||||||
|   } |   } | ||||||
|   | |||||||
| @@ -3,6 +3,7 @@ package releases | |||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"io" | 	"io" | ||||||
|  | 	"io/ioutil" | ||||||
|     "strings" |     "strings" | ||||||
|     "encoding/json" |     "encoding/json" | ||||||
|     "net/http" |     "net/http" | ||||||
| @@ -86,14 +87,19 @@ func CreateRelease(version string, branch string) (error) { | |||||||
| 						occonst.PUBLISH_REPO, | 						occonst.PUBLISH_REPO, | ||||||
| 						occonst.PUBLISH_TOKEN) | 						occonst.PUBLISH_TOKEN) | ||||||
|  |  | ||||||
|  |     releasebytes, err := ioutil.ReadFile("release.txt") | ||||||
|  |     releasetxt := string(releasebytes) | ||||||
|  |     releasetxt = strings.Replace(releasetxt, "\n", "\\n", -1) | ||||||
|  |     releasetxt = fmt.Sprintf(releasetxt, version, occonst.PUBLISH_URL, occonst.PUBLISH_REPO, version) | ||||||
|  |  | ||||||
|     body := fmt.Sprintf(`{ |     body := fmt.Sprintf(`{ | ||||||
|     "body": "Version %s", |     "body": "%s", | ||||||
|     "draft": false, |     "draft": false, | ||||||
|     "name": "%s", |     "name": "%s", | ||||||
|     "prerelease": false, |     "prerelease": false, | ||||||
|     "tag_name": "%s", |     "tag_name": "%s", | ||||||
|     "target_commitish": "%s" |     "target_commitish": "%s" | ||||||
| }`, version, version, version, branch) | }`, releasetxt, version, version, branch) | ||||||
|  |  | ||||||
|     request, err := http.NewRequest("POST", url, strings.NewReader(body)) |     request, err := http.NewRequest("POST", url, strings.NewReader(body)) | ||||||
|     if err != nil { |     if err != nil { | ||||||
| @@ -110,6 +116,9 @@ func CreateRelease(version string, branch string) (error) { | |||||||
|     defer response.Body.Close() |     defer response.Body.Close() | ||||||
|  |  | ||||||
|     _, err1 := io.ReadAll(response.Body) |     _, err1 := io.ReadAll(response.Body) | ||||||
|  |     // cnt, err1 := io.ReadAll(response.Body) | ||||||
|  |     // fmt.Println(string(cnt)) | ||||||
|  |  | ||||||
|     if err1 != nil { |     if err1 != nil { | ||||||
|         return err1 |         return err1 | ||||||
|     } |     } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user