Migrate script to Go
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
parra 2023-02-23 16:31:35 +01:00
parent 28011b3fe3
commit 2900a3d408
5 changed files with 98 additions and 2 deletions

View file

@ -1,11 +1,39 @@
kind: pipeline
type: docker
name: build
name: build-go
steps:
- name: Build service
image: registry.cuzo.dev/library/golang
volumes:
- name: deps
path: /go
commands:
- go build -o bin/ cmd/drone-ntfy/main.go
- go run cmd/drone-ntfy/main.go
image_pull_secrets:
- custom_mirror_registry
trigger:
event:
- push
- tag
exclude:
- pull_request
---
kind: pipeline
type: docker
name: build-image
steps:
- name: Build docker image
image: registry.cuzo.dev/plugins/docker
privileged: true
when:
branch:
- main
volumes:
- name: manifest
path: docker
@ -38,6 +66,9 @@ steps:
- name: Upload manifest
image: registry.cuzo.dev/plugins/manifest
privileged: true
when:
branch:
- main
volumes:
- name: manifest
path: docker
@ -70,7 +101,8 @@ steps:
from_secret: ntfy_password
depends_on:
- build
- build-image
- build-go
image_pull_secrets:
- custom_mirror_registry

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
.vscode/
bin/

50
cmd/drone-ntfy/main.go Normal file
View file

@ -0,0 +1,50 @@
package main
import (
"fmt"
"log"
"os"
"github.com/caarlos0/env/v7"
)
type Config struct {
BaseUrl string `env:"PLUGIN_BASE_URL" envDefault:"https://ntfy.sh"`
Topic string `env:"PLUGIN_TOPIC,required"`
Title string `env:"PLUGIN_TITLE" envDefault:"Drone notification"`
Priority string `env:"PLUGIN_PRIORITY" envDefault:"default"`
Tags []string `env:"PLUGIN_TAGS" envSeparator:","`
}
type DroneConfig struct {
BuildNumber string `envPrefix:"DRONE_"`
StageName string `envPrefix:"DRONE_"`
StageStatus string `envPrefix:"DRONE_"`
}
type CiConfig struct {
RepoName string `envPrefix:"CI_"`
CommitMessage string `envPrefix:"CI_"`
}
const DEFAULT_PRIORITY = "default"
const BASE_URL = "https://ntfy.sh"
const TOPIC = ""
const TITLE = ""
const PRIORITY = ""
const TAGS = ""
const MESSAGE = "Build $DRONE_BUILD_NUMBER of $CI_REPO_NAME at stage $DRONE_STAGE_NAME $DRONE_STAGE_STATUS.\n\nCommit: $CI_COMMIT_MESSAGE"
func main() {
fmt.Printf("Topic: %s\n", os.Environ())
cfg := Config{}
err := env.Parse(&cfg)
if err != nil {
log.Fatalf("unable to parse environment variables: %e", err)
}
fmt.Printf("Config: %v\n", cfg)
}

8
go.mod Normal file
View file

@ -0,0 +1,8 @@
module git.parravidales.es/parra/drone-ntfy
go 1.19
require (
github.com/caarlos0/env/v7 v7.0.0 // indirect
github.com/joho/godotenv v1.5.1 // indirect
)

4
go.sum Normal file
View file

@ -0,0 +1,4 @@
github.com/caarlos0/env/v7 v7.0.0 h1:cyczlTd/zREwSr9ch/mwaDl7Hse7kJuUY8hvHfXu5WI=
github.com/caarlos0/env/v7 v7.0.0/go.mod h1:LPPWniDUq4JaO6Q41vtlyikhMknqymCLBw0eX4dcH1E=
github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0=
github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4=