summaryrefslogtreecommitdiff
path: root/devel/ruby-redmine_jenkins/Makefile
blob: 7637a97d8d941b1c83d8542cec3e888716aaf7fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# $NetBSD: Makefile,v 1.3 2016/06/09 06:23:39 wiz Exp $

GITHUB_PROJECT=	redmine_jenkins
DISTNAME=	1.0.1
PKGNAME=	${RUBY_PKGPREFIX}-${GITHUB_PROJECT}-${DISTNAME}
MASTER_SITES=	${MASTER_SITE_GITHUB:=jbox-web/}
DIST_SUBDIR=	ruby-${GITHUB_PROJECT}

MAINTAINER=	rodent@NetBSD.org
HOMEPAGE=	https://github.com/jbox-web/redmine_jenkins
COMMENT=	Plugin allows management of Jenkins projects within Redmine
LICENSE=	mit

DEPENDS+=	${RUBY_PKGPREFIX}-redmine_bootstrap_kit-[0-9]*:../../devel/ruby-redmine_bootstrap_kit

.include "../../meta-pkgs/ruby-redmine-plugins/Makefile.common"

DISTFILES+=		${DEFAULT_DISTFILES}
GEMS_DISTFILES=		haml-4.0.6.gem haml-rails-0.9.0.gem html2haml-2.0.0.gem
GEMS_DISTFILES+=	jenkins_api_client-1.3.0.gem mixlib-shellout-2.0.1.gem
GEMS_DISTFILES+=	ruby_parser-3.6.6.gem sexp_processor-4.5.1.gem
GEMS_DISTFILES+=	terminal-table-1.4.5.gem

DISTFILES+=	${GEMS_DISTFILES}
.for _gem_ in ${GEMS_DISTFILES}
DISTFILES+=	${_gem_}
SITES.${_gem_}=	https://rubygems.org/downloads/
.endfor

WRKSRC=		${WRKDIR}/${GITHUB_PROJECT}-${PKGVERSION_NOREV}
USE_TOOLS+=	bash:run pax

GEM_EXTSDIR_NEEDS_SUBDIR=	no
.include "../../lang/ruby/gem-extract.mk"

JENKINS_PLUGIN_DIR=	${REDMINE_PLUGINDIR}/redmine_jenkins

REPLACE_BASH+=	${WRKDIR}/jenkins_api_client-1.3.0/travis/setup.sh
REPLACE_BASH+=	${WRKDIR}/jenkins_api_client-1.3.0/travis/setup_crumb.sh

REPLACE_RUBY+=	${WRKDIR}/haml-4.0.6/bin/haml
REPLACE_RUBY+=	${WRKDIR}/html2haml-2.0.0/bin/html2haml
REPLACE_RUBY+=	${WRKDIR}/jenkins_api_client-1.3.0/bin/jenkinscli
REPLACE_RUBY+=	${WRKDIR}/jenkins_api_client-1.3.0/scripts/login_with_pry.rb
REPLACE_RUBY+=	${WRKDIR}/ruby_parser-3.6.6/bin/ruby_parse
REPLACE_RUBY+=	${WRKDIR}/ruby_parser-3.6.6/bin/ruby_parse_extract_error

INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/app/controllers
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/app/helpers
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/app/models
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/app/presenters
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/app/services
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/app/use_cases/jenkins_jobs
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/app/views/common
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/app/views/jenkins
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/app/views/jenkins_jobs
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/app/views/jenkins_settings
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/app/views/projects/settings
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/assets/images
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/assets/stylesheets
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/config/locales
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/db/migrate
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/lib/redmine_jenkins/hooks
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/lib/redmine_jenkins/patches
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/lib/tasks
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/spec/factories
INSTALLATION_DIRS+=	${JENKINS_PLUGIN_DIR}/spec/models

do-build:
.for _gem_ in ${DISTFILES:M*.gem:S/.gem$//g}
	${RUN} cd ${WRKDIR}/${_gem_} && ${SETENV} ${MAKE_ENV} ${RUBYGEM_ENV} \
		${RUBYGEM_NAME} build ../${_gem_}.gemspec
	${RUN} ${TEST} -f ${WRKDIR}/${_gem_}/${_gem_}.gem || \
	${FAIL_MSG} "Build of ${_gem_}.gem failed."
.endfor

RUBYGEM_INSTALL_ROOT=	${WRKDIR}/.inst
RUBYGEM_INSTALL_ROOT_OPTION=	--install-root ${RUBYGEM_INSTALL_ROOT}
_RUBYGEM_OPTIONS=	--no-update-sources	# don't cache the gem index
_RUBYGEM_OPTIONS+=	--install-dir ${PREFIX}/${GEM_HOME}
_RUBYGEM_OPTIONS+=	${RUBYGEM_INSTALL_ROOT_OPTION}
_RUBYGEM_OPTIONS+=	--ignore-dependencies
_RUBYGEM_OPTIONS+=	--no-ri --no-rdoc

.include "../../lang/ruby/rubyversion.mk"

do-install:
# Install gems
.for _gem_ in ${DISTFILES:M*.gem:S/.gem$//g}
	@${STEP_MSG} "Installing gem into installation root"
	${RUN} ${SETENV} ${MAKE_ENV} ${RUBYGEM_ENV} \
		${RUBYGEM_NAME} install --backtrace ${RUBYGEM_OPTIONS} \
			${_RUBYGEM_OPTIONS} --local ${WRKDIR}/${_gem_}/${_gem_}.gem
	@${STEP_MSG} "gem install"

	${RUN} cd ${RUBYGEM_INSTALL_ROOT}${PREFIX} && \
		pax -rwpp . ${DESTDIR}${PREFIX}
.endfor
# Install Redmine Jenkins
	${INSTALL_DATA}	${WRKSRC}/Gemfile ${WRKSRC}/init.rb \
		${DESTDIR}${PREFIX}/${JENKINS_PLUGIN_DIR}
	for i in controllers helpers models presenters services; do \
		${INSTALL_DATA}	${WRKSRC}/app/$$i/*.rb \
			${DESTDIR}${PREFIX}/${JENKINS_PLUGIN_DIR}/app/$$i; \
	done
	${INSTALL_DATA} ${WRKSRC}/app/use_cases/jenkins_jobs/*.rb \
		${DESTDIR}${PREFIX}/${JENKINS_PLUGIN_DIR}/app/use_cases/jenkins_jobs
	for i in common jenkins jenkins_jobs jenkins_settings ; do \
		${INSTALL_DATA}	${WRKSRC}/app/views/$$i/* \
			${DESTDIR}${PREFIX}/${JENKINS_PLUGIN_DIR}/app/views/$$i; \
	done
	${INSTALL_DATA} ${WRKSRC}/app/views/projects/settings/* \
		${DESTDIR}${PREFIX}/${JENKINS_PLUGIN_DIR}/app/views/projects/settings
	for i in images stylesheets; do \
		${INSTALL_DATA} ${WRKSRC}/assets/$$i/* \
			${DESTDIR}${PREFIX}/${JENKINS_PLUGIN_DIR}/assets/$$i; \
	done
	${INSTALL_DATA} ${WRKSRC}/config/routes.rb \
		 ${DESTDIR}${PREFIX}/${JENKINS_PLUGIN_DIR}/config
	${INSTALL_DATA} ${WRKSRC}/config/locales/*.yml \
		 ${DESTDIR}${PREFIX}/${JENKINS_PLUGIN_DIR}/config/locales
	${INSTALL_DATA} ${WRKSRC}/db/migrate/*.rb \
		 ${DESTDIR}${PREFIX}/${JENKINS_PLUGIN_DIR}/db/migrate
	${INSTALL_DATA} ${WRKSRC}/lib/*.rb \
		${DESTDIR}${PREFIX}/${JENKINS_PLUGIN_DIR}/lib
	${INSTALL_DATA} ${WRKSRC}/lib/redmine_jenkins/*.rb \
		${DESTDIR}${PREFIX}/${JENKINS_PLUGIN_DIR}/lib/redmine_jenkins
	for i in hooks patches; do \
		${INSTALL_DATA} ${WRKSRC}/lib/redmine_jenkins/$$i/*.* \
			${DESTDIR}${PREFIX}/${JENKINS_PLUGIN_DIR}/lib/redmine_jenkins/$$i; \
	done
	${INSTALL_DATA} ${WRKSRC}/lib/tasks/* \
		${DESTDIR}${PREFIX}/${JENKINS_PLUGIN_DIR}/lib/tasks
	${INSTALL_DATA} ${WRKSRC}/spec/*.* \
		 ${DESTDIR}${PREFIX}/${JENKINS_PLUGIN_DIR}/spec
	for i in factories models; do \
		${INSTALL_DATA} ${WRKSRC}/spec/$$i/* \
			${DESTDIR}${PREFIX}/${JENKINS_PLUGIN_DIR}/spec/$$i; \
	done

post-install:
	${CHMOD} -x ${DESTDIR}${PREFIX}/${GEM_HOME}/gems/haml-4.0.6/lib/haml/*.rb
	${CHMOD} -x ${DESTDIR}${PREFIX}/${GEM_HOME}/gems/ruby_parser-3.6.6/test/*.rb
	${CHMOD} -x ${DESTDIR}${PREFIX}/${GEM_HOME}/gems/sexp_processor-4.5.1/test/*.rb

.include "../../lang/ruby/replace.mk"
.include "../../mk/bsd.pkg.mk"