Bo-Yi Wu 3dd86f956c feat: add remote trigger token support for Jenkins job execution
- Add support for passing a remote trigger token to Jenkins jobs
- Update the Jenkins constructor to accept a token parameter
- Ensure the token is included as a query parameter when triggering jobs
- Improve error reporting by including response body in error messages
- Remove unnecessary logging and refactor build parameter logic
- Update tests to use the new Jenkins constructor and token handling
- Add CLI option for specifying a remote trigger token
- Extend plugin configuration to support remote token injection

Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
2025-12-01 17:16:39 +08:00
2019-03-02 09:15:59 +08:00
2018-11-11 11:17:01 +08:00
2019-10-19 10:17:11 +08:00
2016-10-15 13:30:34 +08:00

drone-jenkins

logo

Lint and Testing Trivy Security Scan GoDoc codecov Go Report Card

Drone plugin for trigger Jenkins jobs.

Setup the Jenkins Server

Setup the Jenkins server using the docker command:

$ docker run \
  --name jenkins \
  -d --restart always \
  -p 8080:8080 -p 50000:50000 \
  -v /data/jenkins:/var/jenkins_home \
  jenkins/jenkins:lts

Please make sure that you create the /data/jenkins before starting the Jenkins. Create the new API token as below:

jenkins token

Build or Download a binary

The pre-compiled binaries can be downloaded from release page. Support the following OS type.

  • Windows amd64/386
  • Linux amd64/386
  • Darwin amd64/386

With Go installed

go install github.com/appleboy/drone-jenkins

or build the binary with the following command:

make build

Docker

Build the docker image with the following commands:

make docker

Usage

There are three ways to trigger jenkins jobs.

Usage from binary

trigger single job.

drone-jenkins \
  --host http://jenkins.example.com/ \
  --user appleboy \
  --token XXXXXXXX \
  --job drone-jenkins-plugin

trigger multiple jobs.

drone-jenkins \
  --host http://jenkins.example.com/ \
  --user appleboy \
  --token XXXXXXXX \
  --job drone-jenkins-plugin-1 \
  --job drone-jenkins-plugin-2

Usage from docker

trigger single job.

docker run --rm \
  -e JENKINS_BASE_URL=http://jenkins.example.com/
  -e JENKINS_USER=appleboy
  -e JENKINS_TOKEN=xxxxxxx
  -e JENKINS_JOB=drone-jenkins-plugin
  ghcr.io/appleboy/drone-jenkins

trigger multiple jobs.

docker run --rm \
  -e JENKINS_BASE_URL=http://jenkins.example.com/
  -e JENKINS_USER=appleboy
  -e JENKINS_TOKEN=xxxxxxx
  -e JENKINS_JOB=drone-jenkins-plugin-1,drone-jenkins-plugin-2
  ghcr.io/appleboy/drone-jenkins

Usage from drone ci

Execute from the working directory:

docker run --rm \
  -e PLUGIN_URL=http://example.com \
  -e PLUGIN_USER=xxxxxxx \
  -e PLUGIN_TOKEN=xxxxxxx \
  -e PLUGIN_JOB=xxxxxxx \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  ghcr.io/appleboy/drone-jenkins

You can get more information about how to use scp plugin in drone.

Testing

Test the package with the following command:

make test
S
Description
No description provided
Readme MIT 152 MiB
Languages
Go 94.7%
Makefile 4.2%
Dockerfile 1.1%