woodpecker-netlify/main.go

56 lines
1.4 KiB
Go

package main
import (
"flag"
"os"
"strconv"
"github.com/peterbourgon/ff/v3"
"github.com/rs/zerolog/log"
env "go.jolheiser.com/woodpecker-env"
)
func main() {
fs := flag.NewFlagSet("woodpecker-netlify", flag.ExitOnError)
netlifySiteID := fs.String("netlify-site-id", "", "Netlify Site ID")
netlifyAuthToken := fs.String("netlify-auth-token", "", "Netlify Auth Token")
giteaToken := fs.String("gitea-token", "", "Gitea Token")
giteaURL := fs.String("gitea-url", "", "Gitea Base URL")
buildDir := fs.String("build-dir", "dist", "Build Directory")
comment := fs.String("comment", defaultComment, "Issue Comment")
if err := ff.Parse(fs, os.Args[1:], ff.WithEnvVarNoPrefix()); err != nil {
log.Fatal().Err(err).Msg("")
}
prIndex, err := strconv.Atoi(env.CI_PULL_REQUEST)
if err != nil {
log.Fatal().Err(err).Msg("")
}
// Netlify deploy
deploy, err := netlifyDeploy(*netlifyAuthToken, *netlifySiteID, *buildDir, prIndex)
if err != nil {
log.Fatal().Err(err).Msg("")
}
if err := os.Setenv("FULL_PREVIEW_URL", deploy.DeployURL); err != nil {
log.Fatal().Err(err).Msg("")
}
// Gitea comment
c, err := giteaComment(*giteaURL, *giteaToken, *comment, prIndex)
if err != nil {
log.Fatal().Err(err).Msg("")
}
log.Info().Msgf("Issue Comment created at %s", c.HTMLURL)
}
var defaultComment = `
Hi ${CI_COMMIT_AUTHOR}!
Thank you for creating a PR!
[I've deployed a preview of the changes here.](${FULL_PREVIEW_URL})
> Beep boop, I'm a bot. :robot:
`