You've already forked drone-email
							
							
		
			
				
	
	
		
			121 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			121 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| # 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: max@example.local
 | |
| 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: noreply@example.local
 | |
| smtp-from-name: noreply
 | |
| smtp-helo: hostname.example.local
 | |
| smtp-host: smtp1.example.local
 | |
| smtp-password: my-password
 | |
| smtp-username: noreply@example.local
 | |
| ```
 | |
| 
 | |
| ## 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)
 |