Compare commits

..

8 Commits

Author SHA1 Message Date
Ompragash Viswanathan 6cdc129e0b Update base image version to fix sec vuln and renamed Dockerfiles for clarity 2024-11-13 16:52:46 +05:30
architmallik7 00423fe0b9 fix 2024-05-03 19:15:41 +05:30
architmallik7 e56738efed Added Map for storing email 2024-05-03 17:43:16 +05:30
architmallik7 f2a9f41fff update go version 2024-04-02 20:26:25 +05:30
architmallik7 f3a970f6ac Merge branch 'test' of https://github.com/harness-community/drone-email into test 2024-04-02 20:12:34 +05:30
architmallik7 b4c2e8afc0 add manifest template 2024-04-02 20:12:13 +05:30
OP (oppenheimer) 8a78136b01 Update build.sh 2024-04-02 19:50:58 +05:30
architmallik7 c5c6593e14 Added windows support 2024-04-02 19:42:56 +05:30
7 changed files with 76 additions and 18 deletions
+8
View File
@@ -0,0 +1,8 @@
export GOPATH=""
# disable cgo
export CGO_ENABLED=0
set -e
set -x
# windows
GOOS=windows go build -o release/windows/amd64/drone-email.exe
+2 -2
View File
@@ -1,11 +1,11 @@
FROM golang:1.14-alpine as builder
FROM golang:1.22.7-alpine as builder
WORKDIR /go/src/drone-email
COPY . .
RUN GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build
FROM alpine:3.14
FROM alpine:3.20
RUN apk add --no-cache ca-certificates tzdata
@@ -1,11 +1,11 @@
FROM golang:1.15-alpine as builder
FROM golang:1.22.7-alpine as builder
WORKDIR /go/src/drone-email
COPY . .
RUN GOOS=linux GOARCH=arm GOARM=7 CGO_ENABLED=0 go build
FROM alpine:3.14
FROM alpine:3.20
RUN apk add --no-cache ca-certificates tzdata
+9
View File
@@ -0,0 +1,9 @@
FROM plugins/base:windows-ltsc2022-amd64
USER ContainerAdministrator
ENV GODEBUG=netdns=go
ADD release/windows/amd64/drone-email.exe C:/drone-email.exe
ENTRYPOINT ["C:\\drone-email.exe"]
+26
View File
@@ -0,0 +1,26 @@
image: plugins/email:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}}
{{#if build.tags}}
tags:
{{#each build.tags}}
- {{this}}
{{/each}}
{{/if}}
manifests:
-
image: plugins/email:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64
platform:
architecture: amd64
os: linux
-
image: plugins/email:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-arm64
platform:
variant: v8
architecture: arm64
os: linux
-
image: plugins/email:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}windows-amd64
platform:
architecture: amd64
os: windows
version: ltsc2022
+3
View File
@@ -0,0 +1,3 @@
module github.com/drone-plugins/drone-email
go 1.22.7
+26 -14
View File
@@ -118,31 +118,46 @@ type (
func (p Plugin) Exec() error {
var dialer *gomail.Dialer
if !p.Config.RecipientsOnly {
exists := false
for _, recipient := range p.Config.Recipients {
if recipient == p.Commit.Author.Email {
exists = true
}
}
recipientsMap := make(map[string]struct{})
if !exists {
p.Config.Recipients = append(p.Config.Recipients, p.Commit.Author.Email)
// Add recipients from the config
for _, recipient := range p.Config.Recipients {
if recipient == "" {
log.Warnf("Skipping empty recipient from config")
continue
}
recipientsMap[recipient] = struct{}{}
}
// Add commit author's email if not already present and RecipientsOnly is false
if !p.Config.RecipientsOnly {
if p.Commit.Author.Email != "" {
recipientsMap[p.Commit.Author.Email] = struct{}{}
} else {
log.Warn("Commit author email is empty")
}
}
// Add recipients from the recipients file
if p.Config.RecipientsFile != "" {
f, err := os.Open(p.Config.RecipientsFile)
if err == nil {
scanner := bufio.NewScanner(f)
for scanner.Scan() {
p.Config.Recipients = append(p.Config.Recipients, scanner.Text())
recipient := scanner.Text()
if recipient == "" {
log.Warnf("Skipping empty recipient from file %s", p.Config.RecipientsFile)
continue
}
recipientsMap[recipient] = struct{}{}
}
} else {
log.Errorf("Could not open RecipientsFile %s: %v", p.Config.RecipientsFile, err)
}
}
log.Infof("Recipients: %v", recipientsMap)
if p.Config.Username == "" && p.Config.Password == "" {
dialer = &gomail.Dialer{Host: p.Config.Host, Port: p.Config.Port}
} else {
@@ -216,10 +231,7 @@ func (p Plugin) Exec() error {
// Send emails
message := gomail.NewMessage()
for _, recipient := range p.Config.Recipients {
if len(recipient) == 0 {
continue
}
for recipient := range recipientsMap {
message.SetAddressHeader("From", p.Config.FromAddress, p.Config.FromName)
message.SetAddressHeader("To", recipient, "")
message.SetHeader("Subject", subject)