56 lines
1.4 KiB
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:
|
||
|
`
|