feat: directly put values into pipeline
This commit is contained in:
parent
a76a1220de
commit
c26db1d567
6 changed files with 3807 additions and 33 deletions
36
main.go
36
main.go
|
|
@ -3,6 +3,8 @@ package main
|
|||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"secretsmanager/config"
|
||||
"secretsmanager/secretsmanager"
|
||||
|
|
@ -33,7 +35,37 @@ func main() {
|
|||
log.Fatalf("Error retrieving secrets: %s", err)
|
||||
}
|
||||
|
||||
for _, secret := range data {
|
||||
fmt.Println(secret)
|
||||
for key, value := range data {
|
||||
err = exportToPipeline(key, value)
|
||||
if err != nil {
|
||||
log.Fatalf("error exporting secret to pipeline: %s", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func exportToPipeline(key string, value interface{}) error {
|
||||
outputFile := os.Getenv("GITHUB_OUTPUT")
|
||||
if outputFile == "" {
|
||||
return fmt.Errorf("env var GITHUB_OUTPUT not found (are we running in a pipeline?)")
|
||||
}
|
||||
|
||||
f, err := os.OpenFile(outputFile, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
|
||||
if err != nil {
|
||||
return fmt.Errorf("error opening GITHUB_OUTPUT: %w", err)
|
||||
}
|
||||
defer f.Close()
|
||||
|
||||
var outputString string
|
||||
if s, ok := value.(string); ok {
|
||||
outputString = fmt.Sprintf("%s=%s\n", key, value)
|
||||
if strings.Contains(s, "\n") {
|
||||
delimiter := "EOF"
|
||||
outputString = fmt.Sprintf("%s=<<%s\n%s\n%s\n", key, delimiter, value, delimiter)
|
||||
}
|
||||
}
|
||||
|
||||
if _, err := f.WriteString(outputString); err != nil {
|
||||
return fmt.Errorf("failed writing to GITHUB_OUTPUT: %w", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue