simple-go-action/main.go

51 lines
978 B
Go

package main
import (
"fmt"
"net/http"
"os"
"time"
"github.com/gin-gonic/gin"
)
func main() {
r := gin.Default()
r.GET("/", func(c *gin.Context) {
username := readInputs()
c.String(http.StatusOK, fmt.Sprintf("username is %s\n", username))
err := writeOutputs("time", time.Now().Format("2006-01-02 15:04:05"))
if err != nil {
c.String(http.StatusInternalServerError, fmt.Sprintf("Error: %v\n", err))
return
}
})
r.Run() // 默认在 0.0.0.0:8080 启动服务
}
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
}