Use input and output

This commit is contained in:
Daniel Cosme
2026-02-13 14:05:43 -05:00
parent fbfd4542ca
commit 08625a8c08
2 changed files with 38 additions and 4 deletions

View File

@@ -1,5 +1,12 @@
name: "Simple Go Action"
description: "A simple Gitea action written in go"
inputs:
username:
description: "The username to print"
required: true
outputs:
time:
description: "The time when the action was called"
runs:
using: "go"
main: "main.go"

35
main.go
View File

@@ -1,13 +1,40 @@
package main
import (
"log/slog"
"fmt"
"os"
"time"
)
func main() {
slog.Info("Printing Environment")
for _, key_val := range os.Environ() {
slog.Info(key_val)
username := readInputs()
fmt.Printf("username is %s\n", username)
err := writeOutputs("time", time.Now().Format("2006-01-02 15:04:05"))
if err != nil {
panic(err)
}
}
func readInputs() string {
username := os.Getenv("INPUT_USERNAME")
return username
}
func writeOutputs(k, v string) (err error) {
msg := fmt.Sprintf("%s=%s", k, v)
outputFilepath := os.Getenv("GITHUB_OUTPUT")
f, err := os.OpenFile(outputFilepath, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644)
if err != nil {
return
}
defer func() {
if cErr := f.Close(); cErr != nil && err == nil {
err = cErr
}
}()
if _, err = f.Write([]byte(msg)); err != nil {
return
}
return
}