fix: order dependencies in ci pipeline

This commit is contained in:
Marcel_Henselin 2026-01-30 13:25:43 +01:00
parent 31df8355df
commit 49c84c6d07
3 changed files with 43 additions and 33 deletions

View file

@ -140,11 +140,21 @@ func (p *Provider) createVersionsFile() error {
}
// Build the versions file...
version := Version{}
version := Version{
Version: p.Version,
Protocols: []string{"5.1"},
Platforms: nil,
}
for _, sum := range shasums {
// get os and arch from filename
removeFileExtension := strings.Split(sum.Path, ".zip")
if len(removeFileExtension) < 1 {
log.Fatalf("error: %s does not have .zip extension", sum.Path)
}
fileNameSplit := strings.Split(removeFileExtension[0], "_")
if len(fileNameSplit) < 4 {
log.Fatalf("filename does not match our regex: %s", removeFileExtension[0])
}
// Get build target and architecture from the zip file name
target := fileNameSplit[2]
@ -178,9 +188,9 @@ func (p *Provider) createVersionsFile() error {
}
func (p *Provider) providerDirs() string {
log.Println("* Creating release/v1/providers/[namespace]/[repo]/[version] directories")
log.Println("* Creating release/v1/providers/[namespace]/[provider]/[version] directories")
target := path.Join("release", "v1", "providers", p.Namespace, p.RepoName, p.Version)
target := path.Join("release", "v1", "providers", p.Namespace, p.Provider, p.Version)
err := CreateDir(target)
if err != nil {
@ -189,6 +199,28 @@ func (p *Provider) providerDirs() string {
return target
}
func (p *Provider) CreateWellKnown() error {
log.Println("* Creating .well-known directory")
pathString := path.Join(p.RootPath, "release", ".well-known")
err := os.MkdirAll(pathString, os.ModePerm)
if err != nil && !errors.Is(err, fs.ErrExist) {
return fmt.Errorf("error creating '%s' dir: %w", pathString, err)
}
log.Println(" - Writing to .well-known/terraform.json file")
err = os.WriteFile(
fmt.Sprintf("%s/terraform.json", pathString),
[]byte(`{"providers.v1": "/v1/providers/"}`),
0644,
)
if err != nil {
return err
}
return nil
}
func CreateDir(path string) error {
log.Printf("* Creating %s directory", path)
err := os.MkdirAll(path, os.ModePerm)

View file

@ -33,7 +33,7 @@ func GetShaSumContents(distPath, repoName, version string) (ShaSums, error) {
slog.Warn("unable to parse SHA sum line", "line", line)
continue
}
shaSums = append(shaSums, ShaSum{Sum: matches[0][0], Path: matches[0][1]})
shaSums = append(shaSums, ShaSum{Sum: matches[0][1], Path: matches[0][2]})
}
return shaSums, nil
}

View file

@ -28,7 +28,7 @@ var publishCmd = &cobra.Command{
Use: "publish",
Short: "Publish terraform provider",
Long: `...`,
RunE: func(cmd *cobra.Command, args []string) error {
RunE: func(_ *cobra.Command, args []string) error {
return publish()
},
}
@ -104,44 +104,22 @@ func publish() error {
// Create release dir - only the contents of this need to be uploaded to S3
log.Printf("* Creating reelase directory")
err = os.Mkdir(path.Join(p.RootPath, "release"), os.ModePerm)
if !errors.Is(err, fs.ErrExist) {
return fmt.Errorf("error creating 'release' dir: %w", err)
err = os.MkdirAll(path.Join(p.RootPath, "release"), os.ModePerm)
if err != nil && !errors.Is(err, fs.ErrExist) {
return fmt.Errorf("error creating '%s' dir: %w", path.Join(p.RootPath, "release"), err)
}
// Create .wellKnown directory and terraform.json file
err = wellKnown()
err = p.CreateWellKnown()
if err != nil {
return fmt.Errorf("error creating '.wellKnown' dir: %s", err)
return fmt.Errorf("error creating '.well-known' dir: %w", err)
}
err = p.CreateV1Dir()
if err != nil {
return fmt.Errorf("error creating 'v1' dir: %s", err)
return fmt.Errorf("error creating 'v1' dir: %w", err)
}
log.Println("📦 Packaged Terraform Provider for private registry.")
return nil
}
// This establishes the "API" as a TF provider by responding with the correct JSON payload, by using static files
func wellKnown() error {
log.Println("* Creating .well-known directory")
err := os.Mkdir("release/.well-known", os.ModePerm)
if !errors.Is(err, fs.ErrExist) {
return fmt.Errorf("error creating 'release' dir: %w", err)
}
log.Println(" - Writing to .well-known/terraform.json file")
err = os.WriteFile(
"release/.well-known/terraform.json",
[]byte(`{"providers.v1": "/v1/providers/"}`),
0644,
)
if err != nil {
return err
}
return nil
}