@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.
- package/LICENSE.txt +204 -0
- package/README.md +243 -2
- package/build-info.json +3 -0
- package/cli/cli-customizations.cjs +9 -0
- package/cli/cli.cjs +40 -0
- package/cli/logo.js +31 -0
- package/cli/version.cjs +12 -0
- package/generators/ci-cd/USAGE +5 -0
- package/generators/ci-cd/command.js +5 -0
- package/generators/ci-cd/generator.js +158 -0
- package/generators/ci-cd/index.js +2 -0
- package/generators/ci-cd/templates/.gitlab-ci.yml.ejs +137 -0
- package/generators/ci-cd/templates/azure-pipelines.yml.ejs +68 -0
- package/generators/ci-cd/templates/circle.yml.ejs +59 -0
- package/generators/ci-cd/templates/docker-registry.yml.ejs +58 -0
- package/generators/ci-cd/templates/github-ci.yml.ejs +90 -0
- package/generators/ci-cd/templates/jenkins/Jenkinsfile.ejs +104 -0
- package/generators/ci-cd/templates/jenkins/idea.gdsl +90 -0
- package/generators/ci-cd/templates/jenkins/jenkins.yml.ejs +33 -0
- package/generators/ci-cd/templates/travis.yml.ejs +75 -0
- package/generators/client/command.js +5 -0
- package/generators/client/generator.js +21 -0
- package/generators/client/generators/bootstrap/command.js +5 -0
- package/generators/client/generators/bootstrap/generator.js +28 -0
- package/generators/client/generators/bootstrap/index.js +2 -0
- package/generators/client/index.js +2 -0
- package/generators/common/generators/bootstrap/command.js +5 -0
- package/generators/common/generators/bootstrap/generator.js +37 -0
- package/generators/common/generators/bootstrap/index.js +2 -0
- package/generators/docker/command.js +5 -0
- package/generators/docker/generator.js +16 -0
- package/generators/docker/generators/bootstrap/command.js +5 -0
- package/generators/docker/generators/bootstrap/generator.js +56 -0
- package/generators/docker/generators/bootstrap/index.js +2 -0
- package/generators/docker/index.js +2 -0
- package/generators/docker/templates/docker/app.yml.ejs +25 -0
- package/generators/generator-nodejs-constants.js +32 -0
- package/generators/languages/command.js +5 -0
- package/generators/languages/generator.js +22 -0
- package/generators/languages/index.js +2 -0
- package/generators/languages/templates/src/main/webapp/i18n/en/home.json +19 -0
- package/generators/languages/templates/src/main/webapp/i18n/es/home.json +19 -0
- package/generators/languages/templates/src/main/webapp/i18n/it/home.json +19 -0
- package/generators/node-server/command.js +96 -0
- package/generators/node-server/entity-files.js +41 -0
- package/generators/node-server/files.js +254 -0
- package/generators/node-server/generator.js +702 -0
- package/generators/node-server/generators/bootstrap/command.js +5 -0
- package/generators/node-server/generators/bootstrap/generator.js +83 -0
- package/generators/node-server/generators/bootstrap/index.js +2 -0
- package/generators/node-server/index.js +2 -0
- package/generators/node-server/resources/package.json +76 -0
- package/generators/node-server/support/api-fake-data.js +54 -0
- package/generators/node-server/support/columns.js +73 -0
- package/generators/node-server/support/database.js +24 -0
- package/generators/node-server/support/entity-authorities.js +32 -0
- package/generators/node-server/support/entity-paths.js +13 -0
- package/generators/node-server/support/enums.js +11 -0
- package/generators/node-server/support/index.js +9 -0
- package/generators/node-server/support/mail-templates.js +82 -0
- package/generators/node-server/support/migrations.js +197 -0
- package/generators/node-server/support/validators.js +25 -0
- package/generators/node-server/templates/.dockerignore.ejs +16 -0
- package/generators/node-server/templates/.gitignore.jhi.nodejs.ejs +24 -0
- package/generators/node-server/templates/Dockerfile.ejs +54 -0
- package/generators/node-server/templates/README.md.jhi.nodejs.ejs +220 -0
- package/generators/node-server/templates/package.json.ejs +84 -0
- package/generators/node-server/templates/server/README.md.ejs +269 -0
- package/generators/node-server/templates/server/e2e/_entityFileName_.database.e2e-spec.ts.ejs +192 -0
- package/generators/node-server/templates/server/e2e/_entityFileName_.e2e-spec.ts.ejs +402 -0
- package/generators/node-server/templates/server/e2e/account.e2e-spec.ts.ejs +349 -0
- package/generators/node-server/templates/server/e2e/app.e2e-spec.ts.ejs +188 -0
- package/generators/node-server/templates/server/e2e/authority.e2e-spec.ts.ejs +50 -0
- package/generators/node-server/templates/server/e2e/cors.e2e-spec.ts.ejs +110 -0
- package/generators/node-server/templates/server/e2e/management.e2e-spec.ts.ejs +180 -0
- package/generators/node-server/templates/server/e2e/oauth2-bearer.e2e-spec.ts.ejs +71 -0
- package/generators/node-server/templates/server/e2e/session.e2e-spec.ts.ejs +219 -0
- package/generators/node-server/templates/server/e2e/setup.test.js.ejs +1 -0
- package/generators/node-server/templates/server/e2e/user.e2e-spec.ts.ejs +318 -0
- package/generators/node-server/templates/server/env.ejs +1 -0
- package/generators/node-server/templates/server/eslint.config.mjs.ejs +48 -0
- package/generators/node-server/templates/server/nest-cli.json.ejs +11 -0
- package/generators/node-server/templates/server/ormconfig.ts.ejs +35 -0
- package/generators/node-server/templates/server/package.json.ejs +143 -0
- package/generators/node-server/templates/server/sonar-project.properties.ejs +10 -0
- package/generators/node-server/templates/server/src/app.config.spec.ts.ejs +13 -0
- package/generators/node-server/templates/server/src/app.config.ts.ejs +179 -0
- package/generators/node-server/templates/server/src/app.module.ts.ejs +80 -0
- package/generators/node-server/templates/server/src/application-config.ts.ejs +153 -0
- package/generators/node-server/templates/server/src/auth/account.controller.ts.ejs +183 -0
- package/generators/node-server/templates/server/src/auth/auth.module.ts.ejs +104 -0
- package/generators/node-server/templates/server/src/auth/auth.service.ts.ejs +294 -0
- package/generators/node-server/templates/server/src/auth/csrf.middleware.spec.ts.ejs +65 -0
- package/generators/node-server/templates/server/src/auth/csrf.middleware.ts.ejs +76 -0
- package/generators/node-server/templates/server/src/auth/decorators/auth-user.decorator.ts.ejs +8 -0
- package/generators/node-server/templates/server/src/auth/decorators/roles.decorator.ts.ejs +4 -0
- package/generators/node-server/templates/server/src/auth/dto/key-and-password.dto.ts.ejs +17 -0
- package/generators/node-server/templates/server/src/auth/dto/password-change.dto.ts.ejs +17 -0
- package/generators/node-server/templates/server/src/auth/dto/user-login.dto.ts.ejs +21 -0
- package/generators/node-server/templates/server/src/auth/guards/auth.guard.ts.ejs +50 -0
- package/generators/node-server/templates/server/src/auth/guards/oauth2-login.guard.ts.ejs +6 -0
- package/generators/node-server/templates/server/src/auth/guards/roles.guard.ts.ejs +25 -0
- package/generators/node-server/templates/server/src/auth/index.ts.ejs +8 -0
- package/generators/node-server/templates/server/src/auth/jwt.config.spec.ts.ejs +22 -0
- package/generators/node-server/templates/server/src/auth/jwt.config.ts.ejs +29 -0
- package/generators/node-server/templates/server/src/auth/oauth2.authorities.spec.ts.ejs +24 -0
- package/generators/node-server/templates/server/src/auth/oauth2.authorities.ts.ejs +33 -0
- package/generators/node-server/templates/server/src/auth/oauth2.config.ts.ejs +51 -0
- package/generators/node-server/templates/server/src/auth/passport.jwt.strategy.ts.ejs +45 -0
- package/generators/node-server/templates/server/src/auth/passport.oauth2-bearer.strategy.ts.ejs +32 -0
- package/generators/node-server/templates/server/src/auth/passport.oauth2.strategy.spec.ts.ejs +27 -0
- package/generators/node-server/templates/server/src/auth/passport.oauth2.strategy.ts.ejs +44 -0
- package/generators/node-server/templates/server/src/auth/password-util.ts.ejs +10 -0
- package/generators/node-server/templates/server/src/auth/password.service.ts.ejs +34 -0
- package/generators/node-server/templates/server/src/auth/payload.interface.ts.ejs +14 -0
- package/generators/node-server/templates/server/src/auth/role-type.ts.ejs +7 -0
- package/generators/node-server/templates/server/src/auth/session-user.middleware.ts.ejs +33 -0
- package/generators/node-server/templates/server/src/auth/session.entity.ts.ejs +36 -0
- package/generators/node-server/templates/server/src/auth/session.store.spec.ts.ejs +99 -0
- package/generators/node-server/templates/server/src/auth/session.store.ts.ejs +116 -0
- package/generators/node-server/templates/server/src/auth/user.jwt.controller.ts.ejs +26 -0
- package/generators/node-server/templates/server/src/auth/user.oauth2.controller.ts.ejs +78 -0
- package/generators/node-server/templates/server/src/auth/user.session.controller.ts.ejs +103 -0
- package/generators/node-server/templates/server/src/common/common.module.ts.ejs +19 -0
- package/generators/node-server/templates/server/src/common/database/base.entity.ts.ejs +13 -0
- package/generators/node-server/templates/server/src/common/database/column-transformers.spec.ts.ejs +46 -0
- package/generators/node-server/templates/server/src/common/database/column-transformers.ts.ejs +69 -0
- package/generators/node-server/templates/server/src/common/database/column-types.spec.ts.ejs +21 -0
- package/generators/node-server/templates/server/src/common/database/column-types.ts.ejs +29 -0
- package/generators/node-server/templates/server/src/common/database/pagination.entity.spec.ts.ejs +66 -0
- package/generators/node-server/templates/server/src/common/database/pagination.entity.ts.ejs +108 -0
- package/generators/node-server/templates/server/src/common/dto/base.dto.ts.ejs +19 -0
- package/generators/node-server/templates/server/src/common/errors/error-constants.ts.ejs +10 -0
- package/generators/node-server/templates/server/src/common/errors/problem-details.filter.ts.ejs +63 -0
- package/generators/node-server/templates/server/src/common/errors/problem.exception.ts.ejs +92 -0
- package/generators/node-server/templates/server/src/common/field_validators.ejs +77 -0
- package/generators/node-server/templates/server/src/common/header-util.ts.ejs +105 -0
- package/generators/node-server/templates/server/src/common/interceptors/logging.interceptor.spec.ts.ejs +93 -0
- package/generators/node-server/templates/server/src/common/interceptors/logging.interceptor.ts.ejs +48 -0
- package/generators/node-server/templates/server/src/common/logging.spec.ts.ejs +83 -0
- package/generators/node-server/templates/server/src/common/logging.ts.ejs +129 -0
- package/generators/node-server/templates/server/src/common/metrics.spec.ts.ejs +43 -0
- package/generators/node-server/templates/server/src/common/metrics.ts.ejs +198 -0
- package/generators/node-server/templates/server/src/common/request.ts.ejs +8 -0
- package/generators/node-server/templates/server/src/common/sortable-properties.ts.ejs +43 -0
- package/generators/node-server/templates/server/src/common/updatable-properties.ts.ejs +14 -0
- package/generators/node-server/templates/server/src/config/application-dev.yml.ejs +118 -0
- package/generators/node-server/templates/server/src/config/application-prod.yml.ejs +97 -0
- package/generators/node-server/templates/server/src/config/application-secret-samples.yml.ejs +42 -0
- package/generators/node-server/templates/server/src/config/application-test.yml.ejs +68 -0
- package/generators/node-server/templates/server/src/config/application-tls-samples.yml.ejs +15 -0
- package/generators/node-server/templates/server/src/config/application-tls.yml.ejs +15 -0
- package/generators/node-server/templates/server/src/config/application.yml.ejs +149 -0
- package/generators/node-server/templates/server/src/config.spec.ts.ejs +81 -0
- package/generators/node-server/templates/server/src/config.ts.ejs +255 -0
- package/generators/node-server/templates/server/src/entities/_entityFileName_/_entityFileName_.controller.ts.ejs +178 -0
- package/generators/node-server/templates/server/src/entities/_entityFileName_/_entityFileName_.entity.ts.ejs +110 -0
- package/generators/node-server/templates/server/src/entities/_entityFileName_/_entityFileName_.mapper.ts.ejs +37 -0
- package/generators/node-server/templates/server/src/entities/_entityFileName_/_entityFileName_.module.ts.ejs +14 -0
- package/generators/node-server/templates/server/src/entities/_entityFileName_/_entityFileName_.service.ts.ejs +123 -0
- package/generators/node-server/templates/server/src/entities/_entityFileName_/dto/_entityFileName_.dto.ts.ejs +99 -0
- package/generators/node-server/templates/server/src/mail/mail.module.ts.ejs +49 -0
- package/generators/node-server/templates/server/src/mail/mail.service.spec.ts.ejs +105 -0
- package/generators/node-server/templates/server/src/mail/mail.service.ts.ejs +120 -0
- package/generators/node-server/templates/server/src/main.ts.ejs +114 -0
- package/generators/node-server/templates/server/src/management/api-docs.controller.ts.ejs +27 -0
- package/generators/node-server/templates/server/src/management/api-docs.service.ts.ejs +8 -0
- package/generators/node-server/templates/server/src/management/configuration.controller.ts.ejs +80 -0
- package/generators/node-server/templates/server/src/management/health.controller.spec.ts.ejs +79 -0
- package/generators/node-server/templates/server/src/management/health.controller.ts.ejs +87 -0
- package/generators/node-server/templates/server/src/management/health.module.ts.ejs +9 -0
- package/generators/node-server/templates/server/src/management/loggers.controller.ts.ejs +40 -0
- package/generators/node-server/templates/server/src/management/management.controller.spec.ts.ejs +26 -0
- package/generators/node-server/templates/server/src/management/management.controller.ts.ejs +34 -0
- package/generators/node-server/templates/server/src/management/management.module.ts.ejs +21 -0
- package/generators/node-server/templates/server/src/management/metrics.controller.ts.ejs +85 -0
- package/generators/node-server/templates/server/src/migrations/1570200270081-CreateTables.ts.ejs +64 -0
- package/generators/node-server/templates/server/src/migrations/1570200270082-CreateSessions.ts.ejs +26 -0
- package/generators/node-server/templates/server/src/migrations/1570200490072-SeedUsersRoles.ts.ejs +74 -0
- package/generators/node-server/templates/server/src/migrations/_entityConstraintsMigration_.ts.ejs +40 -0
- package/generators/node-server/templates/server/src/migrations/_entityMigration_.ts.ejs +26 -0
- package/generators/node-server/templates/server/src/migrations/support/schema.ts.ejs +202 -0
- package/generators/node-server/templates/server/src/orm.config.ts.ejs +147 -0
- package/generators/node-server/templates/server/src/registry/consul.service.ts.ejs +70 -0
- package/generators/node-server/templates/server/src/registry/eureka.service.ts.ejs +129 -0
- package/generators/node-server/templates/server/src/swagger.ts.ejs +24 -0
- package/generators/node-server/templates/server/src/tls.ts.ejs +27 -0
- package/generators/node-server/templates/server/src/users/authority.controller.ts.ejs +85 -0
- package/generators/node-server/templates/server/src/users/authority.entity.ts.ejs +22 -0
- package/generators/node-server/templates/server/src/users/dto/authority.dto.ts.ejs +10 -0
- package/generators/node-server/templates/server/src/users/dto/user.dto.ts.ejs +116 -0
- package/generators/node-server/templates/server/src/users/public.user.controller.ts.ejs +51 -0
- package/generators/node-server/templates/server/src/users/user.controller.ts.ejs +191 -0
- package/generators/node-server/templates/server/src/users/user.entity.ts.ejs +63 -0
- package/generators/node-server/templates/server/src/users/user.mapper.ts.ejs +26 -0
- package/generators/node-server/templates/server/src/users/user.module.ts.ejs +19 -0
- package/generators/node-server/templates/server/src/users/user.service.ts.ejs +156 -0
- package/generators/node-server/templates/server/tsconfig.build.json.ejs +9 -0
- package/generators/node-server/templates/server/tsconfig.json.ejs +23 -0
- package/generators/node-server/templates/server/typeorm-migration.ts.ejs +18 -0
- package/generators/node-server/templates/server/vitest.config.e2e.ts.ejs +16 -0
- package/generators/node-server/templates/server/vitest.config.ts.ejs +16 -0
- package/generators/server/command.js +7 -0
- package/generators/server/generator.js +20 -0
- package/generators/server/generators/bootstrap/command.js +5 -0
- package/generators/server/generators/bootstrap/generator.js +15 -0
- package/generators/server/generators/bootstrap/index.js +2 -0
- package/generators/server/index.js +2 -0
- 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,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
|
+
}
|