@seniorsistemas/exclusion-process-component 0.0.1-40efacd8-8a6c-4d38-8102-8c977c14410a → 0.6.0-44030ff3-2eeb-49f7-8927-0920cc01a805
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/.editorconfig +19 -0
- package/.gitlab-ci.yml +74 -0
- package/.prettierrc +8 -0
- package/.senior-ci-extensions.sh +21 -0
- package/.vscode/settings.json +6 -0
- package/CHANGELOG.md +22 -0
- package/README.md +16 -0
- package/angular.json +144 -0
- package/archive.tar.gz +0 -0
- package/e2e/app.e2e-spec.ts +14 -0
- package/e2e/app.po.ts +11 -0
- package/e2e/tsconfig.e2e.json +14 -0
- package/karma.conf.js +53 -0
- package/lib/.browserslistrc +5 -0
- package/lib/package.json +19 -0
- package/{enums/enum-exclusion-process-status.d.ts → lib/src/enums/enum-exclusion-process-status.ts} +1 -1
- package/lib/src/exclusion-details/exclusion-details.component.html +84 -0
- package/lib/src/exclusion-details/exclusion-details.component.scss +47 -0
- package/lib/src/exclusion-details/exclusion-details.component.spec.ts +171 -0
- package/lib/src/exclusion-details/exclusion-details.component.ts +235 -0
- package/lib/src/exclusion-details/exclusion-details.module.ts +23 -0
- package/{exclusion-details/protocols/exclusion-details.d.ts → lib/src/exclusion-details/protocols/exclusion-details.ts} +1 -0
- package/{exclusion-details/protocols/show-details-information.d.ts → lib/src/exclusion-details/protocols/show-details-information.ts} +1 -1
- package/lib/src/exclusions-list/exclusions-list.component.html +157 -0
- package/lib/src/exclusions-list/exclusions-list.component.spec.ts +526 -0
- package/lib/src/exclusions-list/exclusions-list.component.ts +335 -0
- package/lib/src/exclusions-list/exclusions-list.module.ts +52 -0
- package/lib/src/exclusions-list/exclusions-list.routing.ts +89 -0
- package/{exclusions-list/index.d.ts → lib/src/exclusions-list/index.ts} +0 -1
- package/lib/src/logical-delete.module.ts +22 -0
- package/{models/exclusion-process-step-group.d.ts → lib/src/models/exclusion-process-step-group.ts} +1 -0
- package/{models/exclusion-process-step.d.ts → lib/src/models/exclusion-process-step.ts} +1 -0
- package/{models/exclusion-process.d.ts → lib/src/models/exclusion-process.ts} +1 -0
- package/{models/list-params.d.ts → lib/src/models/list-params.ts} +1 -0
- package/{models/project-config.d.ts → lib/src/models/project-config.ts} +3 -1
- package/{public-api.d.ts → lib/src/public-api.ts} +0 -1
- package/lib/src/services/filter.service.spec.ts +290 -0
- package/lib/src/services/filter.service.ts +109 -0
- package/lib/src/services/logical-delete-config.service.spec.ts +59 -0
- package/lib/src/services/logical-delete-config.service.ts +25 -0
- package/lib/src/services/logical-delete.service.spec.ts +322 -0
- package/lib/src/services/logical-delete.service.ts +122 -0
- package/lib/test.ts +14 -0
- package/lib/tsconfig.lib.json +19 -0
- package/lib/tsconfig.lib.prod.json +6 -0
- package/lib/tsconfig.spec.json +12 -0
- package/lib/tslint.json +19 -0
- package/package.json +59 -18
- package/protractor.conf.js +28 -0
- package/senior-ci/.devcontainer/Dockerfile +27 -0
- package/senior-ci/.devcontainer/devcontainer.json +71 -0
- package/senior-ci/.editorconfig +14 -0
- package/senior-ci/.gitattributes +5 -0
- package/senior-ci/.gitlab-ci.yml +53 -0
- package/senior-ci/.pylintrc +562 -0
- package/senior-ci/.vscode/launch.json +102 -0
- package/senior-ci/CHANGELOG.md +1564 -0
- package/senior-ci/CONTRIBUTING.md +31 -0
- package/senior-ci/README.md +26 -0
- package/senior-ci/ci/ci.sh +74 -0
- package/senior-ci/ci/sonar_scanner.py +48 -0
- package/senior-ci/common/__init__.py +250 -0
- package/senior-ci/common/default-files/pom.xml +10 -0
- package/senior-ci/common/docker-helpers.sh +57 -0
- package/senior-ci/common/extensions.py +88 -0
- package/senior-ci/common/flutter-helpers.sh +3 -0
- package/senior-ci/common/getopt_helper.py +168 -0
- package/senior-ci/common/graphql_client.py +40 -0
- package/senior-ci/common/helm_helpers.py +40 -0
- package/senior-ci/common/notification-helpers.sh +15 -0
- package/senior-ci/common/npm-helper.sh +4 -0
- package/senior-ci/common/parallel-helper.sh +8 -0
- package/senior-ci/common/release-helpers.sh +196 -0
- package/senior-ci/common/s3cache-helpers.sh +47 -0
- package/senior-ci/common/senior-ci-extensions-helpers.sh +15 -0
- package/senior-ci/common/sonar_helper.py +203 -0
- package/senior-ci/common/validations/buildable_project.py +61 -0
- package/senior-ci/common/validations/check_deprecated_primitives.py +49 -0
- package/senior-ci/common/validations/check_project_path.py +40 -0
- package/senior-ci/common/validations/check_sonar_config_files.py +41 -0
- package/senior-ci/common/validations/check_tags.py +41 -0
- package/senior-ci/common/validations/validate_changelog.py +151 -0
- package/senior-ci/common/validations/validate_issues.py +320 -0
- package/senior-ci/docker/build.sh +18 -0
- package/senior-ci/docker/config-host.sh +29 -0
- package/senior-ci/docker/deploy-service.sh +79 -0
- package/senior-ci/docker/push.sh +22 -0
- package/senior-ci/frontend/npm/bibliotecas/ci.sh +149 -0
- package/senior-ci/frontend/npm/ci.sh +370 -0
- package/senior-ci/frontend/npm/release-translations.sh +164 -0
- package/senior-ci/helm/deploy.py +56 -0
- package/senior-ci/helm/publish.py +41 -0
- package/senior-ci/hook/release_notification.sh +88 -0
- package/senior-ci/hook/text_notification.sh +10 -0
- package/senior-ci/java/bibliotecas/ci.sh +215 -0
- package/senior-ci/java/sdl/ci.sh +372 -0
- package/senior-ci/java/sdl/scripts/hotfix.sh +78 -0
- package/senior-ci/mobile/flutter/apps/__main__.py +5 -0
- package/senior-ci/mobile/flutter/apps/ci.py +193 -0
- package/senior-ci/mobile/flutter/libs/__main__.py +5 -0
- package/senior-ci/mobile/flutter/libs/ci.py +178 -0
- package/senior-ci/mobile/flutter/scripts/release.sh +54 -0
- package/senior-ci/release-candidate/backend/get_version.sh +64 -0
- package/senior-ci/release-candidate/close_branch.sh +113 -0
- package/senior-ci/release-candidate/common/create_hotfix.sh +28 -0
- package/senior-ci/release-candidate/common/create_release.sh +30 -0
- package/senior-ci/release-candidate/create_branch.sh +64 -0
- package/senior-ci/release-candidate/frontend/get_version.sh +43 -0
- package/senior-ci/requirements-dev.txt +5 -0
- package/senior-ci/requirements.txt +5 -0
- package/senior-ci/scripts/apply_yamls.py +229 -0
- package/senior-ci/scripts/create_sre_issue/__main__.py +7 -0
- package/senior-ci/scripts/create_sre_issue/create_sre_issue.py +267 -0
- package/senior-ci/scripts/create_sre_issue/helpers.py +166 -0
- package/senior-ci/scripts/create_sre_issue/jira_manager.py +37 -0
- package/senior-ci/scripts/validate_changelog.sh +3 -0
- package/senior-ci/sonar-project.properties +1 -0
- package/server.js +5 -0
- package/sonar-project.properties +10 -0
- package/src/app/app.component.html +43 -0
- package/src/app/app.component.scss +36 -0
- package/src/app/app.component.ts +56 -0
- package/src/app/app.module.ts +64 -0
- package/src/app/shared/shared.module.ts +28 -0
- package/src/environments/environment.default.ts +3 -0
- package/src/environments/environment.prod.ts +6 -0
- package/src/environments/environment.ts +7 -0
- package/src/favicon.ico +0 -0
- package/src/index.html +17 -0
- package/src/locale/en-US.json +3 -0
- package/src/locale/es-ES.json +3 -0
- package/src/locale/pt-BR.json +3 -0
- package/src/main.ts +13 -0
- package/src/polyfills.ts +58 -0
- package/src/styles.scss +11 -0
- package/src/tsconfig.app.json +21 -0
- package/src/typings.d.ts +15 -0
- package/tsconfig.json +39 -0
- package/tslint.json +80 -0
- package/bundles/seniorsistemas-exclusion-process-component.umd.js +0 -1205
- package/bundles/seniorsistemas-exclusion-process-component.umd.js.map +0 -1
- package/bundles/seniorsistemas-exclusion-process-component.umd.min.js +0 -16
- package/bundles/seniorsistemas-exclusion-process-component.umd.min.js.map +0 -1
- package/esm2015/enums/enum-exclusion-process-status.js +0 -8
- package/esm2015/exclusion-details/exclusion-details.component.js +0 -216
- package/esm2015/exclusion-details/exclusion-details.module.js +0 -28
- package/esm2015/exclusion-details/index.js +0 -3
- package/esm2015/exclusion-details/protocols/exclusion-details.js +0 -1
- package/esm2015/exclusion-details/protocols/index.js +0 -2
- package/esm2015/exclusion-details/protocols/show-details-information.js +0 -3
- package/esm2015/exclusions-list/exclusions-list.component.js +0 -299
- package/esm2015/exclusions-list/exclusions-list.module.js +0 -47
- package/esm2015/exclusions-list/exclusions-list.routing.js +0 -115
- package/esm2015/exclusions-list/index.js +0 -4
- package/esm2015/logical-delete.module.js +0 -27
- package/esm2015/models/exclusion-process-step-group.js +0 -1
- package/esm2015/models/exclusion-process-step.js +0 -1
- package/esm2015/models/exclusion-process.js +0 -1
- package/esm2015/models/index.js +0 -1
- package/esm2015/models/list-params.js +0 -1
- package/esm2015/models/list-result.js +0 -1
- package/esm2015/models/project-config.js +0 -3
- package/esm2015/public-api.js +0 -4
- package/esm2015/seniorsistemas-exclusion-process-component.js +0 -11
- package/esm2015/services/filter.service.js +0 -104
- package/esm2015/services/index.js +0 -2
- package/esm2015/services/logical-delete-config.service.js +0 -29
- package/esm2015/services/logical-delete.service.js +0 -109
- package/esm5/enums/enum-exclusion-process-status.js +0 -8
- package/esm5/exclusion-details/exclusion-details.component.js +0 -235
- package/esm5/exclusion-details/exclusion-details.module.js +0 -31
- package/esm5/exclusion-details/index.js +0 -3
- package/esm5/exclusion-details/protocols/exclusion-details.js +0 -1
- package/esm5/exclusion-details/protocols/index.js +0 -2
- package/esm5/exclusion-details/protocols/show-details-information.js +0 -7
- package/esm5/exclusions-list/exclusions-list.component.js +0 -313
- package/esm5/exclusions-list/exclusions-list.module.js +0 -50
- package/esm5/exclusions-list/exclusions-list.routing.js +0 -127
- package/esm5/exclusions-list/index.js +0 -4
- package/esm5/logical-delete.module.js +0 -31
- package/esm5/models/exclusion-process-step-group.js +0 -1
- package/esm5/models/exclusion-process-step.js +0 -1
- package/esm5/models/exclusion-process.js +0 -1
- package/esm5/models/index.js +0 -1
- package/esm5/models/list-params.js +0 -1
- package/esm5/models/list-result.js +0 -1
- package/esm5/models/project-config.js +0 -3
- package/esm5/public-api.js +0 -4
- package/esm5/seniorsistemas-exclusion-process-component.js +0 -11
- package/esm5/services/filter.service.js +0 -109
- package/esm5/services/index.js +0 -2
- package/esm5/services/logical-delete-config.service.js +0 -30
- package/esm5/services/logical-delete.service.js +0 -112
- package/exclusion-details/exclusion-details.component.d.ts +0 -49
- package/exclusion-details/exclusion-details.module.d.ts +0 -2
- package/exclusions-list/exclusions-list.component.d.ts +0 -59
- package/exclusions-list/exclusions-list.module.d.ts +0 -2
- package/exclusions-list/exclusions-list.routing.d.ts +0 -29
- package/fesm2015/seniorsistemas-exclusion-process-component.js +0 -917
- package/fesm2015/seniorsistemas-exclusion-process-component.js.map +0 -1
- package/fesm5/seniorsistemas-exclusion-process-component.js +0 -981
- package/fesm5/seniorsistemas-exclusion-process-component.js.map +0 -1
- package/logical-delete.module.d.ts +0 -5
- package/seniorsistemas-exclusion-process-component.d.ts +0 -10
- package/seniorsistemas-exclusion-process-component.metadata.json +0 -1
- package/services/filter.service.d.ts +0 -19
- package/services/logical-delete-config.service.d.ts +0 -8
- package/services/logical-delete.service.d.ts +0 -20
- /package/{exclusion-details/index.d.ts → lib/src/exclusion-details/index.ts} +0 -0
- /package/{exclusion-details/protocols/index.d.ts → lib/src/exclusion-details/protocols/index.ts} +0 -0
- /package/{models/index.d.ts → lib/src/models/index.ts} +0 -0
- /package/{models/list-result.d.ts → lib/src/models/list-result.ts} +0 -0
- /package/{services/index.d.ts → lib/src/services/index.ts} +0 -0
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
set -e # Exit at first error
|
|
4
|
+
|
|
5
|
+
RELEASE_NOTIFICATION_SUMMARY=${RELEASE_NOTIFICATION_SUMMARY:-Atualização}
|
|
6
|
+
RELEASE_NOTIFICATION_CONTENT_TEXT=${RELEASE_NOTIFICATION_CONTENT_TEXT:-## Acaba de sair uma versão quentinha do [$CI_PROJECT_NAME]($CI_PROJECT_URL), se liga!}
|
|
7
|
+
RELEASE_NOTIFICATION_TEAM_HOOK=${RELEASE_NOTIFICATION_TEAM_HOOK:?Você precisa definir a variável para a notificação de release funcionar.}
|
|
8
|
+
|
|
9
|
+
VERSION=${1:?É preciso definir a versão que terá as alterações notificadas.}
|
|
10
|
+
DATE=`date +%d\/%m\/%Y`
|
|
11
|
+
|
|
12
|
+
PENULTIMATE_VERSION_RAW=`git describe --abbrev=0 --tags $(git rev-list --tags --skip=1 --max-count=1)`
|
|
13
|
+
|
|
14
|
+
PENULTIMATE_VERSION=`echo $PENULTIMATE_VERSION_RAW | cut -d ',' -f2 | sed "s/-\([[:digit:]]\)/\.\1/g" | sed "s/[^[:digit:].]//g"`
|
|
15
|
+
|
|
16
|
+
# Get lines of each version
|
|
17
|
+
LINE_VERSION=`awk '/'$VERSION'/{ print NR; exit }' CHANGELOG.md`
|
|
18
|
+
LINE_PENULTIMATE_VERSION=`awk '/'$PENULTIMATE_VERSION'/{ print NR; exit }' CHANGELOG.md`
|
|
19
|
+
|
|
20
|
+
# Get last block of changelog between lines
|
|
21
|
+
CHANGELOG_RAW=`sed -n ''$LINE_VERSION','$LINE_PENULTIMATE_VERSION''p CHANGELOG.md`
|
|
22
|
+
|
|
23
|
+
# Removing unecessary lines, such as the first 3 and the last 2
|
|
24
|
+
CHANGELOG=`echo "$CHANGELOG_RAW" | sed -e '1,3d' | head -n -2`
|
|
25
|
+
|
|
26
|
+
# Get the titles of changes
|
|
27
|
+
TITLES=`echo "$CHANGELOG" | grep "###" | awk '{print $0,";"}'`
|
|
28
|
+
|
|
29
|
+
IFS=';'
|
|
30
|
+
TITLES=(`echo "${TITLES//[#]/}"`)
|
|
31
|
+
OBJS=()
|
|
32
|
+
|
|
33
|
+
# Create sections objects for each title
|
|
34
|
+
for i in "${!TITLES[@]}"; do
|
|
35
|
+
INDEX="$i"
|
|
36
|
+
TITLE=`echo "${TITLES[$INDEX]}" | xargs`
|
|
37
|
+
NEXT_TITLE=`echo "${TITLES[$INDEX+1]}" | xargs`
|
|
38
|
+
|
|
39
|
+
if [ -z "$NEXT_TITLE" ]
|
|
40
|
+
then
|
|
41
|
+
NEXT_TITLE=$PENULTIMATE_VERSION
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
# Get respective content of each title
|
|
45
|
+
CONTENTS_RAW=`echo "$CHANGELOG" | awk '/'$TITLE'/{f=1;next} /'$NEXT_TITLE'/{f=0} f' | sed '/^[[:space:]]*$/d'`
|
|
46
|
+
|
|
47
|
+
# Replace each line wrap (\n) to comma
|
|
48
|
+
CONTENTS_RAW=`echo "$CONTENTS_RAW" | awk -vORS=, '{ print $0 }' | sed 's/,$/\n/'`
|
|
49
|
+
|
|
50
|
+
# Replace each comma to \n (string, not line wrap)
|
|
51
|
+
CONTENTS=${CONTENTS_RAW//,/\\\n}
|
|
52
|
+
|
|
53
|
+
OBJ='
|
|
54
|
+
{
|
|
55
|
+
"startGroup": "true",
|
|
56
|
+
"title": "## '$TITLE'",
|
|
57
|
+
"text": "'$CONTENTS'"
|
|
58
|
+
}
|
|
59
|
+
'
|
|
60
|
+
|
|
61
|
+
OBJS+=($OBJ)
|
|
62
|
+
done
|
|
63
|
+
|
|
64
|
+
# array join function
|
|
65
|
+
join_by() { local IFS="$1"; shift; echo "$*"; }
|
|
66
|
+
|
|
67
|
+
OBJS_STR=`join_by , ${OBJS[*]}`
|
|
68
|
+
|
|
69
|
+
echo "[CI] Enviando notificação de atualização da versão $VERSION para o hook $RELEASE_NOTIFICATION_TEAM_HOOK"
|
|
70
|
+
|
|
71
|
+
curl -s \
|
|
72
|
+
-X POST $RELEASE_NOTIFICATION_TEAM_HOOK \
|
|
73
|
+
-H 'Content-Type: application/json' -d '
|
|
74
|
+
{
|
|
75
|
+
"@type": "MessageCard",
|
|
76
|
+
"@context": "https://schema.org/extensions",
|
|
77
|
+
"summary": "'$RELEASE_NOTIFICATION_SUMMARY'",
|
|
78
|
+
"themeColor": "307b9e",
|
|
79
|
+
"title": "Atualização '$VERSION'",
|
|
80
|
+
"sections": [
|
|
81
|
+
{
|
|
82
|
+
"activitySubtitle": "'$DATE'",
|
|
83
|
+
"text": "'$RELEASE_NOTIFICATION_CONTENT_TEXT'",
|
|
84
|
+
},
|
|
85
|
+
'$OBJS_STR'
|
|
86
|
+
]
|
|
87
|
+
}
|
|
88
|
+
'
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
set -e # Exit at first error
|
|
4
|
+
|
|
5
|
+
NOTIFICATION_MESSAGE=${NOTIFICATION_MESSAGE:?Você precisa informar qual a mensagem que será enviado para o teams}
|
|
6
|
+
TEAMS_HOOK=${TEAMS_HOOK:?Você precisa definir a variável para a notificação de release funcionar.}
|
|
7
|
+
|
|
8
|
+
echo "[CI] Enviando notificação no Teams"
|
|
9
|
+
|
|
10
|
+
curl -s -X POST "$TEAMS_HOOK" -H 'Content-Type: application/json' -d '{ "text": " '"$NOTIFICATION_MESSAGE"' "}' > /dev/null
|
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e # Exit at first error
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
#Init Variables
|
|
6
|
+
HAS_CACHE="false"
|
|
7
|
+
CACHE_S3_ADDR="s3://senior-ci-cache-build-backend/ci-cache"
|
|
8
|
+
MAVEN_CLI_OPTS="--batch-mode --errors --update-snapshots --fail-at-end --no-transfer-progress"
|
|
9
|
+
|
|
10
|
+
if [ "$SCI_DEBUG" = "true" ]; then
|
|
11
|
+
MAVEN_CLI_OPTS="$MAVEN_CLI_OPTS --show-version -X"
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
# Import release helpers
|
|
15
|
+
. senior-ci/common/release-helpers.sh
|
|
16
|
+
|
|
17
|
+
# Import notification helpers
|
|
18
|
+
. senior-ci/common/notification-helpers.sh
|
|
19
|
+
|
|
20
|
+
# Set $PARALLEL
|
|
21
|
+
. senior-ci/common/parallel-helper.sh
|
|
22
|
+
|
|
23
|
+
# Senior CI Extensions
|
|
24
|
+
. senior-ci/common/senior-ci-extensions-helpers.sh
|
|
25
|
+
|
|
26
|
+
# Import npm S3 helpers
|
|
27
|
+
. senior-ci/common/s3cache-helpers.sh
|
|
28
|
+
|
|
29
|
+
# Import docker helpers
|
|
30
|
+
. senior-ci/common/docker-helpers.sh
|
|
31
|
+
|
|
32
|
+
# Print de variáveis para diagnóstico
|
|
33
|
+
print_job_vars() {
|
|
34
|
+
echo ""
|
|
35
|
+
echo "----------------------------------------------------------------"
|
|
36
|
+
echo "[CI] Variáveis:"
|
|
37
|
+
echo "[CI] - SCI_VERSION_TAG_BACKEND=$SCI_VERSION_TAG_BACKEND"
|
|
38
|
+
echo "[CI] - NO_PARALLEL=$NO_PARALLEL"
|
|
39
|
+
echo "[CI] - VERSION=$VERSION"
|
|
40
|
+
echo "[CI] - TEAMS_HOOK=$TEAMS_HOOK"
|
|
41
|
+
echo "[CI] - CI_COMMIT_TAG=$CI_COMMIT_TAG"
|
|
42
|
+
echo "----------------------------------------------------------------"
|
|
43
|
+
echo ""
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
use_snapshot_timestamp_version() {
|
|
47
|
+
TS=$(date +"%s")
|
|
48
|
+
VERSION="$CI_COMMIT_REF_SLUG-$TS-SNAPSHOT"
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
use_snapshot_version() {
|
|
52
|
+
if grep --fixed-strings --quiet "<tycho-version>" pom.xml; then
|
|
53
|
+
VERSION="$(grep -m 1 "<version>" pom.xml | cut -d ">" -f 2 | awk -vRS='<|>' NR%2).${CI_COMMIT_REF_SLUG//./}-v$(date +%Y%m%d%H%M)"
|
|
54
|
+
else
|
|
55
|
+
VERSION="$CI_COMMIT_REF_SLUG-SNAPSHOT"
|
|
56
|
+
fi
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
set_version() {
|
|
60
|
+
if grep --fixed-strings --quiet "<tycho-version>" pom.xml; then
|
|
61
|
+
[[ $VERSION =~ ^v.* ]] && VERSION=$(echo $CI_COMMIT_REF_SLUG |awk '{gsub("v","");gsub(/\-/,".");}1')
|
|
62
|
+
echo "[CI] Alterando versão com tycho-version:1.7.0. Nova versão - $VERSION"
|
|
63
|
+
mvn org.eclipse.tycho:tycho-versions-plugin:1.7.0:set-version -DnewVersion=$VERSION
|
|
64
|
+
else
|
|
65
|
+
echo "[CI] Alterando versão com mvn versions:set. Nova versão - $VERSION"
|
|
66
|
+
mvn $MAVEN_CLI_OPTS versions:set -DgenerateBackupPoms=false -DnewVersion=$VERSION
|
|
67
|
+
fi
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
normalize_ci_commit_tag() {
|
|
71
|
+
CI_COMMIT_TAG="${CI_COMMIT_TAG//-/.}"
|
|
72
|
+
CI_COMMIT_TAG="${CI_COMMIT_TAG:1}"
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
publish() {
|
|
76
|
+
docker_login
|
|
77
|
+
|
|
78
|
+
if [[ "$VERSION" == *-SNAPSHOT ]] && [[ "$HAS_CACHE" == "true" ]] ; then
|
|
79
|
+
echo "[CI] Realizando o envio dos artefatos ao servidor usando cache de build"
|
|
80
|
+
#Parametro Dmaven.compiler.useIncrementalCompilation setado como false para que o mesmo use o cache copiado
|
|
81
|
+
# Feito isso em decorrencia de um bug do maven (https://issues.apache.org/jira/browse/MCOMPILER-209)
|
|
82
|
+
mvn $MAVEN_CLI_OPTS $PARALLEL deploy -DretryFailedDeploymentCount=5 -Dmaven.compiler.useIncrementalCompilation=false -DskipTests=true
|
|
83
|
+
else
|
|
84
|
+
echo "[CI] Realizando a compilação dos artefatos"
|
|
85
|
+
mvn $MAVEN_CLI_OPTS $PARALLEL clean package -DskipTests=true
|
|
86
|
+
|
|
87
|
+
echo "[CI] Realizando o envio dos artefatos ao servidor"
|
|
88
|
+
mvn $MAVEN_CLI_OPTS $PARALLEL deploy -DretryFailedDeploymentCount=5 -DskipTests=true
|
|
89
|
+
fi
|
|
90
|
+
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
publish_snapshot(){
|
|
94
|
+
getS3BuildCache
|
|
95
|
+
print_job_vars
|
|
96
|
+
set_version
|
|
97
|
+
create_dockerhub_repo
|
|
98
|
+
publish
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
# Execução dos jobs
|
|
103
|
+
getopts "bstrpx" job
|
|
104
|
+
case "$job" in
|
|
105
|
+
b) echo "[CI] Executando compilação do código"
|
|
106
|
+
python3 senior-ci/common/validations/validate_issues.py
|
|
107
|
+
|
|
108
|
+
call_extension "before_build"
|
|
109
|
+
|
|
110
|
+
use_snapshot_version
|
|
111
|
+
print_job_vars
|
|
112
|
+
set_version
|
|
113
|
+
|
|
114
|
+
mvn $MAVEN_CLI_OPTS $PARALLEL clean compile
|
|
115
|
+
|
|
116
|
+
if [ -n "$CACHE_FILE_PATTERN" ]; then
|
|
117
|
+
createS3BuildCache $CACHE_FILE_PATTERN
|
|
118
|
+
fi
|
|
119
|
+
|
|
120
|
+
call_extension "after_build"
|
|
121
|
+
;;
|
|
122
|
+
|
|
123
|
+
s) echo "[CI] Realizando release: SNAPSHOT"
|
|
124
|
+
call_extension "before_release_snapshot"
|
|
125
|
+
|
|
126
|
+
use_snapshot_version
|
|
127
|
+
publish_snapshot
|
|
128
|
+
|
|
129
|
+
call_extension "after_release_snapshot"
|
|
130
|
+
;;
|
|
131
|
+
|
|
132
|
+
t) echo "[CI] Realizando release: SNAPSHOT TIMESTAMP"
|
|
133
|
+
call_extension "before_release_snapshot"
|
|
134
|
+
|
|
135
|
+
use_snapshot_timestamp_version
|
|
136
|
+
publish_snapshot
|
|
137
|
+
|
|
138
|
+
call_extension "after_release_snapshot"
|
|
139
|
+
;;
|
|
140
|
+
|
|
141
|
+
r) echo "[CI] Realizando release: $2"
|
|
142
|
+
python3 senior-ci/common/validations/validate_issues.py
|
|
143
|
+
|
|
144
|
+
unshallow_repo
|
|
145
|
+
|
|
146
|
+
get_next_version $2
|
|
147
|
+
|
|
148
|
+
create_release_branch
|
|
149
|
+
|
|
150
|
+
call_extension "before_release"
|
|
151
|
+
|
|
152
|
+
call_extension "before_change_changelog"
|
|
153
|
+
|
|
154
|
+
update_changelog
|
|
155
|
+
|
|
156
|
+
call_extension "after_change_changelog"
|
|
157
|
+
|
|
158
|
+
set_version
|
|
159
|
+
|
|
160
|
+
create_release_tag
|
|
161
|
+
|
|
162
|
+
call_extension "after_release"
|
|
163
|
+
|
|
164
|
+
echo "[CI] Criação da release versão $VERSION realizado com sucesso. O job 'package' será executado automaticamente para publicar esta versão no Maven."
|
|
165
|
+
|
|
166
|
+
notify_release_teams_channel
|
|
167
|
+
;;
|
|
168
|
+
p) echo "[CI] Publicação da versão"
|
|
169
|
+
call_extension "before_packaging"
|
|
170
|
+
|
|
171
|
+
normalize_ci_commit_tag
|
|
172
|
+
print_job_vars
|
|
173
|
+
publish
|
|
174
|
+
|
|
175
|
+
USER_DEPLOY_MAIL="${GITLAB_USER_EMAIL%@senior.com.br}"
|
|
176
|
+
DEPLOY_TEAMS_MESSAGE="O usuário $USER_DEPLOY_MAIL liberou a versão <$CI_PROJECT_URL/blob/$CI_COMMIT_REF_NAME/CHANGELOG.md#anchor-$VERSION_WITHOUT_DOTS|$VERSION> do projeto $CI_PROJECT_NAME."
|
|
177
|
+
|
|
178
|
+
call_extension "after_packaging"
|
|
179
|
+
|
|
180
|
+
notify_text_teams_channel "$DEPLOY_TEAMS_MESSAGE"
|
|
181
|
+
|
|
182
|
+
echo "[CI] Versão $VERSION publicada no Maven com sucesso!"
|
|
183
|
+
;;
|
|
184
|
+
|
|
185
|
+
x) echo "[CI] Realizando validação de testes e análise no SonarQube"
|
|
186
|
+
VERSION="$CI_COMMIT_REF_SLUG"
|
|
187
|
+
|
|
188
|
+
call_extension "before_build"
|
|
189
|
+
|
|
190
|
+
SKIP_BUILD=$(python3 $CI_PROJECT_DIR/senior-ci/common/validations/buildable_project.py)
|
|
191
|
+
echo $SKIP_BUILD | sed 's@False@@g'
|
|
192
|
+
|
|
193
|
+
if [ "$SKIP_BUILD" = "False" ]; then
|
|
194
|
+
|
|
195
|
+
if grep --fixed-strings --quiet "<tycho-version>" pom.xml; then
|
|
196
|
+
use_snapshot_version
|
|
197
|
+
fi
|
|
198
|
+
|
|
199
|
+
getS3BuildCache
|
|
200
|
+
print_job_vars
|
|
201
|
+
set_version
|
|
202
|
+
|
|
203
|
+
mvn $MAVEN_CLI_OPTS $PARALLEL clean test
|
|
204
|
+
|
|
205
|
+
if [ -n "$CACHE_FILE_PATTERN" ]; then
|
|
206
|
+
createS3BuildCache $CACHE_FILE_PATTERN
|
|
207
|
+
fi
|
|
208
|
+
fi
|
|
209
|
+
|
|
210
|
+
call_extension "after_build"
|
|
211
|
+
|
|
212
|
+
python3 senior-ci/ci/sonar_scanner.py -t MAVEN -s $SKIP_BUILD
|
|
213
|
+
;;
|
|
214
|
+
|
|
215
|
+
esac
|
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
set -e # Exit at first error
|
|
3
|
+
|
|
4
|
+
#Init Variables
|
|
5
|
+
HAS_CACHE="false"
|
|
6
|
+
CACHE_S3_ADDR="s3://senior-ci-cache-build-backend/ci-cache"
|
|
7
|
+
HELP_MESSAGE="Caso tenha qualquer dúvida sobre o processo, consulte nossa Wiki - https://git.senior.com.br/engenharia/senior-ci/wikis/home"
|
|
8
|
+
MAVEN_CLI_OPTS="--batch-mode --errors --update-snapshots --fail-at-end --no-transfer-progress"
|
|
9
|
+
|
|
10
|
+
if [ "$SCI_DEBUG" = "true" ]; then
|
|
11
|
+
MAVEN_CLI_OPTS="$MAVEN_CLI_OPTS --show-version -X"
|
|
12
|
+
fi
|
|
13
|
+
|
|
14
|
+
# Import release helpers
|
|
15
|
+
. senior-ci/common/release-helpers.sh
|
|
16
|
+
|
|
17
|
+
# Import notification helpers
|
|
18
|
+
. senior-ci/common/notification-helpers.sh
|
|
19
|
+
|
|
20
|
+
# Set $PARALLEL
|
|
21
|
+
. senior-ci/common/parallel-helper.sh
|
|
22
|
+
|
|
23
|
+
# Senior CI Extensions
|
|
24
|
+
. senior-ci/common/senior-ci-extensions-helpers.sh
|
|
25
|
+
|
|
26
|
+
# Import npm S3 helpers
|
|
27
|
+
. senior-ci/common/s3cache-helpers.sh
|
|
28
|
+
|
|
29
|
+
# Import docker helpers
|
|
30
|
+
. senior-ci/common/docker-helpers.sh
|
|
31
|
+
|
|
32
|
+
# Propriedades da SDL
|
|
33
|
+
determine_properties() {
|
|
34
|
+
OUTPUT=$(grep "^generator.java.output\+[[:space:]]*\+=" sdl.properties | cut -d "=" -f 2 | tr -d '[[:space:]]')
|
|
35
|
+
: ${OUTPUT:=java}
|
|
36
|
+
CIFRIENDLY=$(grep "^generator.java.ciFriendlyVersion\+[[:space:]]*\+=" sdl.properties | head -1 | cut -d "=" -f 2 | tr -d '[[:space:]]')
|
|
37
|
+
: ${CIFRIENDLY:=false}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
# Versionamento
|
|
41
|
+
CHANGELIST=""
|
|
42
|
+
|
|
43
|
+
use_snapshot_version() {
|
|
44
|
+
VERSION="$CI_COMMIT_REF_SLUG-SNAPSHOT"
|
|
45
|
+
CHANGELIST="-SNAPSHOT"
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
use_snapshot_timestamp_version() {
|
|
49
|
+
TS=$(date +"%s")
|
|
50
|
+
VERSION="$CI_COMMIT_REF_SLUG-$TS-SNAPSHOT"
|
|
51
|
+
CHANGELIST="-SNAPSHOT"
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
set_version() {
|
|
55
|
+
# Quando migrar para python olhar o metodo publish_snapshot
|
|
56
|
+
if [ "$CIFRIENDLY" != "true" ]; then
|
|
57
|
+
sed -i "s/generator.app.version=.*/generator.app.version=${VERSION}/" sdl.properties
|
|
58
|
+
fi
|
|
59
|
+
|
|
60
|
+
mvn $MAVEN_CLI_OPTS versions:set -DgenerateBackupPoms=false -DnewVersion=$VERSION
|
|
61
|
+
mvn $MAVEN_CLI_OPTS versions:set -DgenerateBackupPoms=false -DnewVersion=$VERSION --file $OUTPUT
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
versioned_mvn() {
|
|
65
|
+
CMD="mvn"
|
|
66
|
+
if [ "$CIFRIENDLY" == "true" ]; then
|
|
67
|
+
if [ "$CHANGELIST" == "" ]; then
|
|
68
|
+
if [ "$VERSION" == "" ]; then
|
|
69
|
+
VERSION=$(git tag --sort=-v:refname | grep "^v[0-9]\{1,\}-[0-9]\{1,\}-[0-9]\{1,\}$" | head -1 | sed "s/-\([[:digit:]]\)/\.\1/g")
|
|
70
|
+
VERSION="${VERSION:1}"
|
|
71
|
+
echo "[CI] - VERSION=$VERSION"
|
|
72
|
+
fi
|
|
73
|
+
CMD="$CMD -Drevision=$VERSION -Dsha1= -Dchangelist="
|
|
74
|
+
else
|
|
75
|
+
CMD="$CMD -Drevision=$CI_COMMIT_REF_SLUG -Dsha1= -Dchangelist=$CHANGELIST"
|
|
76
|
+
fi
|
|
77
|
+
fi
|
|
78
|
+
CMD="$CMD $@"
|
|
79
|
+
echo "$CMD"
|
|
80
|
+
$CMD
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
MESSAGE_HELP="Caso tenha qualquer dúvida sobre o processo, consulte nossa Wiki - https://git.senior.com.br/engenharia/senior-ci/wikis/home"
|
|
84
|
+
|
|
85
|
+
# Print de variáveis para diagnóstico
|
|
86
|
+
print_job_vars() {
|
|
87
|
+
echo ""
|
|
88
|
+
echo "----------------------------------------------------------------"
|
|
89
|
+
echo "[CI] Variáveis:"
|
|
90
|
+
echo "[CI] - SCI_VERSION_TAG_BACKEND=$SCI_VERSION_TAG_BACKEND"
|
|
91
|
+
echo "[CI] - NO_PARALLEL=$NO_PARALLEL"
|
|
92
|
+
echo "[CI] - OUTPUT=$OUTPUT"
|
|
93
|
+
echo "[CI] - CIFRIENDLY=$CIFRIENDLY"
|
|
94
|
+
echo "[CI] - CHANGELIST=$CHANGELIST"
|
|
95
|
+
echo "[CI] - VERSION=$VERSION"
|
|
96
|
+
echo "[CI] - TEAMS_HOOK=$TEAMS_HOOK"
|
|
97
|
+
echo "----------------------------------------------------------------"
|
|
98
|
+
echo ""
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
# Chamadas mvn
|
|
103
|
+
generate_sources() {
|
|
104
|
+
echo "[CI] Executando generate-sources"
|
|
105
|
+
versioned_mvn $MAVEN_CLI_OPTS $PARALLEL generate-sources
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
publish() {
|
|
109
|
+
# Utilizado no package e no releaseSnapshot
|
|
110
|
+
|
|
111
|
+
getS3BuildCache
|
|
112
|
+
|
|
113
|
+
docker_login
|
|
114
|
+
|
|
115
|
+
echo "[CI] Realizando a compilação dos artefatos"
|
|
116
|
+
|
|
117
|
+
if [[ "$VERSION" == *-SNAPSHOT ]] && [[ "$HAS_CACHE" == "true" ]] ; then
|
|
118
|
+
echo "[CI] Usando cache existente."
|
|
119
|
+
versioned_mvn $PARALLEL dockerfile:build -Dmaven.compiler.useIncrementalCompilation=true --file $OUTPUT/impl
|
|
120
|
+
else
|
|
121
|
+
echo "[CI] Buildando o projeto novamente."
|
|
122
|
+
versioned_mvn $MAVEN_CLI_OPTS $PARALLEL install -DskipTests=true --file $OUTPUT
|
|
123
|
+
fi
|
|
124
|
+
|
|
125
|
+
if [ "$1" == "docker" ]; then
|
|
126
|
+
if [ -z "$SKIP_IMAGE_SCAN" ]; then
|
|
127
|
+
if [ -z "$SVC_IMAGE" ]; then
|
|
128
|
+
IMAGE_NAME=`cat sdl.properties | sed -n -e 's/generator.app.name=//p'`
|
|
129
|
+
IMAGE_NAME=`echo ${IMAGE_NAME%%[[:cntrl:]]} | xargs`
|
|
130
|
+
else
|
|
131
|
+
IMAGE_NAME=$SVC_IMAGE
|
|
132
|
+
fi
|
|
133
|
+
|
|
134
|
+
TAG="${CI_COMMIT_TAG:-$CI_COMMIT_REF_SLUG}"
|
|
135
|
+
VERSION_FORMATED=$(echo $TAG |awk '{gsub("v","");gsub(/\-/,".");}1')
|
|
136
|
+
IMAGEM=seniorsistemas/${IMAGE_NAME/$'\r'/}:${VERSION_FORMATED}
|
|
137
|
+
if [[ "$(docker images -q $IMAGEM 2> /dev/null)" == "" ]]; then
|
|
138
|
+
echo "[CI] Imagem $IMAGEM não encontrada, alterando para repositorio alternativo. "
|
|
139
|
+
IMAGEM=seniorsa/${IMAGE_NAME/$'\r'/}:${VERSION_FORMATED}
|
|
140
|
+
fi
|
|
141
|
+
|
|
142
|
+
echo "[CI] Realizando a analise de segurança da imagem: $IMAGEM"
|
|
143
|
+
trivy --severity HIGH,CRITICAL $IMAGEM
|
|
144
|
+
fi
|
|
145
|
+
fi
|
|
146
|
+
|
|
147
|
+
create_dockerhub_repo
|
|
148
|
+
|
|
149
|
+
echo "[CI] Realizando o envio dos artefatos ao servidor"
|
|
150
|
+
if [[ "$VERSION" == *-SNAPSHOT ]] && [[ "$HAS_CACHE" == "true" ]] ; then
|
|
151
|
+
# Parametro Dmaven.compiler.useIncrementalCompilation setado como false para que o mesmo use o cache copiado
|
|
152
|
+
# Feito isso em decorrencia de um bug do maven (https://issues.apache.org/jira/browse/MCOMPILER-209)
|
|
153
|
+
versioned_mvn $MAVEN_CLI_OPTS $PARALLEL deploy -DretryFailedDeploymentCount=5 -Dmaven.compiler.useIncrementalCompilation=false -DskipTests=true --file $OUTPUT
|
|
154
|
+
else
|
|
155
|
+
versioned_mvn $MAVEN_CLI_OPTS $PARALLEL deploy -DretryFailedDeploymentCount=5 -DskipTests=true --file $OUTPUT
|
|
156
|
+
fi
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
publish_snapshot(){
|
|
160
|
+
call_extension "before_release_snapshot"
|
|
161
|
+
determine_properties
|
|
162
|
+
print_job_vars
|
|
163
|
+
|
|
164
|
+
# A alteração no sdl.properties deve acontecer antes do generate_sources
|
|
165
|
+
if [ "$CIFRIENDLY" != "true" ]; then
|
|
166
|
+
sed -i "s/generator.app.version=.*/generator.app.version=${VERSION}/" sdl.properties
|
|
167
|
+
fi
|
|
168
|
+
|
|
169
|
+
generate_sources
|
|
170
|
+
# set_version # Comentado pois esse metodo deve ser separado em dois momentos, antes e depois do generate_sources
|
|
171
|
+
|
|
172
|
+
# O versions:set deve ser feito após o generate_sources
|
|
173
|
+
mvn $MAVEN_CLI_OPTS versions:set -DgenerateBackupPoms=false -DnewVersion=$VERSION
|
|
174
|
+
# É usado versions:update-child-modules para forçar a atualização dos modulos filhos
|
|
175
|
+
mvn $MAVEN_CLI_OPTS versions:set -DgenerateBackupPoms=false -DnewVersion=$VERSION -DprocessAllModules -N versions:update-child-modules --file $OUTPUT
|
|
176
|
+
|
|
177
|
+
publish
|
|
178
|
+
call_extension "after_release_snapshot"
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
generateS3BuildCache() {
|
|
182
|
+
CACHE_FILE_NAME="BUILD_CACHE_$CI_PIPELINE_ID.tar.gz"
|
|
183
|
+
|
|
184
|
+
echo "[CI] Gerando cache da build da pasta $OUTPUT/*/target/ (Compressing $OUTPUT/*/target/)"
|
|
185
|
+
tar -zcf $CACHE_FILE_NAME $OUTPUT/*/target/
|
|
186
|
+
createS3BuildCache
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
# Execução dos jobs
|
|
190
|
+
getopts "bstpxrkd" job;
|
|
191
|
+
case "$job" in
|
|
192
|
+
|
|
193
|
+
b) echo "[CI] Executando compilação do código"
|
|
194
|
+
python3 senior-ci/common/validations/validate_issues.py
|
|
195
|
+
|
|
196
|
+
use_snapshot_version
|
|
197
|
+
|
|
198
|
+
VERSION="$CI_COMMIT_REF_SLUG"
|
|
199
|
+
docker_login
|
|
200
|
+
|
|
201
|
+
call_extension "before_build"
|
|
202
|
+
|
|
203
|
+
generate_sources
|
|
204
|
+
determine_properties
|
|
205
|
+
print_job_vars
|
|
206
|
+
set_version
|
|
207
|
+
|
|
208
|
+
versioned_mvn $MAVEN_CLI_OPTS $PARALLEL install -DskipTests=true -Ddockerfile.skip=true --file $OUTPUT
|
|
209
|
+
|
|
210
|
+
generateS3BuildCache
|
|
211
|
+
|
|
212
|
+
call_extension "after_build"
|
|
213
|
+
;;
|
|
214
|
+
|
|
215
|
+
s) echo "[CI] Realizando release: SNAPSHOT"
|
|
216
|
+
use_snapshot_version
|
|
217
|
+
publish_snapshot
|
|
218
|
+
;;
|
|
219
|
+
|
|
220
|
+
t) echo "[CI] Realizando release: SNAPSHOT TIMESTAMP"
|
|
221
|
+
use_snapshot_timestamp_version
|
|
222
|
+
publish_snapshot
|
|
223
|
+
;;
|
|
224
|
+
|
|
225
|
+
p) echo "[CI] Publicação da versão"
|
|
226
|
+
call_extension "before_packaging"
|
|
227
|
+
determine_properties
|
|
228
|
+
VERSION=$CI_COMMIT_TAG
|
|
229
|
+
|
|
230
|
+
print_job_vars
|
|
231
|
+
generate_sources
|
|
232
|
+
publish docker
|
|
233
|
+
|
|
234
|
+
USER_DEPLOY_MAIL="${GITLAB_USER_EMAIL%@senior.com.br}"
|
|
235
|
+
MESSAGE="O usuário $USER_DEPLOY_MAIL liberou a versão $VERSION do projeto $CI_PROJECT_NAME. Changelog: $CI_PROJECT_URL/blob/$CI_COMMIT_REF_NAME/CHANGELOG.md"
|
|
236
|
+
|
|
237
|
+
call_extension "after_packaging"
|
|
238
|
+
|
|
239
|
+
notify_text_teams_channel "$MESSAGE"
|
|
240
|
+
|
|
241
|
+
echo "[CI] Versão $VERSION publicada no Docker Hub com sucesso!"
|
|
242
|
+
;;
|
|
243
|
+
|
|
244
|
+
x) echo "[CI] Realizando validação de testes e análise no SonarQube"
|
|
245
|
+
|
|
246
|
+
VERSION="$CI_COMMIT_REF_SLUG"
|
|
247
|
+
|
|
248
|
+
call_extension "before_build"
|
|
249
|
+
|
|
250
|
+
SKIP_BUILD=$(python3 $CI_PROJECT_DIR/senior-ci/common/validations/buildable_project.py)
|
|
251
|
+
echo $SKIP_BUILD | sed 's@False@@g'
|
|
252
|
+
|
|
253
|
+
if [ "$SKIP_BUILD" = "False" ]; then
|
|
254
|
+
|
|
255
|
+
determine_properties
|
|
256
|
+
|
|
257
|
+
getS3BuildCache
|
|
258
|
+
generate_sources
|
|
259
|
+
set_version
|
|
260
|
+
|
|
261
|
+
versioned_mvn $MAVEN_CLI_OPTS $PARALLEL install -Ddockerfile.skip=true --file $OUTPUT
|
|
262
|
+
|
|
263
|
+
generateS3BuildCache
|
|
264
|
+
fi
|
|
265
|
+
|
|
266
|
+
call_extension "after_build"
|
|
267
|
+
|
|
268
|
+
python3 senior-ci/ci/sonar_scanner.py -t SDL -s $SKIP_BUILD
|
|
269
|
+
;;
|
|
270
|
+
|
|
271
|
+
r) echo "[CI] Realizando release: $2"
|
|
272
|
+
python3 senior-ci/common/validations/validate_issues.py
|
|
273
|
+
|
|
274
|
+
unshallow_repo
|
|
275
|
+
|
|
276
|
+
get_next_version $2
|
|
277
|
+
|
|
278
|
+
create_release_branch
|
|
279
|
+
|
|
280
|
+
call_extension "before_release"
|
|
281
|
+
|
|
282
|
+
call_extension "before_change_changelog"
|
|
283
|
+
update_changelog
|
|
284
|
+
call_extension "after_change_changelog"
|
|
285
|
+
|
|
286
|
+
determine_properties
|
|
287
|
+
mvn $MAVEN_CLI_OPTS $PARALLEL generate-sources
|
|
288
|
+
set_version
|
|
289
|
+
|
|
290
|
+
create_release_tag
|
|
291
|
+
|
|
292
|
+
call_extension "after_release"
|
|
293
|
+
|
|
294
|
+
echo "[CI] Criação da release versão $VERSION realizado com sucesso. O job 'package' será executado automaticamente para publicar esta versão no Docker Hub."
|
|
295
|
+
|
|
296
|
+
notify_release_teams_channel
|
|
297
|
+
;;
|
|
298
|
+
|
|
299
|
+
k) echo "[CI] Iniciando deploy no ambiente de desenvolvimento"
|
|
300
|
+
NAMESPACE_ARG=""
|
|
301
|
+
if [[ ! -z "$SCI_NAMESPACE" ]]; then
|
|
302
|
+
echo "[CI] Namespace padrão alterado para: $SCI_NAMESPACE"
|
|
303
|
+
NAMESPACE_ARG="-n $SCI_NAMESPACE"
|
|
304
|
+
fi
|
|
305
|
+
|
|
306
|
+
DEPLOYMENT=${DEPLOYMENT:-$CI_PROJECT_NAME}
|
|
307
|
+
: "${DEPLOYMENT:?Configure a integração com o Kubernetes para utilizar a feature de Continuous Deployment. $HELP_MESSAGE}"
|
|
308
|
+
|
|
309
|
+
call_extension "before_deploy"
|
|
310
|
+
CI_COMMIT_TAG="${CI_COMMIT_TAG//-/.}"
|
|
311
|
+
CI_COMMIT_TAG="${CI_COMMIT_TAG:1}"
|
|
312
|
+
VERSION="${CI_COMMIT_TAG:-$CI_COMMIT_REF_SLUG-SNAPSHOT}"
|
|
313
|
+
|
|
314
|
+
DEPLOYMENT_DATA=$(kubectl --insecure-skip-tls-verify $NAMESPACE_ARG get deployments $DEPLOYMENT -o jsonpath="{range ..containers[*]}{@.name}{\"=\"}{@.image}{end}{\"\n\"}" | grep "=seniorsistemas/\|=seniorsa/" | head -1)
|
|
315
|
+
CONTAINER=$(echo "$DEPLOYMENT_DATA" | cut -d "=" -f 1)
|
|
316
|
+
IMAGE=$(echo "$DEPLOYMENT_DATA" | cut -d "=" -f 2 | cut -d ":" -f 1)
|
|
317
|
+
|
|
318
|
+
if [[ -z "$CONTAINER" || -z "$IMAGE" || -z "$DEPLOYMENT" ]]; then
|
|
319
|
+
echo "[CI] Falha na descoberta das informações de deploy"
|
|
320
|
+
echo " - Container.: $CONTAINER"
|
|
321
|
+
echo " - Image.....: $IMAGE"
|
|
322
|
+
echo " - Deployment: $DEPLOYMENT"
|
|
323
|
+
exit 2
|
|
324
|
+
fi
|
|
325
|
+
|
|
326
|
+
echo "[CI] Alterando a imagem do deployment $DEPLOYMENT para $IMAGE:$VERSION no ambiente "
|
|
327
|
+
kubectl --insecure-skip-tls-verify $NAMESPACE_ARG set image deployment/$DEPLOYMENT $CONTAINER="$IMAGE:$VERSION"
|
|
328
|
+
|
|
329
|
+
DEPLOY_USERNAME="${GITLAB_USER_EMAIL%@senior.com.br}"
|
|
330
|
+
MESSAGE="O usuário $DEPLOY_USERNAME alterou o deployment $DEPLOYMENT para a versão $VERSION."
|
|
331
|
+
|
|
332
|
+
call_extension "after_deploy"
|
|
333
|
+
|
|
334
|
+
notify_text_teams_channel "$MESSAGE"
|
|
335
|
+
|
|
336
|
+
echo "[CI] Deploy realizado com sucesso!"
|
|
337
|
+
;;
|
|
338
|
+
|
|
339
|
+
d) echo "[CI] Iniciando deploy no ambiente externo"
|
|
340
|
+
: "${CI_ENVIRONMENT_NAME:?Configure as propriedades name do environment no .gitlab-ci.yml. $MESSAGE_HELP}"
|
|
341
|
+
: "${BASIC_TOKEN:?Configure a variável BASIC_TOKEN no projeto. $MESSAGE_HELP}"
|
|
342
|
+
: "${NAMESPACE:?Configure a variável NAMESPACE no projeto. $MESSAGE_HELP}"
|
|
343
|
+
|
|
344
|
+
SERVICE=`cat sdl.properties | sed -n -e 's/generator.app.name=//p'`
|
|
345
|
+
: "${SERVICE:?Adicione no sdl.properties a chave generator.app.name com o nome do serviço. $MESSAGE_HELP}"
|
|
346
|
+
|
|
347
|
+
SERVICE=`echo ${SERVICE%%[[:cntrl:]]} | xargs`
|
|
348
|
+
|
|
349
|
+
CI_COMMIT_TAG="${CI_COMMIT_TAG//-/.}"
|
|
350
|
+
CI_COMMIT_TAG="${CI_COMMIT_TAG:1}"
|
|
351
|
+
VERSION="${CI_COMMIT_TAG:-$CI_COMMIT_REF_SLUG-SNAPSHOT}"
|
|
352
|
+
|
|
353
|
+
call_extension "before_deploy_external"
|
|
354
|
+
|
|
355
|
+
echo "[CI] Inicializando deploy da versão $VERSION do serviço $SERVICE no ambiente $CI_ENVIRONMENT_NAME"
|
|
356
|
+
|
|
357
|
+
STATUS_CODE=`curl -w %{http_code} "https://$CI_ENVIRONMENT_NAME:30006/setImg?ns=$NAMESPACE&img=seniorsa/$SERVICE&ver=$VERSION" \
|
|
358
|
+
-H "authorization: Basic $BASIC_TOKEN" \
|
|
359
|
+
-o response.txt`
|
|
360
|
+
|
|
361
|
+
if [[ $STATUS_CODE -ne 200 ]]
|
|
362
|
+
then
|
|
363
|
+
echo "[CI] Status Code:" $STATUS_CODE
|
|
364
|
+
echo "[CI] Vish, algo deu errado, talvez o serviço esteja indisponivel no momento, tente novamente mais tarde por favor. $MESSAGE_HELP"
|
|
365
|
+
exit 1
|
|
366
|
+
fi
|
|
367
|
+
|
|
368
|
+
call_extension "after_deploy_external"
|
|
369
|
+
|
|
370
|
+
echo "[CI] Deploy realizado com sucesso!"
|
|
371
|
+
;;
|
|
372
|
+
esac
|