diff options
author | Julien Desprez <jdesprez@google.com> | 2018-10-22 11:37:22 -0700 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-10-22 11:37:22 -0700 |
commit | 13217871fefa43f6d16fbb31b04e9904996d87d5 (patch) | |
tree | ede84fcf0a9687d4907ae5f8a4788271d62e0922 /buildscripts | |
parent | cfbefd32336596ea63784607e4106dc37ce0567f (diff) | |
parent | 6fbc3cf5a1a3369fd354c1e5d9f90c86e4bce0a4 (diff) | |
download | opencensus-java-13217871fefa43f6d16fbb31b04e9904996d87d5.tar.gz |
Merge remote-tracking branch 'aosp/upstream-master' into merge am: dd3cabeacc
am: 6fbc3cf5a1
Change-Id: I11b0ec1cf561d2a14da78e444b1594f167787fe6
Diffstat (limited to 'buildscripts')
-rw-r--r-- | buildscripts/checkstyle.license | 15 | ||||
-rw-r--r-- | buildscripts/checkstyle.xml | 277 | ||||
-rw-r--r-- | buildscripts/codecov.yml | 2 | ||||
-rw-r--r-- | buildscripts/import-control.xml | 252 | ||||
-rw-r--r-- | buildscripts/kokoro/linux.cfg | 5 | ||||
-rwxr-xr-x | buildscripts/kokoro/linux.sh | 23 | ||||
-rw-r--r-- | buildscripts/kokoro/linux_build.cfg | 19 | ||||
-rw-r--r-- | buildscripts/kokoro/linux_example_bazel.cfg | 10 | ||||
-rw-r--r-- | buildscripts/kokoro/linux_example_format.cfg | 9 | ||||
-rw-r--r-- | buildscripts/kokoro/linux_example_gradle.cfg | 10 | ||||
-rw-r--r-- | buildscripts/kokoro/linux_example_license.cfg | 10 | ||||
-rw-r--r-- | buildscripts/kokoro/linux_example_maven.cfg | 10 | ||||
-rw-r--r-- | buildscripts/kokoro/linux_framework.cfg | 10 | ||||
-rw-r--r-- | buildscripts/kokoro/linux_git_history.cfg | 10 | ||||
-rwxr-xr-x | buildscripts/kokoro/linux_presubmit.sh | 90 | ||||
-rw-r--r-- | buildscripts/kokoro/macos.cfg | 6 | ||||
-rwxr-xr-x | buildscripts/kokoro/windows.bat | 21 | ||||
-rw-r--r-- | buildscripts/kokoro/windows.cfg | 5 |
18 files changed, 784 insertions, 0 deletions
diff --git a/buildscripts/checkstyle.license b/buildscripts/checkstyle.license new file mode 100644 index 00000000..27bac1a2 --- /dev/null +++ b/buildscripts/checkstyle.license @@ -0,0 +1,15 @@ +^/\*$ +^ \* Copyright \d\d\d\d(-\d\d)?, OpenCensus Authors$ +^ \*$ +^ \* Licensed under the Apache License, Version 2.0 \(the "License"\);$ +^ \* you may not use this file except in compliance with the License\.$ +^ \* You may obtain a copy of the License at$ +^ \*$ +^ \* http://www.apache.org/licenses/LICENSE-2\.0$ +^ \*$ +^ \* Unless required by applicable law or agreed to in writing, software$ +^ \* distributed under the License is distributed on an "AS IS" BASIS,$ +^ \* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied\.$ +^ \* See the License for the specific language governing permissions and$ +^ \* limitations under the License\.$ +^ \*/$
\ No newline at end of file diff --git a/buildscripts/checkstyle.xml b/buildscripts/checkstyle.xml new file mode 100644 index 00000000..50b146e7 --- /dev/null +++ b/buildscripts/checkstyle.xml @@ -0,0 +1,277 @@ +<?xml version="1.0"?> +<!DOCTYPE module PUBLIC + "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN" + "https://checkstyle.org/dtds/configuration_1_3.dtd"> + +<!-- + Checkstyle configuration that checks the Google coding conventions from Google Java Style + that can be found at https://google.github.io/styleguide/javaguide.html. + + Checkstyle is very configurable. Be sure to read the documentation at + http://checkstyle.sf.net (or in your downloaded distribution). + + To completely disable a check, just comment it out or delete it from the file. + + Authors: Max Vetrenko, Ruslan Diachenko, Roman Ivanov. + --> + +<module name = "Checker"> + <property name="charset" value="UTF-8"/> + + <property name="severity" value="error"/> + + + <module name="RegexpHeader"> + <property name="headerFile" value="${rootDir}/buildscripts/checkstyle.license"/> + <property name="fileExtensions" value="java"/> + </module> + + <property name="fileExtensions" value="java, properties, xml"/> + <!-- Checks for whitespace --> + <!-- See http://checkstyle.sf.net/config_whitespace.html --> + <module name="FileTabCharacter"> + <property name="eachLine" value="true"/> + </module> + + <module name="TreeWalker"> + <module name="OuterTypeFilename"/> + <module name="IllegalTokenText"> + <property name="tokens" value="STRING_LITERAL, CHAR_LITERAL"/> + <property name="format" + 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)"/> + <property name="message" + value="Consider using special escape sequence instead of octal value or Unicode escaped value."/> + </module> + <module name="AvoidEscapedUnicodeCharacters"> + <property name="allowEscapesForControlCharacters" value="true"/> + <property name="allowByTailComment" value="true"/> + <property name="allowNonPrintableEscapes" value="true"/> + </module> + <module name="LineLength"> + <property name="max" value="100"/> + <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://"/> + </module> + <module name="AvoidStarImport"/> + <module name="RedundantImport"/> + <module name="OneTopLevelClass"/> + <module name="NoLineWrap"/> + <module name="EmptyBlock"> + <property name="option" value="TEXT"/> + <property name="tokens" + value="LITERAL_TRY, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, LITERAL_SWITCH"/> + </module> + <module name="NeedBraces"/> + <module name="LeftCurly"/> + <module name="RightCurly"> + <property name="id" value="RightCurlySame"/> + <property name="tokens" + value="LITERAL_TRY, LITERAL_CATCH, LITERAL_FINALLY, LITERAL_IF, LITERAL_ELSE, + LITERAL_DO"/> + </module> + <module name="RightCurly"> + <property name="id" value="RightCurlyAlone"/> + <property name="option" value="alone"/> + <property name="tokens" + value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT, + INSTANCE_INIT"/> + </module> + <module name="WhitespaceAround"> + <property name="allowEmptyConstructors" value="true"/> + <property name="allowEmptyMethods" value="true"/> + <property name="allowEmptyTypes" value="true"/> + <property name="allowEmptyLoops" value="true"/> + <message key="ws.notFollowed" + value="WhitespaceAround: ''{0}'' is not followed by whitespace. Empty blocks may only be represented as '{}' when not part of a multi-block statement (4.1.3)"/> + <message key="ws.notPreceded" + value="WhitespaceAround: ''{0}'' is not preceded with whitespace."/> + </module> + <module name="OneStatementPerLine"/> + <module name="MultipleVariableDeclarations"/> + <module name="ArrayTypeStyle"/> + <!-- <!-\- This rule conflicts with Error Prone's exhaustiveness checking. -\-> --> + <!-- <module name="MissingSwitchDefault"/> --> + <module name="FallThrough"/> + <module name="UpperEll"/> + <module name="ModifierOrder"/> + <module name="EmptyLineSeparator"> + <property name="allowNoEmptyLineBetweenFields" value="true"/> + </module> + <module name="SeparatorWrap"> + <property name="id" value="SeparatorWrapDot"/> + <property name="tokens" value="DOT"/> + <property name="option" value="nl"/> + </module> + <module name="SeparatorWrap"> + <property name="id" value="SeparatorWrapComma"/> + <property name="tokens" value="COMMA"/> + <property name="option" value="EOL"/> + </module> + <module name="SeparatorWrap"> + <!-- ELLIPSIS is EOL until https://github.com/google/styleguide/issues/258 --> + <property name="id" value="SeparatorWrapEllipsis"/> + <property name="tokens" value="ELLIPSIS"/> + <property name="option" value="EOL"/> + </module> + <module name="SeparatorWrap"> + <!-- ARRAY_DECLARATOR is EOL until https://github.com/google/styleguide/issues/259 --> + <property name="id" value="SeparatorWrapArrayDeclarator"/> + <property name="tokens" value="ARRAY_DECLARATOR"/> + <property name="option" value="EOL"/> + </module> + <module name="SeparatorWrap"> + <property name="id" value="SeparatorWrapMethodRef"/> + <property name="tokens" value="METHOD_REF"/> + <property name="option" value="nl"/> + </module> + <module name="PackageName"> + <property name="format" value="^[a-z]+(\.[a-z][a-z0-9]*)*$"/> + <message key="name.invalidPattern" + value="Package name ''{0}'' must match pattern ''{1}''."/> + </module> + <module name="TypeName"> + <message key="name.invalidPattern" + value="Type name ''{0}'' must match pattern ''{1}''."/> + </module> + <module name="MemberName"> + <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9]*$"/> + <message key="name.invalidPattern" + value="Member name ''{0}'' must match pattern ''{1}''."/> + </module> + <module name="ParameterName"> + <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/> + <message key="name.invalidPattern" + value="Parameter name ''{0}'' must match pattern ''{1}''."/> + </module> + <module name="LambdaParameterName"> + <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/> + <message key="name.invalidPattern" + value="Lambda parameter name ''{0}'' must match pattern ''{1}''."/> + </module> + <module name="CatchParameterName"> + <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/> + <message key="name.invalidPattern" + value="Catch parameter name ''{0}'' must match pattern ''{1}''."/> + </module> + <module name="LocalVariableName"> + <property name="tokens" value="VARIABLE_DEF"/> + <property name="format" value="^[a-z]([a-z0-9][a-zA-Z0-9]*)?$"/> + <message key="name.invalidPattern" + value="Local variable name ''{0}'' must match pattern ''{1}''."/> + </module> + <module name="ClassTypeParameterName"> + <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/> + <message key="name.invalidPattern" + value="Class type name ''{0}'' must match pattern ''{1}''."/> + </module> + <module name="MethodTypeParameterName"> + <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/> + <message key="name.invalidPattern" + value="Method type name ''{0}'' must match pattern ''{1}''."/> + </module> + <module name="InterfaceTypeParameterName"> + <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)"/> + <message key="name.invalidPattern" + value="Interface type name ''{0}'' must match pattern ''{1}''."/> + </module> + <module name="NoFinalizer"/> + <module name="GenericWhitespace"> + <message key="ws.followed" + value="GenericWhitespace ''{0}'' is followed by whitespace."/> + <message key="ws.preceded" + value="GenericWhitespace ''{0}'' is preceded with whitespace."/> + <message key="ws.illegalFollow" + value="GenericWhitespace ''{0}'' should followed by whitespace."/> + <message key="ws.notPreceded" + value="GenericWhitespace ''{0}'' is not preceded with whitespace."/> + </module> + <!-- <!-\- Checkstyle indentation rules conflict with google-java-format: -\-> --> + <!-- <module name="Indentation"> --> + <!-- <property name="basicOffset" value="2"/> --> + <!-- <property name="braceAdjustment" value="0"/> --> + <!-- <property name="caseIndent" value="2"/> --> + <!-- <property name="throwsIndent" value="4"/> --> + <!-- <property name="lineWrappingIndentation" value="4"/> --> + <!-- <property name="arrayInitIndent" value="2"/> --> + <!-- </module> --> + <module name="AbbreviationAsWordInName"> + <property name="ignoreFinal" value="false"/> + <property name="allowedAbbreviationLength" value="1"/> + </module> + <module name="OverloadMethodsDeclarationOrder"/> + <!-- <!-\- Many unit tests define all variables at the start of the method. -\-> --> + <!-- <module name="VariableDeclarationUsageDistance"/> --> + <module name="CustomImportOrder"> + <property name="sortImportsInGroupAlphabetically" value="true"/> + <property name="separateLineBetweenGroups" value="true"/> + <property name="customImportOrderRules" value="STATIC###THIRD_PARTY_PACKAGE"/> + </module> + <module name="MethodParamPad"/> + <module name="NoWhitespaceBefore"> + <property name="tokens" + value="COMMA, SEMI, POST_INC, POST_DEC, DOT, ELLIPSIS, METHOD_REF"/> + <property name="allowLineBreaks" value="true"/> + </module> + <module name="ParenPad"/> + <module name="OperatorWrap"> + <property name="option" value="NL"/> + <property name="tokens" + 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 "/> + </module> + <module name="AnnotationLocation"> + <property name="id" value="AnnotationLocationMostCases"/> + <property name="tokens" + value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF"/> + </module> + <module name="AnnotationLocation"> + <property name="id" value="AnnotationLocationVariables"/> + <property name="tokens" value="VARIABLE_DEF"/> + <property name="allowSamelineMultipleAnnotations" value="true"/> + </module> + <module name="NonEmptyAtclauseDescription"/> + <module name="JavadocTagContinuationIndentation"/> + <module name="SummaryJavadoc"> + <property name="forbiddenSummaryFragments" + value="^@return the *|^This method returns |^A [{]@code [a-zA-Z0-9]+[}]( is a )"/> + </module> + <module name="JavadocParagraph"/> + <module name="AtclauseOrder"> + <property name="tagOrder" value="@param, @return, @throws, @deprecated"/> + <property name="target" + value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF, VARIABLE_DEF"/> + </module> + <module name="JavadocMethod"> + <property name="scope" value="public"/> + <property name="allowMissingParamTags" value="true"/> + <property name="allowMissingThrowsTags" value="true"/> + <property name="allowMissingReturnTag" value="true"/> + <property name="minLineCount" value="2"/> + <!-- <!-\- Too restrictive for tests -\-> --> + <!-- <property name="allowedAnnotations" value="Override, Test"/ --> + <property name="allowedAnnotations" + value="Override, Test, Before, After, BeforeClass, AfterClass, Setup, + TearDown"/> + <property name="allowThrowsTagsForSubclasses" value="true"/> + </module> + <module name="MethodName"> + <property name="format" value="^[a-z][a-z0-9][a-zA-Z0-9_]*$"/> + <message key="name.invalidPattern" + value="Method name ''{0}'' must match pattern ''{1}''."/> + </module> + <module name="SingleLineJavadoc"> + <!-- <!-\- Wrong interpretation of the style guide; -\-> --> + <!-- <property name="ignoreInlineTags" value="false"/ --> + </module> + <module name="EmptyCatchBlock"> + <property name="exceptionVariableName" value="expected"/> + </module> + <module name="CommentsIndentation"/> + <module name="SuppressWarningsHolder"/> + <module name="ImportControl"> + <property name="file" value="${rootDir}/buildscripts/import-control.xml"/> + <property name="path" value="^.*[\\/]src[\\/]main[\\/]java[\\/].*$"/> + </module> + <module name="SuppressionCommentFilter"/> + </module> + <module name="SuppressWarningsFilter"/> +</module> diff --git a/buildscripts/codecov.yml b/buildscripts/codecov.yml new file mode 100644 index 00000000..a2c8d611 --- /dev/null +++ b/buildscripts/codecov.yml @@ -0,0 +1,2 @@ +ignore: + - "impl_core/src/main/java/io/opencensus/implcore/internal/VarInt.java" # ignore VarInt diff --git a/buildscripts/import-control.xml b/buildscripts/import-control.xml new file mode 100644 index 00000000..d545878a --- /dev/null +++ b/buildscripts/import-control.xml @@ -0,0 +1,252 @@ +<?xml version="1.0"?> +<!DOCTYPE import-control PUBLIC + "-//Puppy Crawl//DTD Import Control 1.3//EN" + "http://checkstyle.sourceforge.net/dtds/import_control_1_3.dtd"> + +<!-- + +General guidelines on imports: + +- 'stats' depends on 'tags', but 'tags' shouldn't depend on 'stats' or 'trace'. + 'stats'/'tags' and 'trace' should remain independent, where possible. + +- Packages should not be split between artifacts. + +- 'internal' packages should only be imported by packages within the same + artifact. + +- Since we are trying to remove dependencies on Guava (issue #1113), we should + avoid adding any new Guava imports here, especially in the API. + +--> + +<import-control pkg="io.opencensus"> + <allow pkg="com.google.auto.value"/> + <allow pkg="com.google.errorprone.annotations"/> + <allow pkg="java"/> + <allow pkg="javax"/> + <allow class="io.grpc.Context"/> + <subpackage name="common"> + <allow pkg="io.opencensus.common"/> + </subpackage> + <subpackage name="internal"> + <allow pkg="io.opencensus.common"/> + <allow pkg="io.opencensus.internal"/> + </subpackage> + <subpackage name="tags"> + <allow pkg="io.opencensus.common"/> + <allow pkg="io.opencensus.internal"/> + <allow pkg="io.opencensus.tags"/> + </subpackage> + <subpackage name="metrics"> + <allow pkg="io.opencensus.internal"/> + <allow pkg="io.opencensus.common"/> + <allow pkg="io.opencensus.metrics"/> + </subpackage> + <subpackage name="stats"> + <allow pkg="io.opencensus.common"/> + <allow pkg="io.opencensus.internal"/> + <allow pkg="io.opencensus.stats"/> + <allow pkg="io.opencensus.tags"/> + </subpackage> + <subpackage name="trace"> + <allow pkg="io.opencensus.common"/> + <allow pkg="io.opencensus.internal"/> + <allow pkg="io.opencensus.trace"/> + + <!-- These dependencies on impl/implcore are only needed by --> + <!-- io.opencensus.trace.TraceComponentImpl and io.opencensus.trace.TraceComponentImplLite, --> + <!-- which are deprecated. --> + <allow class="io.opencensus.impl.internal.DisruptorEventQueue"/> + <allow class="io.opencensus.impl.trace.internal.ThreadLocalRandomHandler"/> + <allow class="io.opencensus.implcore.common.MillisClock"/> + <allow class="io.opencensus.implcore.internal.SimpleEventQueue"/> + <allow class="io.opencensus.implcore.trace.TraceComponentImplBase"/> + <allow class="io.opencensus.implcore.trace.internal.RandomHandler.SecureRandomHandler"/> + </subpackage> + <subpackage name="contrib"> + <allow pkg="com.google.common"/> + <allow pkg="io.opencensus.common"/> + <subpackage name="agent"> + <allow pkg="com.google.auto"/> + <allow pkg="com.typesafe.config"/> + <allow pkg="edu.umd.cs.findbugs.annotations"/> + <allow pkg="io.opencensus.contrib.agent"/> + <allow pkg="io.opencensus.trace"/> + <allow pkg="net.bytebuddy"/> + </subpackage> + <subpackage name="appengine.standard.util"> + <allow pkg="com.google.apphosting"/> + <allow pkg="io.opencensus.trace"/> + </subpackage> + <subpackage name="exemplar.util"> + <allow pkg="io.opencensus.stats"/> + <allow pkg="io.opencensus.trace"/> + </subpackage> + <subpackage name="grpc.metrics"> + <allow pkg="io.opencensus.contrib.grpc.metrics"/> + <allow pkg="io.opencensus.stats"/> + <allow pkg="io.opencensus.tags"/> + </subpackage> + <subpackage name="http.util"> + <allow pkg="io.opencensus.contrib.http.util"/> + <allow pkg="io.opencensus.stats"/> + <allow pkg="io.opencensus.tags"/> + <allow pkg="io.opencensus.trace"/> + </subpackage> + <subpackage name="logcorrelation.log4j2"> + <allow pkg="io.opencensus.contrib.logcorrelation.log4j2"/> + <allow pkg="io.opencensus.trace"/> + <disallow pkg="org.apache.logging.log4j.core.impl"/> + <allow pkg="org.apache.logging.log4j"/> + </subpackage> + <subpackage name="logcorrelation.stackdriver"> + <allow pkg="com.google.cloud"/> + <allow pkg="io.opencensus.trace"/> + </subpackage> + <subpackage name="spring"> + <allow pkg="io.opencensus.trace"/> + <allow pkg="org.aspectj.lang"/> + <allow pkg="org.aspectj.lang.annotation"/> + <allow pkg="org.aspectj.lang.reflect"/> + <allow pkg="org.springframework.beans.factory.annotation"/> + <subpackage name="sleuth"> + <allow pkg="io.opencensus.trace"/> + <allow pkg="org.apache.commons.logging"/> + <allow pkg="org.springframework.beans.factory.annotation"/> + <allow pkg="org.springframework.beans.factory.config"/> + <allow pkg="org.springframework.boot.autoconfigure"/> + <allow pkg="org.springframework.boot.context"/> + <allow pkg="org.springframework.context.annotation"/> + <allow pkg="org.springframework.boot.context.properties"/> + <allow pkg="org.springframework.cloud.sleuth"/> + <allow pkg="org.springframework.core"/> + </subpackage> + </subpackage> + <subpackage name="zpages"> + <allow pkg="com.sun.net.httpserver"/> + <allow pkg="io.opencensus.contrib.grpc.metrics"/> + <allow pkg="io.opencensus.contrib.zpages"/> + <allow pkg="io.opencensus.stats"/> + <allow pkg="io.opencensus.tags"/> + <allow pkg="io.opencensus.trace"/> + </subpackage> + <subpackage name="monitoredresource.util"> + <allow pkg="io.opencensus.contrib.monitoredresource.util"/> + </subpackage> + <subpackage name="dropwizard"> + <allow pkg="io.opencensus.contrib.dropwizard"/> + <allow pkg="io.opencensus.metrics"/> + <allow pkg="io.opencensus.implcore"/> + <allow pkg="io.opencensus.internal"/> + <allow pkg="com.codahale.metrics"/> + </subpackage> + </subpackage> + <subpackage name="exporter"> + <allow pkg="com.google.common"/> + <allow pkg="io.opencensus.common"/> + <subpackage name="stats"> + <allow pkg="io.opencensus.stats"/> + <allow pkg="io.opencensus.tags"/> + <subpackage name="prometheus"> + <allow pkg="io.opencensus.exporter.stats.prometheus"/> + <allow pkg="io.opencensus.trace"/> + <allow pkg="io.prometheus.client"/> + </subpackage> + <subpackage name="signalfx"> + <allow pkg="com.signalfx"/> + <allow pkg="io.opencensus.exporter.stats.signalfx"/> + <allow pkg="io.opencensus.trace"/> + </subpackage> + <subpackage name="stackdriver"> + <allow pkg="com.google"/> + <allow pkg="io.opencensus.exporter.stats.stackdriver"/> + <allow pkg="io.opencensus.trace"/> + <allow pkg="io.opencensus.contrib.monitoredresource.util"/> + </subpackage> + </subpackage> + <subpackage name="trace"> + <allow pkg="io.opencensus.trace"/> + <subpackage name="instana"> + <allow pkg="io.opencensus.exporter.trace.instana"/> + </subpackage> + <subpackage name="jaeger"> + <allow pkg="com.uber.jaeger"/> + <allow pkg="io.opencensus.exporter.trace.jaeger"/> + <allow pkg="org.apache.thrift"/> + </subpackage> + <subpackage name="ocagent"> + <allow pkg="com.google.protobuf"/> + <allow pkg="io.grpc"/> + <allow pkg="io.opencensus.contrib.monitoredresource.util"/> + <allow pkg="io.opencensus.contrib.opencensus.proto.util"/> + <allow pkg="io.opencensus.exporter.trace.ocagent"/> + <allow pkg="io.opencensus.proto"/> + <allow pkg="io.opencensus.trace"/> + </subpackage> + <subpackage name="stackdriver"> + <allow pkg="com.google"/> + <allow pkg="io.opencensus.exporter.trace.stackdriver"/> + <allow pkg="io.opencensus.contrib.monitoredresource.util"/> + </subpackage> + <subpackage name="zipkin"> + <allow pkg="io.opencensus.exporter.trace.zipkin"/> + <allow pkg="zipkin2"/> + </subpackage> + </subpackage> + </subpackage> + <subpackage name="implcore"> + <allow pkg="com.google.common"/> + <allow pkg="io.opencensus.common"/> + <allow pkg="io.opencensus.implcore"/> + <allow pkg="io.opencensus.metrics"/> + <allow pkg="io.opencensus.stats"/> + <allow pkg="io.opencensus.tags"/> + <allow pkg="io.opencensus.trace"/> + </subpackage> + <subpackage name="impl"> + <allow pkg="com.lmax.disruptor"/> + <allow pkg="io.opencensus.common"/> + <allow pkg="io.opencensus.impl"/> + <allow pkg="io.opencensus.implcore"/> + <allow pkg="io.opencensus.metrics"/> + <allow pkg="io.opencensus.stats"/> + <allow pkg="io.opencensus.tags"/> + <allow pkg="io.opencensus.trace"/> + </subpackage> + <subpackage name="impllite"> + <allow pkg="io.opencensus.common"/> + <allow pkg="io.opencensus.implcore"/> + <allow pkg="io.opencensus.impllite"/> + <allow pkg="io.opencensus.metrics"/> + <allow pkg="io.opencensus.stats"/> + <allow pkg="io.opencensus.tags"/> + <allow pkg="io.opencensus.trace"/> + </subpackage> + <subpackage name="testing"> + <allow pkg="com.google.common"/> + <allow pkg="io.opencensus.common"/> + <subpackage name="common"> + <allow pkg="io.opencensus.testing.common"/> + </subpackage> + <subpackage name="export"> + <allow pkg="io.opencensus.stats"/> + <allow pkg="io.opencensus.tags"/> + <allow pkg="io.opencensus.testing.export"/> + <allow pkg="io.opencensus.trace"/> + </subpackage> + </subpackage> + <subpackage name="examples"> + <allow pkg="com.google.common"/> + <allow pkg="io.grpc"/> + <allow pkg="io.opencensus.common"/> + <allow pkg="io.opencensus.contrib"/> + <allow pkg="io.opencensus.examples"/> + <allow pkg="io.opencensus.exporter"/> + <allow pkg="io.opencensus.stats"/> + <allow pkg="io.opencensus.tags"/> + <allow pkg="io.opencensus.testing.export"/> + <allow pkg="io.opencensus.trace"/> + <allow pkg="io.prometheus"/> + </subpackage> +</import-control> diff --git a/buildscripts/kokoro/linux.cfg b/buildscripts/kokoro/linux.cfg new file mode 100644 index 00000000..0d9e253b --- /dev/null +++ b/buildscripts/kokoro/linux.cfg @@ -0,0 +1,5 @@ +# Config file for internal CI + +# Location of the continuous shell script in repository. +build_file: "opencensus-java/buildscripts/kokoro/linux.sh" +timeout_mins: 60
\ No newline at end of file diff --git a/buildscripts/kokoro/linux.sh b/buildscripts/kokoro/linux.sh new file mode 100755 index 00000000..e8aa21be --- /dev/null +++ b/buildscripts/kokoro/linux.sh @@ -0,0 +1,23 @@ +#!/bin/bash + +# This file is used for Linux builds. +# To run locally: +# ./buildscripts/kokoro/linux.sh + +# This script assumes `set -e`. Removing it may lead to undefined behavior. +set -exu -o pipefail + +# It would be nicer to use 'readlink -f' here but osx does not support it. +readonly OPENCENSUS_JAVA_DIR="$(cd "$(dirname "$0")"/../.. && pwd)" + +# cd to the root dir of opencensus-java +cd $(dirname $0)/../.. + +# Run tests +./gradlew clean build + +OS=`uname` +# Check the example only on Linux. +if [ "$OS" = "Linux" ] ; then + pushd examples; ./gradlew clean assemble check --stacktrace; popd +fi diff --git a/buildscripts/kokoro/linux_build.cfg b/buildscripts/kokoro/linux_build.cfg new file mode 100644 index 00000000..ddd15937 --- /dev/null +++ b/buildscripts/kokoro/linux_build.cfg @@ -0,0 +1,19 @@ +# Config file for child task BUILD + +env_vars { + key: "TASK" + value: "BUILD" +} + +# Location of the continuous shell script in repository. +build_file: "opencensus-java/buildscripts/kokoro/linux_presubmit.sh" +timeout_mins: 60 + +before_action { + fetch_keystore { + keystore_resource { + keystore_config_id: 73495 + keyname: "codecov-auth-token" + } + } +} diff --git a/buildscripts/kokoro/linux_example_bazel.cfg b/buildscripts/kokoro/linux_example_bazel.cfg new file mode 100644 index 00000000..3f4c872e --- /dev/null +++ b/buildscripts/kokoro/linux_example_bazel.cfg @@ -0,0 +1,10 @@ +# Config file for child task BUILD_EXAMPLES_BAZEL + +env_vars { + key: "TASK" + value: "BUILD_EXAMPLES_BAZEL" +} + +# Location of the continuous shell script in repository. +build_file: "opencensus-java/buildscripts/kokoro/linux_presubmit.sh" +timeout_mins: 60 diff --git a/buildscripts/kokoro/linux_example_format.cfg b/buildscripts/kokoro/linux_example_format.cfg new file mode 100644 index 00000000..6f9a3dc1 --- /dev/null +++ b/buildscripts/kokoro/linux_example_format.cfg @@ -0,0 +1,9 @@ +# Config file for child task CHECK_EXAMPLES_FORMAT +env_vars { + key: "TASK" + value: "CHECK_EXAMPLES_FORMAT" +} + +# Location of the continuous shell script in repository. +build_file: "opencensus-java/buildscripts/kokoro/linux_presubmit.sh" +timeout_mins: 60 diff --git a/buildscripts/kokoro/linux_example_gradle.cfg b/buildscripts/kokoro/linux_example_gradle.cfg new file mode 100644 index 00000000..7c14df77 --- /dev/null +++ b/buildscripts/kokoro/linux_example_gradle.cfg @@ -0,0 +1,10 @@ +# Config file for child task BUILD_EXAMPLES_GRADLE + +env_vars { + key: "TASK" + value: "BUILD_EXAMPLES_GRADLE" +} + +# Location of the continuous shell script in repository. +build_file: "opencensus-java/buildscripts/kokoro/linux_presubmit.sh" +timeout_mins: 60 diff --git a/buildscripts/kokoro/linux_example_license.cfg b/buildscripts/kokoro/linux_example_license.cfg new file mode 100644 index 00000000..19cc67d0 --- /dev/null +++ b/buildscripts/kokoro/linux_example_license.cfg @@ -0,0 +1,10 @@ +# Config file for child task CHECK_EXAMPLES_LICENSE + +env_vars { + key: "TASK" + value: "CHECK_EXAMPLES_LICENSE" +} + +# Location of the continuous shell script in repository. +build_file: "opencensus-java/buildscripts/kokoro/linux_presubmit.sh" +timeout_mins: 60 diff --git a/buildscripts/kokoro/linux_example_maven.cfg b/buildscripts/kokoro/linux_example_maven.cfg new file mode 100644 index 00000000..98f4a3b9 --- /dev/null +++ b/buildscripts/kokoro/linux_example_maven.cfg @@ -0,0 +1,10 @@ +# Config file for child task BUILD_EXAMPLES_MAVEN + +env_vars { + key: "TASK" + value: "BUILD_EXAMPLES_MAVEN" +} + +# Location of the continuous shell script in repository. +build_file: "opencensus-java/buildscripts/kokoro/linux_presubmit.sh" +timeout_mins: 60 diff --git a/buildscripts/kokoro/linux_framework.cfg b/buildscripts/kokoro/linux_framework.cfg new file mode 100644 index 00000000..112fc206 --- /dev/null +++ b/buildscripts/kokoro/linux_framework.cfg @@ -0,0 +1,10 @@ +# Config file for child task CHECKER_FRAMEWORK + +env_vars { + key: "TASK" + value: "CHECKER_FRAMEWORK" +} + +# Location of the continuous shell script in repository. +build_file: "opencensus-java/buildscripts/kokoro/linux_presubmit.sh" +timeout_mins: 60 diff --git a/buildscripts/kokoro/linux_git_history.cfg b/buildscripts/kokoro/linux_git_history.cfg new file mode 100644 index 00000000..5677835a --- /dev/null +++ b/buildscripts/kokoro/linux_git_history.cfg @@ -0,0 +1,10 @@ +# Config file for child task CHECK_GIT_HISTORY + +env_vars { + key: "TASK" + value: "CHECK_GIT_HISTORY" +} + +# Location of the continuous shell script in repository. +build_file: "opencensus-java/buildscripts/kokoro/linux_presubmit.sh" +timeout_mins: 60 diff --git a/buildscripts/kokoro/linux_presubmit.sh b/buildscripts/kokoro/linux_presubmit.sh new file mode 100755 index 00000000..bb1281b4 --- /dev/null +++ b/buildscripts/kokoro/linux_presubmit.sh @@ -0,0 +1,90 @@ +#!/bin/bash + +# This file is used for Linux builds. +# It expects TASK environment variable is defined. +# To run locally: +# ./buildscripts/kokoro/linux.sh + +# This script assumes `set -e`. Removing it may lead to undefined behavior. +set -exu -o pipefail + +# It would be nicer to use 'readlink -f' here but osx does not support it. +readonly OPENCENSUS_JAVA_DIR="$(cd "$(dirname "$0")"/../.. && pwd)" + +# cd to the root dir of opencensus-java +cd $(dirname $0)/../.. + +valid_tasks() { + echo "Valid tasks are" + echo "" + echo "- BUILD" + echo "- BUILD_EXAMPLES_BAZEL" + echo "- BUILD_EXAMPLES_GRADLE" + echo "- BUILD_EXAMPLES_MAVEN" + echo "- CHECKER_FRAMEWORK" + echo "- CHECK_EXAMPLES_FORMAT" + echo "- CHECK_EXAMPLES_LICENSE" + echo "- CHECK_GIT_HISTORY" +} + +if [[ ! -v TASK ]]; then + set +x + echo "TASK not set in environment" + valid_tasks + exit 1 +fi + +case "$TASK" in + "CHECK_GIT_HISTORY") + python ./scripts/check-git-history.py + ;; + "BUILD") + ./gradlew clean assemble --stacktrace + ./gradlew check :opencensus-all:jacocoTestReport + ./gradlew verGJF + + # Run codecoverage reporting only if the script is running + # as a part of KOKORO BUILD. If it is outside of kokoro + # then there is no access to the codecov token and hence + # there is no point in running it. + if [[ -v KOKORO_BUILD_NUMBER ]]; then + # Get token from file located at + # $KOKORO_KEYSTORE_DIR/73495_codecov-auth-token + if [ -f $KOKORO_KEYSTORE_DIR/73495_codecov-auth-token ] ; then + curl -s https://codecov.io/bash | bash -s -- -Z -t @$KOKORO_KEYSTORE_DIR/73495_codecov-auth-token + else + echo "Codecov token file not found" + exit 1 + fi + else + echo "Skipping codecov reporting" + fi + ;; + "CHECKER_FRAMEWORK") + ./gradlew clean assemble -PcheckerFramework=true + ;; + "CHECK_EXAMPLES_LICENSE") + curl -L -o checkstyle-8.12-all.jar https://github.com/checkstyle/checkstyle/releases/download/checkstyle-8.12/checkstyle-8.12-all.jar + java -DrootDir=. -jar checkstyle-8.12-all.jar -c buildscripts/checkstyle.xml examples/src/ + ;; + "CHECK_EXAMPLES_FORMAT") + curl -L -o google-java-format-1.5-all-deps.jar \ + https://github.com/google/google-java-format/releases/download/google-java-format-1.5/google-java-format-1.5-all-deps.jar + java -jar google-java-format-1.5-all-deps.jar --set-exit-if-changed --dry-run `find examples/src/ -name '*.java'` + ;; + "BUILD_EXAMPLES_GRADLE") + pushd examples && ./gradlew clean assemble --stacktrace && popd + ;; + "BUILD_EXAMPLES_MAVEN") + pushd examples && mvn clean package appassembler:assemble -e && popd + ;; + "BUILD_EXAMPLES_BAZEL") + pushd examples && bazel clean && bazel build :all && popd + ;; + *) + set +x + echo "Unknown task $TASK" + valid_tasks + exit 1 + ;; +esac diff --git a/buildscripts/kokoro/macos.cfg b/buildscripts/kokoro/macos.cfg new file mode 100644 index 00000000..fe3a9803 --- /dev/null +++ b/buildscripts/kokoro/macos.cfg @@ -0,0 +1,6 @@ +# Config file for internal CI + +# Same script is used for macos as it is for Linux. +# Location of the continuous shell script in repository. +build_file: "opencensus-java/buildscripts/kokoro/linux.sh" +timeout_mins: 60 diff --git a/buildscripts/kokoro/windows.bat b/buildscripts/kokoro/windows.bat new file mode 100755 index 00000000..7787df07 --- /dev/null +++ b/buildscripts/kokoro/windows.bat @@ -0,0 +1,21 @@ +@rem ########################################################################## +@rem +@rem Script to set up Kokoro worker and run Windows tests +@rem +@rem ########################################################################## +@rem +@rem To run locally execute 'buildscript\kokoro\windows.bat'. +type c:\VERSION + +@rem Enter repo root +cd /d %~dp0\..\.. + +@rem Clear JAVA_HOME to prevent a different Java version from being used +set JAVA_HOME= +set PATH=C:\Program Files\java\jdk1.8.0_152\bin;%PATH% + +cmd.exe /C "%cd%\gradlew.bat" clean build || exit /b 1 +pushd examples +cmd.exe /C "%cd%\gradlew.bat" clean assemble check --stacktrace || exit /b 1 +popd + diff --git a/buildscripts/kokoro/windows.cfg b/buildscripts/kokoro/windows.cfg new file mode 100644 index 00000000..e5ff9b08 --- /dev/null +++ b/buildscripts/kokoro/windows.cfg @@ -0,0 +1,5 @@ +# Config file for internal CI + +# Location of the continuous windows batch script in repository. +build_file: "opencensus-java/buildscripts/kokoro/windows.bat" +timeout_mins: 60 |