https://github.com/volker-raschek/drone-email
[MIRROR]: Source files of the container image volkerraschek/drone-email
https://github.com/volker-raschek/drone-email
container drone drone-email drone-plugin golang
Last synced: about 2 months ago
JSON representation
[MIRROR]: Source files of the container image volkerraschek/drone-email
- Host: GitHub
- URL: https://github.com/volker-raschek/drone-email
- Owner: volker-raschek
- License: mit
- Created: 2024-12-20T09:13:08.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2025-03-22T15:31:57.000Z (2 months ago)
- Last Synced: 2025-03-22T16:22:36.270Z (2 months ago)
- Topics: container, drone, drone-email, drone-plugin, golang
- Language: Go
- Homepage: https://hub.docker.com/r/volkerraschek/drone-email
- Size: 93.8 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# drone-email
[](https://drone.cryptic.systems/volker.raschek/drone-email)
A Drone CI/CD plugin to send build status notifications via email. The plugin is
currently available for the following architectures:- x86_64 / amd64
- aarch64 / arm64
- armv7 / arm## Compile or install the binary locally
Checkout the source code of the project and use `make` to compile or install the
binary locally.```bash
make all # compile all targets, including shell completions
make drone-email # compile only the binary
make install # install the binary with completions locally
```## Usage
All params can be defined via cli flags. A list of all provided cli-flags will
be written to `stdout` via `drone-email --help`.Alternatively can be the flags defined via environment variables or a config file.
### Environment variables
| name | description |
| ------------------------------- | ----------------------------------------------- |
| `DRONE_BUILD_CREATED` | Unix timestamp when the build has been created |
| `DRONE_BUILD_EVENT` | Drone event which triggered the build |
| `DRONE_BUILD_FINISHED` | Unix timestamp when the build has been finished |
| `DRONE_BUILD_LINK` | URL to the build pipeline |
| `DRONE_BUILD_NUMBER` | Build number |
| `DRONE_BUILD_STARTED` | Unix timestamp when the build has been started |
| `DRONE_BUILD_STATUS` | Build status |
| `DRONE_COMMIT_AUTHOR_NAME` | Name of the commit author |
| `DRONE_COMMIT_AUTHOR_AVATAR` | Avatar of the commit author |
| `DRONE_COMMIT_AUTHOR_EMAIL` | EMail of the commit author |
| `DRONE_COMMIT_BRANCH` | Commit branch |
| `DRONE_COMMIT_LINK` | Link to the commit |
| `DRONE_COMMIT_MESSAGE` | Commit message |
| `DRONE_COMMIT_REF` | Commit reference |
| `DRONE_COMMIT_SHA` | Commit sha sum |
| `DRONE_DEPLOY_TO` | Deploy target |
| `DRONE_JOB_EXIT_CODE` | Job exit code |
| `DRONE_JOB_FINISHED` | Unix timestamp when the job has been created |
| `DRONE_JOB_NUMBER` | Job number |
| `DRONE_JOB_STARTED` | Unix timestamp when the job has been started |
| `DRONE_JOB_STATUS` | Job status |
| `DRONE_PREV_BUILD_NUMBER` | Previous build number |
| `DRONE_PREV_BUILD_STATUS` | Previous build status |
| `DRONE_PREV_COMMIT_SHA` | Previous commit sha sum |
| `DRONE_PULL_REQUEST` | Number of pull-requests |
| `DRONE_REMOTE_URL` | Clone URL of the repository |
| `DRONE_REPO` | Name of the repository, including org/owner |
| `DRONE_REPO_AVATAR` | Avatar of the repository |
| `DRONE_REPO_BRANCH` | Branch of the repository |
| `DRONE_REPO_LINK` | URL of the repository |
| `DRONE_REPO_NAME` | Name of the repository, without org/owner |
| `DRONE_REPO_OWNER` | Org/Owner of the repository |
| `DRONE_REPO_PRIVATE` | Private repository |
| `DRONE_REPO_SCM` | SCM of the repository |
| `DRONE_REPO_TRUSTED` | Trusted repository |
| `DRONE_TAG` | Tag |
| `DRONE_YAML_SIGNED` | Yaml is singed |
| `DRONE_YAML_VERIFIED` | Yaml is trusted |
| `SMTP_FROM_ADDRESS` | SMTP-From Address |
| `SMTP_FROM_NAME` | SMTP-From Name |
| `SMTP_HELO` | SMTP-HELO\EHLO |
| `SMTP_HOST` | SMTP-Host |
| `SMTP_MAIL_SUBJECT` | Overwrite default mail subject template |
| `SMTP_PASSWORD` | SMTP-Password |
| `SMTP_PORT` | SMTP-Port |
| `SMTP_START_TLS` | SMTP-Start-TLS |
| `SMTP_TLS_INSECURE_SKIP_VERIFY` | Trust insecure TLS certificate |
| `SMTP_TO_ADDRESSES` | SMTP-To Addresses |
| `SMTP_USERNAME` | SMTP-Username |### Config file
Instead of environment variables, a `config.yaml` can be places in
`/etc/drone-email` or next to the binary.The yaml should contain the same parameters as the cli flags. For example:
```yaml
drone-build-link: https://drone.example.local/max.mustermann/drone-email/1
drone-build-number: 1
drone-build-status: success
drone-build-started: 1656354006
drone-commit-author-email: [email protected]
drone-commit-author-name: Max Mustermann
drone-commit-branch: master
drone-commit-sha: 06b44cbfa054f146881e7234f1773008f006a756
drone-repo: max.mustermann/drone-email
drone-repo-link: https://git.example.local/max.mustermann/drone-email
smtp-from-address: [email protected]
smtp-from-name: noreply
smtp-helo: hostname.example.local
smtp-host: smtp1.example.local
smtp-password: my-password
smtp-username: [email protected]
```## Known issues
### Multiple success emails despite failed ci step
The [drone-runner-kube](https://github.com/drone-runners/drone-runner-kube) does
not define the environment variable `DRONE_PREV_BUILD_STATUS` like the
[drone-runner-docker](https://github.com/drone-runners/drone-runner-docker).
This make it impossible to use the correct email template based on the build
state of the previous step.Furthermore, the environment variable `DRONE_BUILD_STATUS` is always defined as
`success`, even if the build has failed.Related issues:
- [Drillster/drone-email](https://github.com/Drillster/drone-email/issues/69)
- [stackoverflow - drone-ci: get status of previous step](https://stackoverflow.com/questions/73096709/drone-ci-get-status-of-previous-step)