Skip to content

Commit 3f00822

Browse files
authored
Fix build updateReadme inside zip package (#3065)
This PR fixes a bug that did not update the readmes at the zip bundle.
1 parent d889287 commit 3f00822

File tree

5 files changed

+22
-32
lines changed

5 files changed

+22
-32
lines changed

cmd/build.go

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,11 @@ package cmd
77
import (
88
"errors"
99
"fmt"
10-
"path/filepath"
1110

1211
"github.com/spf13/cobra"
1312

1413
"github.com/elastic/elastic-package/internal/builder"
1514
"github.com/elastic/elastic-package/internal/cobraext"
16-
"github.com/elastic/elastic-package/internal/docs"
1715
"github.com/elastic/elastic-package/internal/files"
1816
"github.com/elastic/elastic-package/internal/logger"
1917
"github.com/elastic/elastic-package/internal/packages"
@@ -87,21 +85,12 @@ func buildCommandAction(cmd *cobra.Command, args []string) error {
8785
SignPackage: signPackage,
8886
SkipValidation: skipValidation,
8987
RepositoryRoot: repositoryRoot,
88+
UpdateReadmes: true,
9089
})
9190
if err != nil {
9291
return fmt.Errorf("building package failed: %w", err)
9392
}
9493

95-
targets, err := docs.UpdateReadmes(repositoryRoot, packageRoot, buildDir)
96-
if err != nil {
97-
return fmt.Errorf("updating files failed: %w", err)
98-
}
99-
100-
for _, target := range targets {
101-
fileName := filepath.Base(target)
102-
cmd.Printf("%s file rendered: %s\n", fileName, target)
103-
}
104-
10594
cmd.Printf("Package built: %s\n", target)
10695

10796
cmd.Println("Done")

internal/builder/packages.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212

1313
"github.com/magefile/mage/sh"
1414

15+
"github.com/elastic/elastic-package/internal/docs"
1516
"github.com/elastic/elastic-package/internal/environment"
1617
"github.com/elastic/elastic-package/internal/files"
1718
"github.com/elastic/elastic-package/internal/logger"
@@ -32,6 +33,7 @@ type BuildOptions struct {
3233
CreateZip bool
3334
SignPackage bool
3435
SkipValidation bool
36+
UpdateReadmes bool
3537
}
3638

3739
// BuildDirectory function locates the target build directory. If the directory doesn't exist, it will create it.
@@ -228,6 +230,13 @@ func BuildPackage(options BuildOptions) (string, error) {
228230
return "", fmt.Errorf("resolving transform manifests failed: %w", err)
229231
}
230232

233+
if options.UpdateReadmes {
234+
err = docs.UpdateReadmes(options.RepositoryRoot, options.PackageRootPath, builtPackageDir)
235+
if err != nil {
236+
return "", fmt.Errorf("updating readme files failed: %w", err)
237+
}
238+
}
239+
231240
if options.CreateZip {
232241
return buildZippedPackage(options, builtPackageDir)
233242
}

internal/docs/readme.go

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ import (
1414

1515
"github.com/pmezard/go-difflib/difflib"
1616

17-
"github.com/elastic/elastic-package/internal/builder"
1817
"github.com/elastic/elastic-package/internal/logger"
1918
)
2019

@@ -100,42 +99,38 @@ func isReadmeUpToDate(fileName, linksFilePath, packageRoot string) (bool, string
10099

101100
// UpdateReadmes function updates all .md readme files using a defined template
102101
// files. The function doesn't perform any action if the template file is not present.
103-
func UpdateReadmes(repositoryRoot *os.Root, packageRoot, buildDir string) ([]string, error) {
102+
func UpdateReadmes(repositoryRoot *os.Root, packageRoot, packageBuildRoot string) error {
104103
linksFilePath, err := linksDefinitionsFilePath(repositoryRoot)
105104
if err != nil {
106-
return nil, fmt.Errorf("locating links file failed: %w", err)
105+
return fmt.Errorf("locating links file failed: %w", err)
107106
}
108107

109108
readmeFiles, err := filepath.Glob(filepath.Join(packageRoot, "_dev", "build", "docs", "*.md"))
110109
if err != nil {
111-
return nil, fmt.Errorf("reading directory entries failed: %w", err)
110+
return fmt.Errorf("reading directory entries failed: %w", err)
112111
}
113112

114-
var targets []string
115113
for _, filePath := range readmeFiles {
116114
fileName := filepath.Base(filePath)
117-
target, err := updateReadme(fileName, linksFilePath, packageRoot, buildDir)
115+
target, err := updateReadme(fileName, linksFilePath, packageRoot, packageBuildRoot)
118116
if err != nil {
119-
return nil, fmt.Errorf("updating readme file %s failed: %w", fileName, err)
117+
return fmt.Errorf("updating readme file %s failed: %w", fileName, err)
120118
}
121119

120+
// Log only when a file has been rendered/updated.
122121
if target != "" {
123-
targets = append(targets, target)
122+
fileName := filepath.Base(target)
123+
fmt.Printf("%s file rendered: %s\n", fileName, target)
124124
}
125125
}
126-
return targets, nil
126+
return nil
127127
}
128128

129129
// updateReadme function updates a single readme file using a defined template file.
130130
// It writes the rendered file to both the package directory and the package build directory.
131-
func updateReadme(fileName, linksFilePath, packageRoot, buildDir string) (string, error) {
131+
func updateReadme(fileName, linksFilePath, packageRoot, packageBuildRoot string) (string, error) {
132132
logger.Debugf("Update the %s file", fileName)
133133

134-
packageBuildRoot, err := builder.BuildPackagesDirectory(packageRoot, buildDir)
135-
if err != nil {
136-
return "", fmt.Errorf("package build root not found: %w", err)
137-
}
138-
139134
rendered, shouldBeRendered, err := generateReadme(fileName, linksFilePath, packageRoot, packageBuildRoot)
140135
if err != nil {
141136
return "", err

internal/packages/archetype/package_test.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import (
1313
"github.com/stretchr/testify/require"
1414

1515
"github.com/elastic/elastic-package/internal/builder"
16-
"github.com/elastic/elastic-package/internal/docs"
1716
"github.com/elastic/elastic-package/internal/packages"
1817
)
1918

@@ -100,15 +99,12 @@ func buildPackage(t *testing.T, repositoryRoot *os.Root, packageRootPath string)
10099
buildDir := filepath.Join(repositoryRoot.Name(), "build")
101100
err := os.MkdirAll(buildDir, 0o755)
102101
require.NoError(t, err)
103-
_, err = docs.UpdateReadmes(repositoryRoot, packageRootPath, buildDir)
104-
if err != nil {
105-
return err
106-
}
107102

108103
_, err = builder.BuildPackage(builder.BuildOptions{
109104
PackageRootPath: packageRootPath,
110105
BuildDir: buildDir,
111106
RepositoryRoot: repositoryRoot,
107+
UpdateReadmes: true,
112108
})
113109
return err
114110
}

internal/packages/installer/factory.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ func NewForPackage(options Options) (Installer, error) {
9191
SignPackage: false,
9292
SkipValidation: options.SkipValidation,
9393
RepositoryRoot: options.RepositoryRoot,
94+
UpdateReadmes: false,
9495
})
9596
if err != nil {
9697
return nil, fmt.Errorf("failed to build package: %v", err)

0 commit comments

Comments
 (0)