Jenkins: Single-file package

For this example, you’ll learn how to package hudson/jenkins which is a single-file download.

We’ll use make to script the download, but make isn’t required if you don’t want it.

Makefile:

NAME=jenkins
VERSION=2.80

.PHONY: package
package:
  rm -f jenkins.war
  wget https://updates.jenkins-ci.org/download/war/$(VERSION)/jenkins.war
  fpm -s dir -t deb -n $(NAME) -v $(VERSION) --prefix /opt/jenkins jenkins.war

Note

You’ll need wget for this Makefile to work.

Running it:

% make
rm -f jenkins.war
wget https://updates.jenkins-ci.org/download/war/2.80/jenkins.war
--2017-09-27 14:29:55--  https://updates.jenkins-ci.org/download/war/2.80/jenkins.war
Resolving updates.jenkins-ci.org (updates.jenkins-ci.org)... 52.202.51.185
Connecting to updates.jenkins-ci.org (updates.jenkins-ci.org)|52.202.51.185|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://mirrors.jenkins-ci.org/war/2.80/jenkins.war [following]
--2017-09-27 14:29:56--  http://mirrors.jenkins-ci.org/war/2.80/jenkins.war
Resolving mirrors.jenkins-ci.org (mirrors.jenkins-ci.org)... 52.202.51.185
Connecting to mirrors.jenkins-ci.org (mirrors.jenkins-ci.org)|52.202.51.185|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://ftp-nyc.osuosl.org/pub/jenkins/war/2.80/jenkins.war [following]
--2017-09-27 14:29:56--  http://ftp-nyc.osuosl.org/pub/jenkins/war/2.80/jenkins.war
Resolving ftp-nyc.osuosl.org (ftp-nyc.osuosl.org)... 64.50.233.100, 2600:3404:200:237::2
Connecting to ftp-nyc.osuosl.org (ftp-nyc.osuosl.org)|64.50.233.100|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 73094442 (70M) [application/x-java-archive]
Saving to: ‘jenkins.war’

100%[=======================================================================================================>] 73,094,442  7.71MB/s   in 11s

2017-09-27 14:30:07 (6.07 MB/s) - ‘jenkins.war’ saved [73094442/73094442]

% fpm -s dir -t deb -n jenkins -v 1.396 --prefix /opt/jenkins -d "sun-java6-jre (> 0)" jenkins.war
Created .../jenkins-1.396-1.amd64.deb

Delicious.