Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jenkinsci/port-allocator-plugin
Jenkins port-allocator plugin
https://github.com/jenkinsci/port-allocator-plugin
adopt-this-plugin
Last synced: 23 days ago
JSON representation
Jenkins port-allocator plugin
- Host: GitHub
- URL: https://github.com/jenkinsci/port-allocator-plugin
- Owner: jenkinsci
- License: mit
- Created: 2010-12-13T05:48:59.000Z (about 14 years ago)
- Default Branch: master
- Last Pushed: 2024-11-23T13:31:43.000Z (29 days ago)
- Last Synced: 2024-11-23T14:23:32.708Z (29 days ago)
- Topics: adopt-this-plugin
- Language: Java
- Homepage: https://plugins.jenkins.io/port-allocator/
- Size: 233 KB
- Stars: 10
- Watchers: 97
- Forks: 33
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Port allocator plugin
## TCP port number allocation
When you have several jobs that involve in launching a daemon process
(such as application servers), making sure that each job uses unique TCP
port numbers becomes tedious. If you don't manage this, however, two
jobs that happen to run on the same machine may use the same port, like
8080, and end up interfering each other.This plugin is written to solve this problem by letting Jenkins do the
book-keeping. With this plugin, you'd just say "I need HTTP\_PORT and
JMS\_PORT for this job", and Jenkins will assign unique available TCP
port numbers to them and expose them to the build as environment
variables.The following screenshot illustrates this configuration.
![](docs/images/config.png)
## Reserving a fixed port
Sometimes, your job requires a certain port. For example, it's not
unusual to see tests that have hard-coded port numbers, or maybe you are
testing SMTP servers that really do require port 25.In such a case, you'd just need to say "this job requires port 25, so
don't run it with any other job that requires the same port." Jenkins
will then schedule jobs accordingly so that the collision won't happen.The following screenshot illustrates this configuration.
![](docs/images/fixed-port.png)
## Shutting down run-away daemons
Often these allocated TCP ports are used to run background daemon
processes, like application servers. A typical problem in this set up is
that when a job fails abnormally, the job may fail to terminate those
servers properly. This interferes with successive builds that use the
same machine.To fix this problem, when you allocate a port (or reserve a fixed port),
you can choose one of the port types that have the knowledge of shutting
down the process. Currently, two port types are available, and more can
be added as additional plugins.- **GlassFish JMX port** that lets Jenkins shut down a run-away GlassFish through JMX.
You can configure a job to require fixed port 8686, which is the default port number for this.
- **Tomcat shutdown port** that lets Jenkins shut down a run-away
Tomcat through the shut down port. See the [Tomcat 9 configuration reference](https://tomcat.apache.org/tomcat-9.0-doc/config/server.html)
for more about this feature.The following screenshot illustrates this configuration.
![](docs/images/portType.png)
## Version History
[GitHub releases](https://github.com/jenkinsci/port-allocator-plugin/releases) provide details of recent releases.
[CHANGELOG](CHANGELOG.md) provides releases before 2014