Skip to content

Commit 0047d21

Browse files
author
Bhavik Kumar
authored
Fix issues with checkstyle having breaking changes (#64)
* Fix issues with checkstyle having breaking changes * Update environment variables which are required to be encrypted * Automatically create workspace if it does not exist during deployment * Pass environment argument to deployment script
1 parent 55bf294 commit 0047d21

File tree

5 files changed

+68
-53
lines changed

5 files changed

+68
-53
lines changed

.travis.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,29 +65,27 @@ jobs:
6565
- ./gradlew sonarqube
6666
- stage: deploy to development
6767
env:
68-
- TF_WORKSPACE=development
6968
- SPLUNK_TOKEN=
7069
- secure: nmuSCIxhq7lJlJ+nu0S8sTF/eYs0EMgEodfl8TwJD50DoFSD8w20vBJW3uFgzMK5XccenUGicZQhRy7HC1waFT2Pu4XHr23xgKlL67UJMsL+pzRLzFuIqXyd7t//KiTGiOHVP8xoS6O2rc1c09CqMg5K6JrlgFxgLi8mnbOveMnSOhRbDIPmbhfaX/xBdj1/Thy4BaHxohLTMd/h+nPosG/9y5aeKi/cieKuRqUAkWgQT56p0TT+bpO3Q+gY6CY0feoariloBSJWiHo0YKmiRGqQd9819dMq6roZjonEB8qJb/YygcJJwwAx/IkRt3Rs6pZhY4UVVLgw4eyjVg4LQ7kl1FuTJWAq5qT6LmCZf+Ec+GYvjUsNTrY9A+wpmhh9Xf6P3XQgI4nGcm5nqh+0UmPhkBZW4YgYWV2SSU1BkdzxG6PiZpB4RWImek7xwvyudPQFCx5bX0gxiKd7QNkS3bEHQjcLJnjVtOsY35iTwdtJlu4zBaHO4z2YWoXet7hzGRL9ZsqmSu5iIjx95Pg1Lc5GFYNKaj06sYPQkiwNrgikbX279gnFkljygrBykcysBSl7l9noQVf9D0oNBecqMPsy6wOV7j1O6ElBxKw5c2EZoiOXkU9B9huyU9QY2DGgY1YBpXxI9hsJQqHpPnpVDBw1PgPWfL2DoErPK+MeiUM=
7170
install: skip
7271
script: skip
7372
deploy:
7473
skip_cleanup: true
7574
provider: script
76-
script: bash deployment/script/travis_deploy.sh
75+
script: bash deployment/script/travis_deploy.sh development
7776
on:
7877
all_branches: true
7978
- stage: deploy to production
8079
if: env(DEPLOY_PRODUCTION) IS present
8180
env:
82-
- TF_WORKSPACE=production
8381
- SPLUNK_TOKEN=
8482
- secure: Nyl2YPIjXzhXjum+rYBBf+jQbgTz5Mnw/tgvJhggOldHViRufNew5X8rLnpY3wJieoyqgmE2NjUMbx0ZLREQwjhndG5l2txeqknjyYjKaMAoN0mSju7gRtUSIHNvJhLQ0pqejus80f7G1ejbInXeuJNFrx0mx2Z3kP00FRCSgSXiABlXdUv1kDk2un4x+9SDTHz3fmfFH+6ccbAAhm6ns/91bKxvBJZfBlW7aQRVD6cnauZbbrzQpwLPV2qmxuYeg0CLaf4vSnQPOx6abmDLBliPlILRoQjJ1vGdpCIwXExDThAOB9dvhBunGxWgPB2Gqe0hFMPx6wkdinsoFkrUKzHy3CmFjJgCNfgJktSQEfYduCD6dfSdVrZ4kljvMf1taDqEw7vjoQoXxkaftZUxbhMrjrnIqt1SGSxvdQZCKjwxxwiMYXwlMWM1HLdTlPsN569dTOr74C82U9fCPd2IBTLWrAcJ5bKbcVUyP9hI54zaowB6IQju1yTidmuptRfWr/G0ozmdoTVCHMgxF1U8wGzxsGlWrMGW6mDLZfEs/Cq53RiSUNC+NGhGN9TTFIX6qQr/P85kPDhIgqG8/SXxW+rDaknfhnm0UsR1mPhNEOIa9beEIM1/LmszkCFOsr4Eilm+J05lGOseVASoOFDlY/2oZI3ZGLzJzLuWZCnwswY=
8583
install: skip
8684
script: skip
8785
deploy:
8886
skip_cleanup: true
8987
provider: script
90-
script: bash deployment/script/travis_deploy.sh
88+
script: bash deployment/script/travis_deploy.sh production
9189
on:
9290
branch: master
9391
notifications:

README.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -60,18 +60,22 @@ terraform workspace new development
6060

6161
### Setting up Travis-CI deployment
6262

63-
1. Encrypt the following global environment variables using the Travis-CI CLI.
63+
1. Fill in the following environment variables.
6464
```
65-
DEPLOYMENT_ACCESS_KEY_ID=
66-
DEPLOYMENT_SECRET_ACCESS_KEY=
6765
AWS_DEFAULT_REGION=
68-
KMS_KEY_ID=
69-
ROLE_ARN=
7066
STATE_S3_BUCKET=
7167
STATE_DYNAMODB_TABLE=
7268
KEY=<The project key for the ECR repository>, e.g bnc/<team>/ecr/<service-name>
7369
SERVICE_KEY=<The project key for ECS service>, e.g ecs/<service-name>
7470
SPLUNK_URL=
71+
```
72+
73+
2. Encrypt the following global environment variables using the Travis-CI CLI.
74+
```
75+
DEPLOYMENT_ACCESS_KEY_ID=
76+
DEPLOYMENT_SECRET_ACCESS_KEY=
77+
KMS_KEY_ID=
78+
ROLE_ARN=
7579
OPERATIONS_ROLE_ARN=
7680
```
7781

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ plugins {
33
id 'idea'
44
id "org.sonarqube" version "2.8" apply false
55
id "com.github.spotbugs" version "2.0.1" apply false
6-
id "com.bnc.gradle.travis-ci-versioner" version "1.1.0"
6+
id "com.bnc.gradle.travis-ci-versioner" version "1.1.1"
77
}
88

99
ext {
@@ -64,7 +64,7 @@ allprojects {
6464
}
6565

6666
checkstyle {
67-
toolVersion '8.23'
67+
toolVersion '8.26'
6868
tasks.withType(Checkstyle) {
6969
reports {
7070
xml.enabled false

config/checkstyle/checkstyle.xml

Lines changed: 54 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
<?xml version="1.0"?>
22
<!DOCTYPE module PUBLIC
3-
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
4-
"http://www.puppycrawl.com/dtds/configuration_1_3.dtd">
3+
"-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
4+
"https://checkstyle.org/dtds/configuration_1_3.dtd">
55

66
<!--
77
Checkstyle configuration that checks the Google coding conventions from Google Java Style
8-
that can be found at https://google.github.io/styleguide/javaguide.html.
8+
that can be found at https://google.github.io/styleguide/javaguide.html
99
1010
Checkstyle is very configurable. Be sure to read the documentation at
1111
http://checkstyle.sf.net (or in your downloaded distribution).
@@ -14,46 +14,44 @@
1414
1515
Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov.
1616
-->
17-
<module name="Checker">
17+
18+
<module name = "Checker">
1819
<property name="charset" value="UTF-8"/>
1920

2021
<property name="severity" value="error"/>
2122

2223
<property name="fileExtensions" value="java, properties, xml"/>
23-
24-
<!-- Suppresions for resources -->
25-
<module name="SuppressionFilter">
26-
<property name="file" value="${config_loc}/test_suppressions.xml"/>
24+
<!-- Excludes all 'module-info.java' files -->
25+
<!-- See https://checkstyle.org/config_filefilters.html -->
26+
<module name="BeforeExecutionExclusionFileFilter">
27+
<property name="fileNamePattern" value="module\-info\.java$"/>
2728
</module>
28-
2929
<!-- Checks for whitespace -->
3030
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
3131
<module name="FileTabCharacter">
3232
<property name="eachLine" value="true"/>
3333
</module>
3434

35-
<module name="NewlineAtEndOfFile">
36-
<property name="lineSeparator" value="lf"/>
35+
<module name="LineLength">
36+
<property name="fileExtensions" value="java"/>
37+
<property name="max" value="150"/>
38+
<property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
3739
</module>
3840

3941
<module name="TreeWalker">
4042
<module name="OuterTypeFilename"/>
4143
<module name="IllegalTokenText">
4244
<property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/>
4345
<property name="format"
44-
value="\\u00(08|09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>
45-
<property name="message" value="Avoid using corresponding octal or Unicode escape."/>
46+
value="\\u00(09|0(a|A)|0(c|C)|0(d|D)|22|27|5(C|c))|\\(0(10|11|12|14|15|42|47)|134)"/>
47+
<property name="message"
48+
value="Consider using special escape sequence instead of octal value or Unicode escaped value."/>
4649
</module>
4750
<module name="AvoidEscapedUnicodeCharacters">
4851
<property name="allowEscapesForControlCharacters" value="true"/>
4952
<property name="allowByTailComment" value="true"/>
5053
<property name="allowNonPrintableEscapes" value="true"/>
5154
</module>
52-
<module name="LineLength">
53-
<property name="max" value="150"/>
54-
<property name="ignorePattern"
55-
value="^package.*|^import.*|a href|href|http://|https://|ftp://"/>
56-
</module>
5755
<module name="AvoidStarImport"/>
5856
<module name="UnusedImports"/>
5957
<module name="OneTopLevelClass"/>
@@ -68,16 +66,19 @@
6866
<module name="RightCurly">
6967
<property name="id" value="RightCurlySame"/>
7068
<property name="tokens"
71-
value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_DO"/>
69+
value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE,
70+
LITERAL_DO"/>
7271
</module>
7372
<module name="RightCurly">
7473
<property name="id" value="RightCurlyAlone"/>
7574
<property name="option" value="alone"/>
7675
<property name="tokens"
77-
value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT, INSTANCE_INIT"/>
76+
value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT,
77+
INSTANCE_INIT"/>
7878
</module>
7979
<module name="WhitespaceAround">
8080
<property name="allowEmptyConstructors" value="true"/>
81+
<property name="allowEmptyLambdas" value="true"/>
8182
<property name="allowEmptyMethods" value="true"/>
8283
<property name="allowEmptyTypes" value="true"/>
8384
<property name="allowEmptyLoops" value="true"/>
@@ -92,14 +93,9 @@
9293
<module name="MissingSwitchDefault"/>
9394
<module name="FallThrough"/>
9495
<module name="UpperEll"/>
95-
<module name="TodoComment">
96-
<property name="format" value="(TODO)|(FIXME)"/>
97-
</module>
9896
<module name="ModifierOrder"/>
9997
<module name="EmptyLineSeparator">
10098
<property name="allowNoEmptyLineBetweenFields" value="true"/>
101-
<property name="allowMultipleEmptyLines" value="false"/>
102-
<property name="allowMultipleEmptyLinesInsideClassMembers" value="false"/>
10399
</module>
104100
<module name="SeparatorWrap">
105101
<property name="id" value="SeparatorWrapDot"/>
@@ -111,6 +107,23 @@
111107
<property name="tokens" value="COMMA"/>
112108
<property name="option" value="EOL"/>
113109
</module>
110+
<module name="SeparatorWrap">
111+
<!-- ELLIPSIS is EOL until https://github.com/google/styleguide/issues/258 -->
112+
<property name="id" value="SeparatorWrapEllipsis"/>
113+
<property name="tokens" value="ELLIPSIS"/>
114+
<property name="option" value="EOL"/>
115+
</module>
116+
<module name="SeparatorWrap">
117+
<!-- ARRAY_DECLARATOR is EOL until https://github.com/google/styleguide/issues/259 -->
118+
<property name="id" value="SeparatorWrapArrayDeclarator"/>
119+
<property name="tokens" value="ARRAY_DECLARATOR"/>
120+
<property name="option" value="EOL"/>
121+
</module>
122+
<module name="SeparatorWrap">
123+
<property name="id" value="SeparatorWrapMethodRef"/>
124+
<property name="tokens" value="METHOD_REF"/>
125+
<property name="option" value="nl"/>
126+
</module>
114127
<module name="PackageName">
115128
<property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/>
116129
<message key="name.invalidPattern"
@@ -126,30 +139,23 @@
126139
value="Member name ''{0}'' must match pattern ''{1}''."/>
127140
</module>
128141
<module name="ParameterName">
129-
<property name="id" value="ParameterNameNonPublic"/>
130142
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
131-
<property name="accessModifiers" value="protected, package, private"/>
132-
<property name="ignoreOverridden" value="true"/>
133143
<message key="name.invalidPattern"
134144
value="Parameter name ''{0}'' must match pattern ''{1}''."/>
135145
</module>
136-
<module name="ParameterName">
137-
<property name="id" value="ParameterNamePublic"/>
138-
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
139-
<property name="accessModifiers" value="public"/>
140-
<property name="ignoreOverridden" value="true"/>
146+
<module name="LambdaParameterName">
147+
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
141148
<message key="name.invalidPattern"
142-
value="Parameter name ''{0}'' must match pattern ''{1}''."/>
149+
value="Lambda parameter name ''{0}'' must match pattern ''{1}''."/>
143150
</module>
144151
<module name="CatchParameterName">
145-
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
152+
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
146153
<message key="name.invalidPattern"
147154
value="Catch parameter name ''{0}'' must match pattern ''{1}''."/>
148155
</module>
149156
<module name="LocalVariableName">
150157
<property name="tokens" value="VARIABLE_DEF"/>
151-
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/>
152-
<property name="allowOneCharVarInForLoop" value="true"/>
158+
<property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/>
153159
<message key="name.invalidPattern"
154160
value="Local variable name ''{0}'' must match pattern ''{1}''."/>
155161
</module>
@@ -199,42 +205,48 @@
199205
<property name="customImportOrderRules" value="STATIC###THIRD_PARTY_PACKAGE"/>
200206
</module>
201207
<module name="MethodParamPad"/>
208+
<module name="NoWhitespaceBefore">
209+
<property name="tokens"
210+
value="COMMA, SEMI, POST_INC, POST_DEC, DOT, ELLIPSIS, METHOD_REF"/>
211+
<property name="allowLineBreaks" value="true"/>
212+
</module>
202213
<module name="ParenPad"/>
203214
<module name="OperatorWrap">
204215
<property name="option" value="NL"/>
205216
<property name="tokens"
206-
value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR, METHOD_REF "/>
217+
value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR,
218+
LT, MINUS, MOD, NOT_EQUAL, PLUS, QUESTION, SL, SR, STAR, METHOD_REF "/>
207219
</module>
208220
<module name="AnnotationLocation">
209221
<property name="id" value="AnnotationLocationMostCases"/>
210-
<property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/>
222+
<property name="tokens"
223+
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/>
211224
</module>
212225
<module name="AnnotationLocation">
213226
<property name="id" value="AnnotationLocationVariables"/>
214227
<property name="tokens" value="VARIABLE_DEF"/>
215228
<property name="allowSamelineMultipleAnnotations" value="true"/>
216229
</module>
217230
<module name="NonEmptyAtclauseDescription"/>
231+
<module name="InvalidJavadocPosition"/>
218232
<module name="JavadocTagContinuationIndentation"/>
219233
<module name="SummaryJavadoc">
220234
<property name="forbiddenSummaryFragments"
221235
value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/>
222236
</module>
237+
<module name="JavadocParagraph"/>
223238
<module name="AtclauseOrder">
224239
<property name="tagOrder" value="@param, @return, @throws, @deprecated"/>
225240
<property name="target"
226241
value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/>
227242
</module>
228243
<module name="JavadocMethod">
229244
<property name="scope" value="public"/>
230-
<property name="allowMissingJavadoc" value="true"/>
231245
<property name="allowMissingParamTags" value="true"/>
232246
<property name="allowMissingThrowsTags" value="true"/>
233247
<property name="allowMissingReturnTag" value="true"/>
234-
<property name="minLineCount" value="2"/>
235248
<property name="allowedAnnotations" value="Override, Test"/>
236249
<property name="allowThrowsTagsForSubclasses" value="true"/>
237-
<property name="ignoreMethodNamesRegex" value="main"/>
238250
</module>
239251
<module name="MethodName">
240252
<property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/>

deployment/script/travis_deploy.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
cd $TRAVIS_BUILD_DIR
44
cd deployment/terraform/ecs-service
55
terraform init -backend-config="bucket=${STATE_S3_BUCKET}" -backend-config="region=${AWS_DEFAULT_REGION}" -backend-config="dynamodb_table=${STATE_DYNAMODB_TABLE}" -backend-config="kms_key_id=${KMS_KEY_ID}" -backend-config="key=${SERVICE_KEY}" -backend-config="role_arn=${ROLE_ARN}" 1> /dev/null || exit 1
6+
terraform workspace select $1 || terraform workspace new $1
67
terraform apply -backup="-" -input=false -auto-approve -var role_arn=${ROLE_ARN} -var service_name=${SERVICE_NAME} -var service_version=${TRAVIS_BUILD_NUMBER} -var splunk_url=${SPLUNK_URL} -var splunk_token=${SPLUNK_TOKEN} -var tags="{\"AuthorName\":\"${AUTHOR_NAME}\",\"GitRepository\":\"${TRAVIS_REPO_SLUG}\"}" 1> /dev/null || exit 1
78
eval $(terraform output -json | jq -r .' | @sh "export CLUSTER_NAME=\(.ecs_cluster_name.value)\nexport DEPLOYMENT_ROLE_ARN=\(.deployment_role_arn.value) "')
89
eval $(aws sts assume-role --role-arn "$DEPLOYMENT_ROLE_ARN" --role-session-name "${TRAVIS_REPO_SLUG//\//-}" | jq -r '.Credentials | @sh "export AWS_SESSION_TOKEN=\(.SessionToken)\nexport AWS_ACCESS_KEY_ID=\(.AccessKeyId)\nexport AWS_SECRET_ACCESS_KEY=\(.SecretAccessKey) "')

0 commit comments

Comments
 (0)