Pārlūkot izejas kodu

correctly retrieve build_config for a release

Mohammed Nafees 4 gadi atpakaļ
vecāks
revīzija
3abbd3a97b

+ 14 - 3
api/server/handlers/release/get.go

@@ -52,6 +52,17 @@ func (c *ReleaseGetHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 		if release.GitActionConfig != nil {
 			res.GitActionConfig = release.GitActionConfig.ToGitActionConfigType()
 		}
+
+		if release.BuildConfig != 0 {
+			bc, err := c.Repo().BuildConfig().GetBuildConfig(release.BuildConfig)
+
+			if err != nil {
+				c.HandleAPIError(w, r, apierrors.NewErrInternal(err))
+				return
+			}
+
+			res.BuildConfig = bc.ToBuildConfigType()
+		}
 	} else if err != gorm.ErrRecordNotFound {
 		c.HandleAPIError(w, r, apierrors.NewErrInternal(err))
 		return
@@ -136,7 +147,7 @@ tabs:
   label: Certificates
   sections:
   - name: section_one
-    contents: 
+    contents:
     - type: heading
       label: Certificates
     - type: resource-list
@@ -156,9 +167,9 @@ tabs:
                     version: v1
                     resource: certificates
       value: |
-        .items[] | { 
+        .items[] | {
           metadata: .metadata,
-          name: "\(.spec.dnsNames | join(","))", 
+          name: "\(.spec.dnsNames | join(","))",
           label: "\(.metadata.namespace)/\(.metadata.name)",
           status: (
             ([.status.conditions[].type] | index("Ready")) as $index | (

+ 1 - 1
api/types/build_config.go

@@ -4,7 +4,7 @@ package types
 type BuildConfig struct {
 	Builder    string   `json:"builder"`
 	Buildpacks []string `json:"buildpacks"`
-	Config     []byte   `json:"data"`
+	Config     []byte   `json:"config"`
 }
 
 type CreateBuildConfigRequest struct {

+ 3 - 1
cli/cmd/pack/pack.go

@@ -40,7 +40,9 @@ func (a *Agent) Build(opts *docker.BuildOpts, buildConfig *types.BuildConfig) er
 
 	if buildConfig != nil {
 		buildOpts.Builder = buildConfig.Builder
-		buildOpts.Buildpacks = buildConfig.Buildpacks
+		if len(buildConfig.Buildpacks) > 0 {
+			buildOpts.Buildpacks = buildConfig.Buildpacks
+		}
 		// FIXME: use all the config vars
 	}
 

+ 1 - 1
internal/models/build_config.go

@@ -11,7 +11,7 @@ type BuildConfig struct {
 	gorm.Model
 
 	Name       string `json:"name"`
-	Builder    string `json:"runtime"`
+	Builder    string `json:"builder"`
 	Buildpacks string `json:"buildpacks"`
 	Config     []byte `json:"config"`
 }

+ 1 - 0
internal/repository/build_config.go

@@ -6,4 +6,5 @@ import "github.com/porter-dev/porter/internal/models"
 type BuildConfigRepository interface {
 	CreateBuildConfig(*models.BuildConfig) (*models.BuildConfig, error)
 	UpdateBuildConfig(*models.BuildConfig) (*models.BuildConfig, error)
+	GetBuildConfig(uint) (*models.BuildConfig, error)
 }

+ 11 - 0
internal/repository/gorm/build_config.go

@@ -35,3 +35,14 @@ func (repo *BuildConfigRepository) UpdateBuildConfig(bc *models.BuildConfig) (*m
 
 	return bc, nil
 }
+
+// GetBuildConfig returns a BuildConfig with the specified id
+func (repo *BuildConfigRepository) GetBuildConfig(id uint) (*models.BuildConfig, error) {
+	bc := &models.BuildConfig{}
+
+	if err := repo.db.First(bc, id).Error; err != nil {
+		return nil, err
+	}
+
+	return bc, nil
+}