@mshima/generator-jhipster-nodejs 0.0.0-stage → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. package/LICENSE.txt +204 -0
  2. package/README.md +243 -2
  3. package/build-info.json +3 -0
  4. package/cli/cli-customizations.cjs +9 -0
  5. package/cli/cli.cjs +40 -0
  6. package/cli/logo.js +31 -0
  7. package/cli/version.cjs +12 -0
  8. package/generators/ci-cd/USAGE +5 -0
  9. package/generators/ci-cd/command.js +5 -0
  10. package/generators/ci-cd/generator.js +158 -0
  11. package/generators/ci-cd/index.js +2 -0
  12. package/generators/ci-cd/templates/.gitlab-ci.yml.ejs +137 -0
  13. package/generators/ci-cd/templates/azure-pipelines.yml.ejs +68 -0
  14. package/generators/ci-cd/templates/circle.yml.ejs +59 -0
  15. package/generators/ci-cd/templates/docker-registry.yml.ejs +58 -0
  16. package/generators/ci-cd/templates/github-ci.yml.ejs +90 -0
  17. package/generators/ci-cd/templates/jenkins/Jenkinsfile.ejs +104 -0
  18. package/generators/ci-cd/templates/jenkins/idea.gdsl +90 -0
  19. package/generators/ci-cd/templates/jenkins/jenkins.yml.ejs +33 -0
  20. package/generators/ci-cd/templates/travis.yml.ejs +75 -0
  21. package/generators/client/command.js +5 -0
  22. package/generators/client/generator.js +21 -0
  23. package/generators/client/generators/bootstrap/command.js +5 -0
  24. package/generators/client/generators/bootstrap/generator.js +28 -0
  25. package/generators/client/generators/bootstrap/index.js +2 -0
  26. package/generators/client/index.js +2 -0
  27. package/generators/common/generators/bootstrap/command.js +5 -0
  28. package/generators/common/generators/bootstrap/generator.js +37 -0
  29. package/generators/common/generators/bootstrap/index.js +2 -0
  30. package/generators/docker/command.js +5 -0
  31. package/generators/docker/generator.js +16 -0
  32. package/generators/docker/generators/bootstrap/command.js +5 -0
  33. package/generators/docker/generators/bootstrap/generator.js +56 -0
  34. package/generators/docker/generators/bootstrap/index.js +2 -0
  35. package/generators/docker/index.js +2 -0
  36. package/generators/docker/templates/docker/app.yml.ejs +25 -0
  37. package/generators/generator-nodejs-constants.js +32 -0
  38. package/generators/languages/command.js +5 -0
  39. package/generators/languages/generator.js +22 -0
  40. package/generators/languages/index.js +2 -0
  41. package/generators/languages/templates/src/main/webapp/i18n/en/home.json +19 -0
  42. package/generators/languages/templates/src/main/webapp/i18n/es/home.json +19 -0
  43. package/generators/languages/templates/src/main/webapp/i18n/it/home.json +19 -0
  44. package/generators/node-server/command.js +96 -0
  45. package/generators/node-server/entity-files.js +41 -0
  46. package/generators/node-server/files.js +254 -0
  47. package/generators/node-server/generator.js +702 -0
  48. package/generators/node-server/generators/bootstrap/command.js +5 -0
  49. package/generators/node-server/generators/bootstrap/generator.js +83 -0
  50. package/generators/node-server/generators/bootstrap/index.js +2 -0
  51. package/generators/node-server/index.js +2 -0
  52. package/generators/node-server/resources/package.json +76 -0
  53. package/generators/node-server/support/api-fake-data.js +54 -0
  54. package/generators/node-server/support/columns.js +73 -0
  55. package/generators/node-server/support/database.js +24 -0
  56. package/generators/node-server/support/entity-authorities.js +32 -0
  57. package/generators/node-server/support/entity-paths.js +13 -0
  58. package/generators/node-server/support/enums.js +11 -0
  59. package/generators/node-server/support/index.js +9 -0
  60. package/generators/node-server/support/mail-templates.js +82 -0
  61. package/generators/node-server/support/migrations.js +197 -0
  62. package/generators/node-server/support/validators.js +25 -0
  63. package/generators/node-server/templates/.dockerignore.ejs +16 -0
  64. package/generators/node-server/templates/.gitignore.jhi.nodejs.ejs +24 -0
  65. package/generators/node-server/templates/Dockerfile.ejs +54 -0
  66. package/generators/node-server/templates/README.md.jhi.nodejs.ejs +220 -0
  67. package/generators/node-server/templates/package.json.ejs +84 -0
  68. package/generators/node-server/templates/server/README.md.ejs +269 -0
  69. package/generators/node-server/templates/server/e2e/_entityFileName_.database.e2e-spec.ts.ejs +192 -0
  70. package/generators/node-server/templates/server/e2e/_entityFileName_.e2e-spec.ts.ejs +402 -0
  71. package/generators/node-server/templates/server/e2e/account.e2e-spec.ts.ejs +349 -0
  72. package/generators/node-server/templates/server/e2e/app.e2e-spec.ts.ejs +188 -0
  73. package/generators/node-server/templates/server/e2e/authority.e2e-spec.ts.ejs +50 -0
  74. package/generators/node-server/templates/server/e2e/cors.e2e-spec.ts.ejs +110 -0
  75. package/generators/node-server/templates/server/e2e/management.e2e-spec.ts.ejs +180 -0
  76. package/generators/node-server/templates/server/e2e/oauth2-bearer.e2e-spec.ts.ejs +71 -0
  77. package/generators/node-server/templates/server/e2e/session.e2e-spec.ts.ejs +219 -0
  78. package/generators/node-server/templates/server/e2e/setup.test.js.ejs +1 -0
  79. package/generators/node-server/templates/server/e2e/user.e2e-spec.ts.ejs +318 -0
  80. package/generators/node-server/templates/server/env.ejs +1 -0
  81. package/generators/node-server/templates/server/eslint.config.mjs.ejs +48 -0
  82. package/generators/node-server/templates/server/nest-cli.json.ejs +11 -0
  83. package/generators/node-server/templates/server/ormconfig.ts.ejs +35 -0
  84. package/generators/node-server/templates/server/package.json.ejs +143 -0
  85. package/generators/node-server/templates/server/sonar-project.properties.ejs +10 -0
  86. package/generators/node-server/templates/server/src/app.config.spec.ts.ejs +13 -0
  87. package/generators/node-server/templates/server/src/app.config.ts.ejs +179 -0
  88. package/generators/node-server/templates/server/src/app.module.ts.ejs +80 -0
  89. package/generators/node-server/templates/server/src/application-config.ts.ejs +153 -0
  90. package/generators/node-server/templates/server/src/auth/account.controller.ts.ejs +183 -0
  91. package/generators/node-server/templates/server/src/auth/auth.module.ts.ejs +104 -0
  92. package/generators/node-server/templates/server/src/auth/auth.service.ts.ejs +294 -0
  93. package/generators/node-server/templates/server/src/auth/csrf.middleware.spec.ts.ejs +65 -0
  94. package/generators/node-server/templates/server/src/auth/csrf.middleware.ts.ejs +76 -0
  95. package/generators/node-server/templates/server/src/auth/decorators/auth-user.decorator.ts.ejs +8 -0
  96. package/generators/node-server/templates/server/src/auth/decorators/roles.decorator.ts.ejs +4 -0
  97. package/generators/node-server/templates/server/src/auth/dto/key-and-password.dto.ts.ejs +17 -0
  98. package/generators/node-server/templates/server/src/auth/dto/password-change.dto.ts.ejs +17 -0
  99. package/generators/node-server/templates/server/src/auth/dto/user-login.dto.ts.ejs +21 -0
  100. package/generators/node-server/templates/server/src/auth/guards/auth.guard.ts.ejs +50 -0
  101. package/generators/node-server/templates/server/src/auth/guards/oauth2-login.guard.ts.ejs +6 -0
  102. package/generators/node-server/templates/server/src/auth/guards/roles.guard.ts.ejs +25 -0
  103. package/generators/node-server/templates/server/src/auth/index.ts.ejs +8 -0
  104. package/generators/node-server/templates/server/src/auth/jwt.config.spec.ts.ejs +22 -0
  105. package/generators/node-server/templates/server/src/auth/jwt.config.ts.ejs +29 -0
  106. package/generators/node-server/templates/server/src/auth/oauth2.authorities.spec.ts.ejs +24 -0
  107. package/generators/node-server/templates/server/src/auth/oauth2.authorities.ts.ejs +33 -0
  108. package/generators/node-server/templates/server/src/auth/oauth2.config.ts.ejs +51 -0
  109. package/generators/node-server/templates/server/src/auth/passport.jwt.strategy.ts.ejs +45 -0
  110. package/generators/node-server/templates/server/src/auth/passport.oauth2-bearer.strategy.ts.ejs +32 -0
  111. package/generators/node-server/templates/server/src/auth/passport.oauth2.strategy.spec.ts.ejs +27 -0
  112. package/generators/node-server/templates/server/src/auth/passport.oauth2.strategy.ts.ejs +44 -0
  113. package/generators/node-server/templates/server/src/auth/password-util.ts.ejs +10 -0
  114. package/generators/node-server/templates/server/src/auth/password.service.ts.ejs +34 -0
  115. package/generators/node-server/templates/server/src/auth/payload.interface.ts.ejs +14 -0
  116. package/generators/node-server/templates/server/src/auth/role-type.ts.ejs +7 -0
  117. package/generators/node-server/templates/server/src/auth/session-user.middleware.ts.ejs +33 -0
  118. package/generators/node-server/templates/server/src/auth/session.entity.ts.ejs +36 -0
  119. package/generators/node-server/templates/server/src/auth/session.store.spec.ts.ejs +99 -0
  120. package/generators/node-server/templates/server/src/auth/session.store.ts.ejs +116 -0
  121. package/generators/node-server/templates/server/src/auth/user.jwt.controller.ts.ejs +26 -0
  122. package/generators/node-server/templates/server/src/auth/user.oauth2.controller.ts.ejs +78 -0
  123. package/generators/node-server/templates/server/src/auth/user.session.controller.ts.ejs +103 -0
  124. package/generators/node-server/templates/server/src/common/common.module.ts.ejs +19 -0
  125. package/generators/node-server/templates/server/src/common/database/base.entity.ts.ejs +13 -0
  126. package/generators/node-server/templates/server/src/common/database/column-transformers.spec.ts.ejs +46 -0
  127. package/generators/node-server/templates/server/src/common/database/column-transformers.ts.ejs +69 -0
  128. package/generators/node-server/templates/server/src/common/database/column-types.spec.ts.ejs +21 -0
  129. package/generators/node-server/templates/server/src/common/database/column-types.ts.ejs +29 -0
  130. package/generators/node-server/templates/server/src/common/database/pagination.entity.spec.ts.ejs +66 -0
  131. package/generators/node-server/templates/server/src/common/database/pagination.entity.ts.ejs +108 -0
  132. package/generators/node-server/templates/server/src/common/dto/base.dto.ts.ejs +19 -0
  133. package/generators/node-server/templates/server/src/common/errors/error-constants.ts.ejs +10 -0
  134. package/generators/node-server/templates/server/src/common/errors/problem-details.filter.ts.ejs +63 -0
  135. package/generators/node-server/templates/server/src/common/errors/problem.exception.ts.ejs +92 -0
  136. package/generators/node-server/templates/server/src/common/field_validators.ejs +77 -0
  137. package/generators/node-server/templates/server/src/common/header-util.ts.ejs +105 -0
  138. package/generators/node-server/templates/server/src/common/interceptors/logging.interceptor.spec.ts.ejs +93 -0
  139. package/generators/node-server/templates/server/src/common/interceptors/logging.interceptor.ts.ejs +48 -0
  140. package/generators/node-server/templates/server/src/common/logging.spec.ts.ejs +83 -0
  141. package/generators/node-server/templates/server/src/common/logging.ts.ejs +129 -0
  142. package/generators/node-server/templates/server/src/common/metrics.spec.ts.ejs +43 -0
  143. package/generators/node-server/templates/server/src/common/metrics.ts.ejs +198 -0
  144. package/generators/node-server/templates/server/src/common/request.ts.ejs +8 -0
  145. package/generators/node-server/templates/server/src/common/sortable-properties.ts.ejs +43 -0
  146. package/generators/node-server/templates/server/src/common/updatable-properties.ts.ejs +14 -0
  147. package/generators/node-server/templates/server/src/config/application-dev.yml.ejs +118 -0
  148. package/generators/node-server/templates/server/src/config/application-prod.yml.ejs +97 -0
  149. package/generators/node-server/templates/server/src/config/application-secret-samples.yml.ejs +42 -0
  150. package/generators/node-server/templates/server/src/config/application-test.yml.ejs +68 -0
  151. package/generators/node-server/templates/server/src/config/application-tls-samples.yml.ejs +15 -0
  152. package/generators/node-server/templates/server/src/config/application-tls.yml.ejs +15 -0
  153. package/generators/node-server/templates/server/src/config/application.yml.ejs +149 -0
  154. package/generators/node-server/templates/server/src/config.spec.ts.ejs +81 -0
  155. package/generators/node-server/templates/server/src/config.ts.ejs +255 -0
  156. package/generators/node-server/templates/server/src/entities/_entityFileName_/_entityFileName_.controller.ts.ejs +178 -0
  157. package/generators/node-server/templates/server/src/entities/_entityFileName_/_entityFileName_.entity.ts.ejs +110 -0
  158. package/generators/node-server/templates/server/src/entities/_entityFileName_/_entityFileName_.mapper.ts.ejs +37 -0
  159. package/generators/node-server/templates/server/src/entities/_entityFileName_/_entityFileName_.module.ts.ejs +14 -0
  160. package/generators/node-server/templates/server/src/entities/_entityFileName_/_entityFileName_.service.ts.ejs +123 -0
  161. package/generators/node-server/templates/server/src/entities/_entityFileName_/dto/_entityFileName_.dto.ts.ejs +99 -0
  162. package/generators/node-server/templates/server/src/mail/mail.module.ts.ejs +49 -0
  163. package/generators/node-server/templates/server/src/mail/mail.service.spec.ts.ejs +105 -0
  164. package/generators/node-server/templates/server/src/mail/mail.service.ts.ejs +120 -0
  165. package/generators/node-server/templates/server/src/main.ts.ejs +114 -0
  166. package/generators/node-server/templates/server/src/management/api-docs.controller.ts.ejs +27 -0
  167. package/generators/node-server/templates/server/src/management/api-docs.service.ts.ejs +8 -0
  168. package/generators/node-server/templates/server/src/management/configuration.controller.ts.ejs +80 -0
  169. package/generators/node-server/templates/server/src/management/health.controller.spec.ts.ejs +79 -0
  170. package/generators/node-server/templates/server/src/management/health.controller.ts.ejs +87 -0
  171. package/generators/node-server/templates/server/src/management/health.module.ts.ejs +9 -0
  172. package/generators/node-server/templates/server/src/management/loggers.controller.ts.ejs +40 -0
  173. package/generators/node-server/templates/server/src/management/management.controller.spec.ts.ejs +26 -0
  174. package/generators/node-server/templates/server/src/management/management.controller.ts.ejs +34 -0
  175. package/generators/node-server/templates/server/src/management/management.module.ts.ejs +21 -0
  176. package/generators/node-server/templates/server/src/management/metrics.controller.ts.ejs +85 -0
  177. package/generators/node-server/templates/server/src/migrations/1570200270081-CreateTables.ts.ejs +64 -0
  178. package/generators/node-server/templates/server/src/migrations/1570200270082-CreateSessions.ts.ejs +26 -0
  179. package/generators/node-server/templates/server/src/migrations/1570200490072-SeedUsersRoles.ts.ejs +74 -0
  180. package/generators/node-server/templates/server/src/migrations/_entityConstraintsMigration_.ts.ejs +40 -0
  181. package/generators/node-server/templates/server/src/migrations/_entityMigration_.ts.ejs +26 -0
  182. package/generators/node-server/templates/server/src/migrations/support/schema.ts.ejs +202 -0
  183. package/generators/node-server/templates/server/src/orm.config.ts.ejs +147 -0
  184. package/generators/node-server/templates/server/src/registry/consul.service.ts.ejs +70 -0
  185. package/generators/node-server/templates/server/src/registry/eureka.service.ts.ejs +129 -0
  186. package/generators/node-server/templates/server/src/swagger.ts.ejs +24 -0
  187. package/generators/node-server/templates/server/src/tls.ts.ejs +27 -0
  188. package/generators/node-server/templates/server/src/users/authority.controller.ts.ejs +85 -0
  189. package/generators/node-server/templates/server/src/users/authority.entity.ts.ejs +22 -0
  190. package/generators/node-server/templates/server/src/users/dto/authority.dto.ts.ejs +10 -0
  191. package/generators/node-server/templates/server/src/users/dto/user.dto.ts.ejs +116 -0
  192. package/generators/node-server/templates/server/src/users/public.user.controller.ts.ejs +51 -0
  193. package/generators/node-server/templates/server/src/users/user.controller.ts.ejs +191 -0
  194. package/generators/node-server/templates/server/src/users/user.entity.ts.ejs +63 -0
  195. package/generators/node-server/templates/server/src/users/user.mapper.ts.ejs +26 -0
  196. package/generators/node-server/templates/server/src/users/user.module.ts.ejs +19 -0
  197. package/generators/node-server/templates/server/src/users/user.service.ts.ejs +156 -0
  198. package/generators/node-server/templates/server/tsconfig.build.json.ejs +9 -0
  199. package/generators/node-server/templates/server/tsconfig.json.ejs +23 -0
  200. package/generators/node-server/templates/server/typeorm-migration.ts.ejs +18 -0
  201. package/generators/node-server/templates/server/vitest.config.e2e.ts.ejs +16 -0
  202. package/generators/node-server/templates/server/vitest.config.ts.ejs +16 -0
  203. package/generators/server/command.js +7 -0
  204. package/generators/server/generator.js +20 -0
  205. package/generators/server/generators/bootstrap/command.js +5 -0
  206. package/generators/server/generators/bootstrap/generator.js +15 -0
  207. package/generators/server/generators/bootstrap/index.js +2 -0
  208. package/generators/server/index.js +2 -0
  209. package/package.json +75 -4
@@ -0,0 +1,158 @@
1
+ import CiCdGenerator from 'generator-jhipster/generators/ci-cd';
2
+
3
+ export default class extends CiCdGenerator {
4
+ constructor(args, opts, features) {
5
+ super(args, opts, { ...features, checkBlueprint: true });
6
+ }
7
+
8
+ async beforeQueue() {
9
+ await super.beforeQueue();
10
+ }
11
+
12
+ get [CiCdGenerator.PROMPTING]() {
13
+ return this.asPromptingTaskGroup({
14
+ ...super.prompting,
15
+ async promptingTemplateTask() {},
16
+ });
17
+ }
18
+
19
+ get [CiCdGenerator.CONFIGURING]() {
20
+ return this.asConfiguringTaskGroup({
21
+ ...super.configuring,
22
+ async configuringTemplateTask() {},
23
+ });
24
+ }
25
+
26
+ get [CiCdGenerator.COMPOSING]() {
27
+ return this.asComposingTaskGroup({
28
+ ...super.composing,
29
+ async composingTemplateTask() {},
30
+ });
31
+ }
32
+
33
+ get [CiCdGenerator.LOADING]() {
34
+ return this.asLoadingTaskGroup({
35
+ ...super.loading,
36
+ async loadingTemplateTask() {},
37
+ });
38
+ }
39
+
40
+ get [CiCdGenerator.PREPARING]() {
41
+ return this.asPreparingTaskGroup({
42
+ ...super.preparing,
43
+ async preparingTemplateTask() {},
44
+ });
45
+ }
46
+
47
+ get [CiCdGenerator.CONFIGURING_EACH_ENTITY]() {
48
+ return this.asConfiguringEachEntityTaskGroup({
49
+ ...super.configuringEachEntity,
50
+ async configuringEachEntityTemplateTask() {},
51
+ });
52
+ }
53
+
54
+ get [CiCdGenerator.LOADING_ENTITIES]() {
55
+ return this.asLoadingEntitiesTaskGroup({
56
+ ...super.loadingEntities,
57
+ async loadingEntitiesTemplateTask() {},
58
+ });
59
+ }
60
+
61
+ get [CiCdGenerator.PREPARING_EACH_ENTITY]() {
62
+ return this.asPreparingEachEntityTaskGroup({
63
+ ...super.preparingEachEntity,
64
+ async preparingEachEntityTemplateTask() {},
65
+ });
66
+ }
67
+
68
+ get [CiCdGenerator.PREPARING_EACH_ENTITY_FIELD]() {
69
+ return this.asPreparingEachEntityFieldTaskGroup({
70
+ ...super.preparingEachEntityField,
71
+ async preparingEachEntityFieldTemplateTask() {},
72
+ });
73
+ }
74
+
75
+ get [CiCdGenerator.PREPARING_EACH_ENTITY_RELATIONSHIP]() {
76
+ return this.asPreparingEachEntityRelationshipTaskGroup({
77
+ ...super.preparingEachEntityRelationship,
78
+ async preparingEachEntityRelationshipTemplateTask() {},
79
+ });
80
+ }
81
+
82
+ get [CiCdGenerator.POST_PREPARING_EACH_ENTITY]() {
83
+ return this.asPostPreparingEachEntityTaskGroup({
84
+ ...super.postPreparingEachEntity,
85
+ async postPreparingEachEntityTemplateTask() {},
86
+ });
87
+ }
88
+
89
+ get [CiCdGenerator.DEFAULT]() {
90
+ return this.asDefaultTaskGroup({
91
+ ...super.default,
92
+ async defaultTemplateTask() {},
93
+ });
94
+ }
95
+
96
+ get [CiCdGenerator.WRITING]() {
97
+ return this.asWritingTaskGroup({
98
+ ...super.writing,
99
+ async writingTemplateTask({ application }) {
100
+ await this.writeFiles({
101
+ sections: {
102
+ files: [],
103
+ },
104
+ context: application,
105
+ });
106
+ },
107
+ });
108
+ }
109
+
110
+ get [CiCdGenerator.WRITING_ENTITIES]() {
111
+ return this.asWritingEntitiesTaskGroup({
112
+ ...super.writingEntities,
113
+ async writingEntitiesTemplateTask() {},
114
+ });
115
+ }
116
+
117
+ get [CiCdGenerator.POST_WRITING]() {
118
+ return this.asPostWritingTaskGroup({
119
+ ...super.postWriting,
120
+ async postWritingTemplateTask() {},
121
+ });
122
+ }
123
+
124
+ get [CiCdGenerator.POST_WRITING_ENTITIES]() {
125
+ return this.asPostWritingEntitiesTaskGroup({
126
+ ...super.postWritingEntities,
127
+ async postWritingEntitiesTemplateTask() {},
128
+ });
129
+ }
130
+
131
+ get [CiCdGenerator.LOADING_TRANSLATIONS]() {
132
+ return this.asLoadingTranslationsTaskGroup({
133
+ ...super.loadingTranslations,
134
+ async loadingTranslationsTemplateTask() {},
135
+ });
136
+ }
137
+
138
+ get [CiCdGenerator.INSTALL]() {
139
+ return this.asInstallTaskGroup({
140
+ ...super.install,
141
+ async installTemplateTask() {},
142
+ });
143
+ }
144
+
145
+ get [CiCdGenerator.POST_INSTALL]() {
146
+ return this.asPostInstallTaskGroup({
147
+ ...super.postInstall,
148
+ async postInstallTemplateTask() {},
149
+ });
150
+ }
151
+
152
+ get [CiCdGenerator.END]() {
153
+ return this.asEndTaskGroup({
154
+ ...super.end,
155
+ async endTemplateTask() {},
156
+ });
157
+ }
158
+ }
@@ -0,0 +1,2 @@
1
+ export { default } from './generator.js';
2
+ export { default as command } from './command.js';
@@ -0,0 +1,137 @@
1
+ <%#
2
+ Copyright 2019-2023 the original author or authors from the JHipster project.
3
+
4
+ This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ for more information.
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ http://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ -%>
19
+ <%_ if (insideDocker) { _%>
20
+ image: jhipster/jhipster:v<%= jhipsterVersion %>
21
+ <%_ } _%>
22
+
23
+ # NHipster ci-cd
24
+
25
+ <%_ if (!skipServer) { _%>
26
+ stages:
27
+ - build
28
+ - test
29
+ - packaging
30
+ <%_ } _%>
31
+
32
+ before_script:
33
+ <%_ if (clientFramework === ANGULAR) { _%>
34
+ - export NG_CLI_ANALYTICS="false"
35
+ <%_ } _%>
36
+
37
+ server-compile:
38
+ stage: build
39
+ script:
40
+ - cd server && <%= clientPackageManager %> install
41
+ artifacts:
42
+ paths:
43
+ - server/node_modules
44
+
45
+ server-test:
46
+ stage: test
47
+ script:
48
+ - cd server && <%= clientPackageManager %> run test
49
+ artifacts:
50
+ reports:
51
+ junit: server/coverage/clover.xml
52
+ paths:
53
+ - server/coverage
54
+ expire_in: 1 day
55
+
56
+ <%_ if (!skipClient) { _%>
57
+ frontend-test:
58
+ stage: test
59
+ script:
60
+ - <%= clientPackageManager %> run test:client
61
+ artifacts:
62
+ reports:
63
+ junit: build/test-results/TESTS-results-jest.xml
64
+ paths:
65
+ - build/test-results
66
+ expire_in: 1 day
67
+ <%_ } _%>
68
+
69
+ <%_ if (!skipServer && cicdIntegrations.includes('sonar')) { _%>
70
+ #sonar-analyze:
71
+ # stage: analyze
72
+ # dependencies:
73
+ # - maven-test
74
+ # <%_ if (!skipClient) { _%>
75
+ # - frontend-test
76
+ # <%_ } _%>
77
+ # script:
78
+ # - cd server && <%= clientPackageManager %> run sonar:scanner
79
+ # allow_failure: true
80
+ <%_ } _%>
81
+
82
+ server-package:
83
+ stage: package
84
+ script:
85
+ - <%= clientPackageManager %> run build:app
86
+ artifacts:
87
+ paths:
88
+ - server/dist
89
+ expire_in: 1 day
90
+
91
+ <%_ if (cicdIntegrations.includes('heroku')) { _%>
92
+ #deploy-to-production:
93
+ # stage: deploy
94
+ # script:
95
+ # - ./mvnw -ntp com.heroku.sdk:heroku-maven-plugin:2.0.5:deploy -DskipTests -Pprod -Dheroku.buildpacks=heroku/jvm -Dheroku.appName=<%= herokuAppName %> -Dmaven.repo.local=$MAVEN_USER_HOME
96
+ # environment:
97
+ # name: production
98
+ # when: manual
99
+ <%_ } _%>
100
+
101
+ <%_ if (skipServer) { _%>
102
+ cache:
103
+ paths:
104
+ - node_modules/
105
+ stages:
106
+ - build
107
+ - test
108
+ - packaging
109
+ client-build:
110
+ stage: build
111
+ script:
112
+ - <%= clientPackageManager %> install
113
+ - <%= clientPackageManager %> run webapp:build
114
+ artifacts:
115
+ paths:
116
+ - build/
117
+ client-test:
118
+ stage: test
119
+ dependencies:
120
+ - client-build
121
+ script:
122
+ - <%= clientPackageManager %> run test
123
+ artifacts:
124
+ reports:
125
+ junit: build/test-results/TESTS-results-jest.xml
126
+ paths:
127
+ - build/test-results
128
+ expire_in: 1 day
129
+ client-prod:
130
+ stage: packaging
131
+ script:
132
+ - <%= clientPackageManager %> run webapp:prod
133
+ # - add cmd to zip the app folder build/resources/main/static
134
+ artifacts:
135
+ paths:
136
+ - build/
137
+ <%_ } _%>
@@ -0,0 +1,68 @@
1
+ <%#
2
+ Copyright 2019-2023 the original author or authors from the JHipster project.
3
+
4
+ This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ for more information.
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ http://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ -%>
19
+ # NHipster ci-cd
20
+ jobs:
21
+ - job: Test
22
+ pool:
23
+ vmImage: 'Ubuntu 16.04'
24
+ variables:
25
+ NODE_VERSION: <%= nodeVersion %>
26
+ NG_CLI_ANALYTICS: "false"
27
+
28
+ steps:
29
+ #----------------------------------------------------------------------
30
+ # Install all tools and check configuration
31
+ #----------------------------------------------------------------------
32
+ - task: NodeTool@0
33
+ inputs:
34
+ versionSpec: '<%= nodeVersion %>'
35
+ displayName: 'TOOLS: install Node.js'
36
+ <%_ if (clientPackageManager === 'npm') { _%>
37
+ - script: sudo npm install -g npm
38
+ displayName: 'TOOLS: update NPM'
39
+ - script: sudo chown -R vsts:docker /home/vsts/.npm/
40
+ displayName: 'BUGS-FIX: change /home/vsts/.npm/ permission'
41
+ <%_ } else if (clientPackageManager === 'yarn') { _%>
42
+ - script: |
43
+ curl -o- -L https://yarnpkg.com/install.sh | bash
44
+ export PATH=$HOME/.yarn/bin:$PATH
45
+ displayName: 'TOOLS: install Yarn'
46
+ <%_ } _%>
47
+ - script: sudo /etc/init.d/mysql stop
48
+ displayName: 'TOOLS: stop MySQL'
49
+ #----------------------------------------------------------------------
50
+ # Tests
51
+ #----------------------------------------------------------------------
52
+ - script: <%= clientPackageManager %> install
53
+ displayName: 'INSTALL: launch <%= clientPackageManager %> install'
54
+ <%_ if (!skipServer) { _%>
55
+ - script: |
56
+ cd server
57
+ <%= clientPackageManager %> install
58
+ npm run -DskipTests
59
+ displayName: 'TESTS: backend'
60
+ <%_ } _%>
61
+ <%_ if (!skipClient) { _%>
62
+ - script: <%= clientPackageManager %> test
63
+ displayName: 'TESTS: frontend'
64
+ <%_ } _%>
65
+ <%_ if (!skipServer) { _%>
66
+ - script: cd server && npm run build
67
+ displayName: 'TESTS: packaging'
68
+ <%_ } _%>
@@ -0,0 +1,59 @@
1
+ <%#
2
+ Copyright 2019-2023 the original author or authors from the JHipster project.
3
+
4
+ This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ for more information.
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ http://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ -%>
19
+ # NHipster ci-cd
20
+ machine:
21
+ services:
22
+ - docker
23
+ java:
24
+ version: oraclejdk8
25
+ node:
26
+ version: <%= nodeVersion %>
27
+ dependencies:
28
+ cache_directories:
29
+ - node
30
+ - node_modules
31
+ <%_ if (clientPackageManager === 'yarn') { _%>
32
+ - $HOME/.yarn-cache
33
+ <%_ } _%>
34
+ override:
35
+ <%_ if (clientPackageManager === 'npm') { _%>
36
+ - npm install -g npm
37
+ - node -v
38
+ - npm -v
39
+ - npm install
40
+ <%_ } else if (clientPackageManager === 'yarn') { _%>
41
+ # Repo for Yarn
42
+ - curl -o- -L https://yarnpkg.com/install.sh | bash
43
+ - export PATH=$HOME/.yarn/bin:$PATH
44
+ - yarn install
45
+ <%_ } _%>
46
+ test:
47
+ override:
48
+ - cd server
49
+ - <%= clientPackageManager %> install
50
+ - <%= clientPackageManager %> test
51
+ <%_ if (!skipClient) { _%>
52
+ - <%= clientPackageManager %> run <%= frontTestCommand %>
53
+ <%_ } _%>
54
+ <%_ if (cicdIntegrations.includes('circle')) { _%>
55
+ # - ./mvnw -ntp com.heroku.sdk:heroku-maven-plugin:2.0.5:deploy -DskipTests -Pprod -Dheroku.buildpacks=heroku/jvm -Dheroku.appName=<%= herokuAppName %>
56
+ <%_ } else { _%>
57
+ - cd server && npm run build
58
+ <%_ } _%>
59
+
@@ -0,0 +1,58 @@
1
+ <%#
2
+ Copyright 2019-2023 the original author or authors from the JHipster project.
3
+
4
+ This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ for more information.
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ http://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ -%>
19
+ # Documentation at https://docs.docker.com/registry/deploying
20
+ version: '2'
21
+ services:
22
+ registry:
23
+ image: registry:2
24
+ ports:
25
+ - 5000:5000
26
+ #environment:
27
+ # uncomment to enable basic auth
28
+ #- REGISTRY_AUTH=htpasswd
29
+ #- REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd
30
+ #- REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm
31
+
32
+ # uncomment to enable tls with a certificate
33
+ #- REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt
34
+ #- REGISTRY_HTTP_TLS_KEY=/certs/domain.key
35
+
36
+ # uncomment to enable tls with letsencrypt
37
+ #- REGISTRY_HTTP_TLS_LETSENCRYPT_CACHEFILE=/path/to/cache-file
38
+ #- REGISTRY_HTTP_TLS_LETSENCRYPT_EMAIL=mail@example.com
39
+ #volumes:
40
+ # uncomment to enable basic auth
41
+ # you will need to generate a `htpasswd` file using :
42
+ # docker run --entrypoint htpasswd registry:2 -Bbn admin admin > ~/volumes/registry/htpasswd
43
+ #- ~/volumes/registry/htpasswd:/auth/htpasswd:ro
44
+
45
+ # uncomment to enable tls
46
+ #- ~/volumes/registry/certs:/certs
47
+
48
+ # uncomment to persist data to a volume
49
+ #- ~/volumes/registry/data:/var/lib/registry
50
+ registry-ui:
51
+ image: konradkleine/docker-registry-frontend:v2
52
+ environment:
53
+ - ENV_DOCKER_REGISTRY_HOST=registry
54
+ - ENV_DOCKER_REGISTRY_PORT=5000
55
+ #- ENV_DOCKER_REGISTRY_USE_SSL=1
56
+ ports:
57
+ - 5080:80
58
+
@@ -0,0 +1,90 @@
1
+ <%#
2
+ Copyright 2019-2023 the original author or authors from the JHipster project.
3
+
4
+ This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ for more information.
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ http://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ -%>
19
+ # NHipster ci-cd
20
+ name: Application CI
21
+ on: [push, pull_request]
22
+ jobs:
23
+ pipeline:
24
+ name: <%= baseName %> pipeline
25
+ runs-on: ubuntu-latest
26
+ if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.pull_request.title, '[skip ci]') && !contains(github.event.pull_request.title, '[ci skip]')"
27
+ timeout-minutes: 40
28
+ env:
29
+ NODE_VERSION: <%= nodeVersion %>
30
+ <%_ if (clientFramework === ANGULAR) { _%>
31
+ NG_CLI_ANALYTICS: false
32
+ <%_ } _%>
33
+ steps:
34
+ - uses: actions/checkout@v2
35
+ - uses: actions/setup-node@v2
36
+ with:
37
+ node-version: <%= nodeVersion %>
38
+ <%_ if (prodDatabaseType === 'mysql') { _%>
39
+ - name: Stop MySQL server
40
+ run: sudo /etc/init.d/mysql stop
41
+ <%_ }
42
+ if (!skipClient) { _%>
43
+ - name: Install node.js packages
44
+ run: <%= clientPackageManager %> install
45
+ <%_ }
46
+ if (!skipServer) { _%>
47
+ - name: Run backend test
48
+ run: |
49
+ <%= clientPackageManager %> install
50
+ <%= clientPackageManager %> run test
51
+ working-directory: server
52
+ }
53
+ if (!skipClient) { _%>
54
+ - name: Run frontend test
55
+ run: <%= clientPackageManager %> run <%= frontTestCommand %>
56
+ <%_ } _%>
57
+ <%_ if (cicdIntegrations.includes('sonar')) { _%>
58
+ - name: Analyze code with SonarQube
59
+ env:
60
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
61
+ SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
62
+ run: |
63
+ if [ -n $SONAR_TOKEN ]; then
64
+ cd server && <%= clientPackageManager %> run sonar:scanner
65
+ else
66
+ echo No SONAR_TOKEN, skipping...
67
+ fi
68
+ <%_ } _%>
69
+ - name: Package application
70
+ <%_ if (!skipServer) { _%>
71
+ run: cd server && <%= clientPackageManager %> run build
72
+ <%_ } _%>
73
+ <%_ if (skipServer && !skipClient) { _%>
74
+ run: <%= clientPackageManager %> run build
75
+ <%_ } _%>
76
+ <%_ if (cicdIntegrations.includes('heroku')) { _%>
77
+ # - name: Deploy to Heroku
78
+ # if: github.event_name == 'push' && github.ref == 'refs/heads/master'
79
+ # env:
80
+ # HEROKU_API_KEY: ${{ secrets.HEROKU_API_KEY }}
81
+ # run: ./mvnw -ntp com.heroku.sdk:heroku-maven-plugin:2.0.5:deploy -DskipTests -Pprod -Dheroku.buildpacks=heroku/jvm -Dheroku.appName=<%= herokuAppName %>
82
+ <%_ } _%>
83
+ <%_ if (cicdIntegrations.includes('publishDocker')) { _%>
84
+ # - name: Build and publish docker image
85
+ # if: github.event_name == 'push' && (github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/tags/'))
86
+ # run: |
87
+ # GIT_TAG=:${GITHUB_REF#refs/tags/}
88
+ # DOCKER_TAG=${GIT_TAG#:refs/heads/master}
89
+ # ./mvnw -ntp jib:build -Djib.to.image=<%= dockerImage %>${DOCKER_TAG} -Djib.to.auth.username="${{ secrets.DOCKER_USERNAME }}" -Djib.to.auth.password="${{ secrets.DOCKER_PASSWORD }}"
90
+ <%_ } _%>
@@ -0,0 +1,104 @@
1
+ <%#
2
+ Copyright 2019-2023 the original author or authors from the JHipster project.
3
+
4
+ This file is part of the JHipster project, see https://www.jhipster.tech/
5
+ for more information.
6
+
7
+ Licensed under the Apache License, Version 2.0 (the "License");
8
+ you may not use this file except in compliance with the License.
9
+ You may obtain a copy of the License at
10
+
11
+ http://www.apache.org/licenses/LICENSE-2.0
12
+
13
+ Unless required by applicable law or agreed to in writing, software
14
+ distributed under the License is distributed on an "AS IS" BASIS,
15
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ See the License for the specific language governing permissions and
17
+ limitations under the License.
18
+ -%>
19
+ #!/usr/bin/env groovy
20
+
21
+ // NHipster ci-cd
22
+
23
+ node {
24
+ stage('checkout') {
25
+ checkout scm
26
+ }
27
+
28
+ <%_ if (sendBuildToGitlab) { _%>
29
+ gitlabCommitStatus('build') {
30
+ <%_ } _%>
31
+ <%_ if (insideDocker) { _%>
32
+ <%= gitLabIndent %> docker.image('jhipster/jhipster:v<%= jhipsterVersion %>').inside('-u jhipster<% if (buildTool === 'maven') { %> -e MAVEN_OPTS="-Duser.home=./"<% } else if (buildTool === 'gradle') { %> -e GRADLE_USER_HOME=.gradle<% } %>') {
33
+ <%_ } _%>
34
+
35
+ <%_ if (!skipClient) { _%>
36
+
37
+ <%= indent %> stage('install frontend') {
38
+ <%= indent %> sh "<%= clientPackageManager %> install"
39
+ <%= indent %> }
40
+
41
+ <%_ } _%>
42
+
43
+ <%_ if (!skipServer) { _%>
44
+ <%= indent %> stage('install server') {
45
+ <%= indent %> sh "cd server && <%= clientPackageManager %> install"
46
+ <%= indent %> }
47
+
48
+ <%= indent %> stage('backend tests') {
49
+ <%= indent %> try {
50
+ <%= indent %> sh "cd server && <%= clientPackageManager %> run test"
51
+ <%= indent %> } catch(err) {
52
+ <%= indent %> throw err
53
+ <%= indent %> } finally {
54
+ <%= indent %> junit '**/server/coverage/**/*.xml'
55
+ <%= indent %> }
56
+ <%= indent %> }
57
+ <%_ } _%>
58
+ <%_ if (!skipClient) { _%>
59
+ <%= indent %> stage('frontend tests') {
60
+ <%= indent %> try {
61
+ <%= indent %> sh "<%= clientPackageManager %> run test"
62
+ <%= indent %> } catch(err) {
63
+ <%= indent %> throw err
64
+ <%= indent %> } finally {
65
+ <%= indent %> junit '**/target/test-results/**/TEST-*.xml'
66
+ <%= indent %> }
67
+ <%= indent %> }
68
+
69
+ <%_ } _%>
70
+ <%_ if (cicdIntegrations.includes('heroku')) { _%>
71
+ /*<%= indent %> stage('package and deploy') {
72
+ <%= indent %> sh "./mvnw -ntp com.heroku.sdk:heroku-maven-plugin:2.0.5:deploy -DskipTests -Pprod -Dheroku.buildpacks=heroku/jvm -Dheroku.appName=<%= herokuAppName %>"
73
+ <%_ } else { _%>
74
+ <%= indent %> stage('packaging') {
75
+ <%= indent %> sh "./mvnw -ntp verify <% if (cicdIntegrations.includes('deploy')) { %>deploy <% } %>-Pprod -DskipTests"
76
+ <%_ } _%>
77
+ <%= indent %> archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true
78
+ <%= indent %> }
79
+ */
80
+ %_ } _%>
81
+ <%_ if (!skipServer && cicdIntegrations.includes('sonar')) { _%>
82
+ <%= indent %> stage('quality analysis') {
83
+ <%= indent %> withSonarQubeEnv('<%= sonarName %>') {
84
+ <%= indent %> sh "cd server && <%= clientPackageManager %> run sonar:scanner"
85
+ <%= indent %> }
86
+ <%= indent %> }
87
+ <%_ } _%>
88
+ <%_ if (insideDocker) { _%>
89
+ <%= gitLabIndent %> }
90
+ <%_ } _%>
91
+ <%_ if (cicdIntegrations.includes('publishDocker')) { _%>
92
+
93
+ /*<%= gitLabIndent %> def dockerImage
94
+ <%= gitLabIndent %> stage('publish docker') {
95
+ <%= gitLabIndent %> // A pre-requisite to this step is to setup authentication to the docker registry
96
+ <%= gitLabIndent %> // https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin#authentication-methods
97
+ <%= gitLabIndent %> sh "./mvnw -ntp jib:build"
98
+ <%= gitLabIndent %> }
99
+ */
100
+ <%_ } _%>
101
+ <%_ if (sendBuildToGitlab) { _%>
102
+ }
103
+ <%_ } _%>
104
+ }