From f0d6e5fd566f3a0b16d1b9ed19e3677288824f43 Mon Sep 17 00:00:00 2001 From: alexander-yevsyukov Date: Tue, 7 Dec 2021 19:56:18 +0200 Subject: [PATCH 01/76] Update config --- .codecov.yml | 18 +- .github/keys/cloudrepo.properties.gpg | Bin 0 -> 786 bytes .github/keys/deploy_key_rsa.gpg | Bin 0 -> 2206 bytes .github/keys/firebase-sa.json.gpg | Bin 0 -> 1715 bytes .github/keys/gcs-auth-key.json.gpg | Bin 0 -> 1723 bytes ...gradle-plugin-portal.secret.properties.gpg | 2 + .github/keys/maven-publisher.json.gpg | Bin 0 -> 1727 bytes .github/workflows/build-on-ubuntu.yml | 29 + .github/workflows/build-on-windows.yml | 24 + .github/workflows/detekt-analysis.yml | 103 +++ .github/workflows/ensure-reports.updated.yml | 24 + .../workflows/gradle-wrapper-validation.yml | 18 + .github/workflows/increment-guard.yml | 29 + .github/workflows/publish.yml | 61 ++ .idea/codeStyles/Project.xml | 24 +- .idea/inspectionProfiles/Project_Default.xml | 65 +- buildSrc/aus.weis | Bin 0 -> 236 bytes buildSrc/src/main/groovy/checkstyle.gradle | 43 ++ .../src/main/groovy/dart/build-tasks.gradle | 65 ++ .../main/groovy/dart/pub-publish-tasks.gradle | 76 +++ buildSrc/src/main/groovy/generate-pom.gradle | 611 ++++++++++++++++++ buildSrc/src/main/groovy/jacoco.gradle | 216 +++++++ buildSrc/src/main/groovy/javac-args.gradle | 71 ++ .../src/main/groovy/js/build-tasks.gradle | 165 +++++ .../src/main/groovy/js/configure-proto.gradle | 116 ++++ buildSrc/src/main/groovy/js/js.gradle | 218 +++++++ buildSrc/src/main/groovy/js/npm-cli.gradle | 91 +++ .../main/groovy/js/npm-publish-tasks.gradle | 89 +++ .../groovy/js/update-package-version.gradle | 84 +++ .../main/groovy/license-report-common.gradle | 42 ++ .../main/groovy/license-report-project.gradle | 211 ++++++ .../main/groovy/license-report-repo.gradle | 75 +++ buildSrc/src/main/groovy/publish-proto.gradle | 231 +++++++ buildSrc/src/main/groovy/publish.gradle | 132 ++++ buildSrc/src/main/groovy/run-build.gradle | 84 +++ buildSrc/src/main/groovy/slow-tests.gradle | 49 ++ .../src/main/groovy/test-artifacts.gradle | 45 ++ buildSrc/src/main/groovy/test-output.gradle | 62 ++ .../src/main/kotlin/force-jacoco.gradle.kts | 39 ++ .../io/spine/gradle/internal/RunBuild.kt | 98 --- .../kotlin/io/spine/gradle/internal/deps.kt | 373 ----------- .../internal/dependency/AnimalSniffer.kt | 33 + .../io/spine/internal/dependency/AppEngine.kt | 39 ++ .../io/spine/internal/dependency/AssertK.kt | 37 ++ .../spine/internal/dependency/AutoCommon.kt | 33 + .../spine/internal/dependency/AutoService.kt | 35 + .../io/spine/internal/dependency/AutoValue.kt | 33 + .../spine/internal/dependency/BouncyCastle.kt | 32 + .../spine/internal/dependency/CheckStyle.kt | 34 + .../internal/dependency/CheckerFramework.kt | 44 ++ .../spine/internal/dependency/CommonsCli.kt | 38 ++ .../internal/dependency/CommonsLogging.kt | 37 ++ .../io/spine/internal/dependency/Dokka.kt | 34 + .../spine/internal/dependency/ErrorProne.kt | 59 ++ .../io/spine/internal/dependency/FindBugs.kt | 39 ++ .../io/spine/internal/dependency/Firebase.kt | 33 + .../io/spine/internal/dependency/Flogger.kt | 39 ++ .../spine/internal/dependency/GoogleApis.kt | 58 ++ .../spine/internal/dependency/GoogleCloud.kt | 43 ++ .../io/spine/internal/dependency/Grpc.kt | 44 ++ .../io/spine/internal/dependency/Gson.kt | 38 ++ .../io/spine/internal/dependency/Guava.kt | 41 ++ .../spine/internal/dependency/HttpClient.kt | 41 ++ .../io/spine/internal/dependency/J2ObjC.kt | 37 ++ .../io/spine/internal/dependency/JUnit.kt | 53 ++ .../io/spine/internal/dependency/Jackson.kt | 42 ++ .../io/spine/internal/dependency/JavaJwt.kt | 37 ++ .../io/spine/internal/dependency/JavaPoet.kt | 33 + .../io/spine/internal/dependency/JavaX.kt | 36 ++ .../io/spine/internal/dependency/Klaxon.kt | 37 ++ .../io/spine/internal/dependency/Kotlin.kt | 38 ++ .../internal/dependency/LicenseReport.kt | 40 ++ .../io/spine/internal/dependency/Netty.kt | 38 ++ .../io/spine/internal/dependency/Okio.kt | 37 ++ .../spine/internal/dependency/OsDetector.kt | 35 + .../io/spine/internal/dependency/Plexus.kt | 38 ++ .../io/spine/internal/dependency/Pmd.kt | 33 + .../io/spine/internal/dependency/Protobuf.kt | 51 ++ .../io/spine/internal/dependency/Roaster.kt | 43 ++ .../io/spine/internal/dependency/Slf4J.kt | 41 ++ .../io/spine/internal/dependency/Truth.kt | 37 ++ .../kotlin/io/spine/internal/gradle/Build.kt | 32 + .../gradle}/CheckVersionIncrement.kt | 19 +- .../kotlin/io/spine/internal/gradle/Clean.kt | 48 ++ .../io/spine/internal/gradle/ConfigTester.kt | 354 ++++++++++ .../internal/gradle/DependencyResolution.kt | 162 +++++ .../gradle}/IncrementGuard.kt | 5 +- .../internal/gradle/ProjectExtensions.kt | 87 +++ .../io/spine/internal/gradle/RepoSlug.kt | 66 ++ .../io/spine/internal/gradle/Repositories.kt | 241 +++++++ .../io/spine/internal/gradle/RunBuild.kt | 37 ++ .../io/spine/internal/gradle/RunGradle.kt | 168 +++++ .../io/spine/internal/gradle/Runtime.kt | 96 +++ .../io/spine/internal/gradle/Scripts.kt | 60 ++ .../spine/internal/gradle/StringExtensions.kt | 35 + .../io/spine/internal/gradle/TaskName.kt | 59 ++ .../io/spine/internal/gradle/VersionWriter.kt | 153 +++++ .../io/spine/internal/gradle/base/Tasks.kt | 87 +++ .../gradle/checkstyle/CheckStyleConfig.kt | 73 +++ .../spine/internal/gradle/fs/LazyTempPath.kt | 114 ++++ .../gradle/github/pages/AuthorEmail.kt | 58 ++ .../internal/gradle/github/pages/Branch.kt | 36 ++ .../internal/gradle/github/pages/TaskName.kt | 40 ++ .../internal/gradle/github/pages/Update.kt | 197 ++++++ .../gradle/github/pages/UpdateGitHubPages.kt | 202 ++++++ .../pages/UpdateGitHubPagesExtension.kt | 128 ++++ .../io/spine/internal/gradle/java/Tasks.kt | 45 ++ .../internal/gradle/java/publish/Tasks.kt | 45 ++ .../spine/internal/gradle/javac/ErrorProne.kt | 85 +++ .../io/spine/internal/gradle/javac/Javac.kt | 78 +++ .../spine/internal/gradle/javadoc/Encoding.kt | 32 + .../gradle/javadoc/ExcludeInternalDoclet.kt | 113 ++++ .../internal/gradle/javadoc/JavadocConfig.kt | 81 +++ .../internal/gradle/javadoc/JavadocTag.kt | 37 ++ .../gradle/javadoc/TaskContainerExtensions.kt | 40 ++ .../internal/gradle/javascript/JsContext.kt | 61 ++ .../gradle/javascript/JsEnvironment.kt | 255 ++++++++ .../internal/gradle/javascript/JsExtension.kt | 194 ++++++ .../internal/gradle/javascript/plugin/Idea.kt | 64 ++ .../gradle/javascript/plugin/JsPlugins.kt | 92 +++ .../internal/gradle/javascript/plugin/McJs.kt | 63 ++ .../gradle/javascript/plugin/Protobuf.kt | 90 +++ .../gradle/javascript/task/Assemble.kt | 205 ++++++ .../internal/gradle/javascript/task/Check.kt | 197 ++++++ .../internal/gradle/javascript/task/Clean.kt | 124 ++++ .../gradle/javascript/task/IntegrationTest.kt | 127 ++++ .../gradle/javascript/task/JsTasks.kt | 118 ++++ .../gradle/javascript/task/LicenseReport.kt | 88 +++ .../gradle/javascript/task/Publish.kt | 194 ++++++ .../gradle/javascript/task/Webpack.kt | 106 +++ .../internal/gradle/kotlin/KotlinConfig.kt | 56 ++ .../gradle/publish/ArtifactTaskName.kt | 39 ++ .../gradle/publish/CloudArtifactRegistry.kt | 78 +++ .../gradle/publish/ConfigurationName.kt | 34 + .../internal/gradle/publish/GitHubPackages.kt | 94 +++ .../gradle/publish/ProjectExtensions.kt | 155 +++++ .../spine/internal/gradle/publish/Publish.kt | 147 +++++ .../gradle/publish/PublishExtension.kt | 99 +++ .../gradle/publish/PublishingExtensions.kt | 121 ++++ .../gradle/publish/PublishingRepos.kt | 58 ++ .../gradle/publish/proto/AssembleProto.kt | 58 ++ .../gradle/publish/proto/ProtoLocators.kt | 164 +++++ .../gradle/report/coverage/CodebaseFilter.kt | 113 ++++ .../gradle/report/coverage/FileExtension.kt | 49 ++ .../gradle/report/coverage/FileExtensions.kt | 129 ++++ .../gradle/report/coverage/FileFilter.kt | 50 ++ .../gradle/report/coverage/JacocoConfig.kt | 226 +++++++ .../gradle/report/coverage/PathMarker.kt | 70 ++ .../gradle/report/coverage/TaskName.kt | 39 ++ .../gradle/report/license/Configuration.kt | 51 ++ .../gradle/report/license/LicenseReporter.kt | 156 +++++ .../report/license/MarkdownReportRenderer.kt | 62 ++ .../report/license/ModuleDataExtensions.kt | 169 +++++ .../internal/gradle/report/license/Paths.kt | 49 ++ .../report/license/ProjectDependencies.kt | 70 ++ .../internal/gradle/report/license/Tasks.kt | 40 ++ .../gradle/report/license/Template.kt | 75 +++ .../gradle/report/pom/DependencyScope.kt | 45 ++ .../gradle/report/pom/DependencyWriter.kt | 134 ++++ .../gradle/report/pom/InceptionYear.kt | 51 ++ .../gradle/report/pom/MarkupExtensions.kt | 38 ++ .../gradle/report/pom/PomFormatting.kt | 109 ++++ .../gradle/report/pom/PomGenerator.kt | 95 +++ .../gradle/report/pom/PomXmlWriter.kt | 86 +++ .../gradle/report/pom/ProjectMetadata.kt | 103 +++ .../gradle/report/pom/ScopedDependency.kt | 179 +++++ .../gradle/report/pom/SpineLicense.kt | 59 ++ .../internal/gradle/testing/Artifacts.kt | 71 ++ .../spine/internal/gradle/testing/Logging.kt | 88 +++ .../io/spine/internal/gradle/testing/Tasks.kt | 90 +++ .../spine/internal/markup/MarkdownDocument.kt | 123 ++++ .../src/main/kotlin/pmd-settings.gradle.kts | 58 ++ buildSrc/src/main/resources/pmd.xml | 148 +++++ config | 2 +- gradle/wrapper/gradle-wrapper.jar | Bin 59203 -> 59536 bytes gradle/wrapper/gradle-wrapper.properties | 2 +- gradlew | 257 +++++--- 177 files changed, 13906 insertions(+), 627 deletions(-) create mode 100644 .github/keys/cloudrepo.properties.gpg create mode 100644 .github/keys/deploy_key_rsa.gpg create mode 100644 .github/keys/firebase-sa.json.gpg create mode 100644 .github/keys/gcs-auth-key.json.gpg create mode 100644 .github/keys/gradle-plugin-portal.secret.properties.gpg create mode 100644 .github/keys/maven-publisher.json.gpg create mode 100644 .github/workflows/build-on-ubuntu.yml create mode 100644 .github/workflows/build-on-windows.yml create mode 100644 .github/workflows/detekt-analysis.yml create mode 100644 .github/workflows/ensure-reports.updated.yml create mode 100644 .github/workflows/gradle-wrapper-validation.yml create mode 100644 .github/workflows/increment-guard.yml create mode 100644 .github/workflows/publish.yml create mode 100644 buildSrc/aus.weis create mode 100644 buildSrc/src/main/groovy/checkstyle.gradle create mode 100644 buildSrc/src/main/groovy/dart/build-tasks.gradle create mode 100644 buildSrc/src/main/groovy/dart/pub-publish-tasks.gradle create mode 100644 buildSrc/src/main/groovy/generate-pom.gradle create mode 100644 buildSrc/src/main/groovy/jacoco.gradle create mode 100644 buildSrc/src/main/groovy/javac-args.gradle create mode 100644 buildSrc/src/main/groovy/js/build-tasks.gradle create mode 100644 buildSrc/src/main/groovy/js/configure-proto.gradle create mode 100644 buildSrc/src/main/groovy/js/js.gradle create mode 100644 buildSrc/src/main/groovy/js/npm-cli.gradle create mode 100644 buildSrc/src/main/groovy/js/npm-publish-tasks.gradle create mode 100644 buildSrc/src/main/groovy/js/update-package-version.gradle create mode 100644 buildSrc/src/main/groovy/license-report-common.gradle create mode 100644 buildSrc/src/main/groovy/license-report-project.gradle create mode 100644 buildSrc/src/main/groovy/license-report-repo.gradle create mode 100644 buildSrc/src/main/groovy/publish-proto.gradle create mode 100644 buildSrc/src/main/groovy/publish.gradle create mode 100644 buildSrc/src/main/groovy/run-build.gradle create mode 100644 buildSrc/src/main/groovy/slow-tests.gradle create mode 100644 buildSrc/src/main/groovy/test-artifacts.gradle create mode 100644 buildSrc/src/main/groovy/test-output.gradle create mode 100644 buildSrc/src/main/kotlin/force-jacoco.gradle.kts delete mode 100644 buildSrc/src/main/kotlin/io/spine/gradle/internal/RunBuild.kt delete mode 100644 buildSrc/src/main/kotlin/io/spine/gradle/internal/deps.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/AnimalSniffer.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/AppEngine.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/AssertK.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/AutoCommon.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/AutoService.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/AutoValue.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/BouncyCastle.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/CheckStyle.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/CheckerFramework.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/CommonsCli.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/CommonsLogging.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/Dokka.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/ErrorProne.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/FindBugs.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/Firebase.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/Flogger.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/GoogleApis.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/GoogleCloud.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/Grpc.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/Gson.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/Guava.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/HttpClient.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/J2ObjC.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/JUnit.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/Jackson.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/JavaJwt.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/JavaPoet.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/JavaX.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/Klaxon.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/Kotlin.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/LicenseReport.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/Netty.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/Okio.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/OsDetector.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/Plexus.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/Pmd.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/Protobuf.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/Roaster.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/Slf4J.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/dependency/Truth.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/Build.kt rename buildSrc/src/main/kotlin/io/spine/{gradle/internal => internal/gradle}/CheckVersionIncrement.kt (90%) create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/Clean.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/ConfigTester.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/DependencyResolution.kt rename buildSrc/src/main/kotlin/io/spine/{gradle/internal => internal/gradle}/IncrementGuard.kt (96%) create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/ProjectExtensions.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/RepoSlug.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/Repositories.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/RunBuild.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/RunGradle.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/Runtime.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/Scripts.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/StringExtensions.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/TaskName.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/VersionWriter.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/base/Tasks.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/checkstyle/CheckStyleConfig.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/fs/LazyTempPath.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/github/pages/AuthorEmail.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/github/pages/Branch.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/github/pages/TaskName.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/github/pages/Update.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/github/pages/UpdateGitHubPages.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/github/pages/UpdateGitHubPagesExtension.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/java/Tasks.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/java/publish/Tasks.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javac/ErrorProne.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javac/Javac.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javadoc/Encoding.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javadoc/ExcludeInternalDoclet.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javadoc/JavadocConfig.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javadoc/JavadocTag.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javadoc/TaskContainerExtensions.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javascript/JsContext.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javascript/JsEnvironment.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javascript/JsExtension.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javascript/plugin/Idea.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javascript/plugin/JsPlugins.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javascript/plugin/McJs.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javascript/plugin/Protobuf.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javascript/task/Assemble.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javascript/task/Check.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javascript/task/Clean.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javascript/task/IntegrationTest.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javascript/task/JsTasks.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javascript/task/LicenseReport.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javascript/task/Publish.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/javascript/task/Webpack.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/kotlin/KotlinConfig.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/ArtifactTaskName.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/CloudArtifactRegistry.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/ConfigurationName.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/GitHubPackages.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/ProjectExtensions.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/Publish.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/PublishExtension.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/PublishingExtensions.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/PublishingRepos.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/proto/AssembleProto.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/publish/proto/ProtoLocators.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/coverage/CodebaseFilter.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/coverage/FileExtension.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/coverage/FileExtensions.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/coverage/FileFilter.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/coverage/JacocoConfig.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/coverage/PathMarker.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/coverage/TaskName.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/license/Configuration.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/license/LicenseReporter.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/license/MarkdownReportRenderer.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/license/ModuleDataExtensions.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/license/Paths.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/license/ProjectDependencies.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/license/Tasks.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/license/Template.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/pom/DependencyScope.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/pom/DependencyWriter.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/pom/InceptionYear.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/pom/MarkupExtensions.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/pom/PomFormatting.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/pom/PomGenerator.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/pom/PomXmlWriter.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/pom/ProjectMetadata.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/pom/ScopedDependency.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/report/pom/SpineLicense.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/testing/Artifacts.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/testing/Logging.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/gradle/testing/Tasks.kt create mode 100644 buildSrc/src/main/kotlin/io/spine/internal/markup/MarkdownDocument.kt create mode 100644 buildSrc/src/main/kotlin/pmd-settings.gradle.kts create mode 100644 buildSrc/src/main/resources/pmd.xml diff --git a/.codecov.yml b/.codecov.yml index 6166576e..b5739f89 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -7,11 +7,23 @@ coverage: ignore: - - generated/* - - examples/* - - test/* + - "**/generated/**/*" + - "**/examples/**/*" + - "**/test/**/*" status: + # https://docs.codecov.com/docs/github-checks#yaml-configuration-for-github-checks-and-codecov patch: false + # https://docs.codecov.com/docs/commit-status + project: + default: + target: auto + threshold: 0.05% + base: auto + paths: + - "src" + if_ci_failed: error + informational: false + only_pulls: true comment: layout: "header, diff, changes, uncovered" diff --git a/.github/keys/cloudrepo.properties.gpg b/.github/keys/cloudrepo.properties.gpg new file mode 100644 index 0000000000000000000000000000000000000000..1084e34e5e383b9fe954f4d61069b03e0f9b79eb GIT binary patch literal 786 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 literal 0 HcmV?d00001 diff --git a/.github/keys/firebase-sa.json.gpg b/.github/keys/firebase-sa.json.gpg new file mode 100644 index 0000000000000000000000000000000000000000..4925f29ba1fa2fd3b5c0b5f3526920b8f27ef39c GIT binary patch literal 1715 zcmV;k22A;k4Fm}T0<=-=EWVF`)%4Qp0pu|OIHTps*-w&5{=JAP@??hEGr0ZD!q*dS zbQFSQ>BPMa4hvpLlh>y$-M$Q>@IR6=f55CTxrY)5p{`dpfZBM6&og6@U{p1*@qx!B zb;`qQ@!`LzTdUu0ax8NMCCWpO0KMJVy{?Zn#RAurfnze9Llh+82@NXTioYpgqjtGjoXurxhcU(*iryflir z=-hBxPHnFcmqB)*!{RG{A^|}U%RN$k{V~f15?3WEw;fI*aaw>qXW(WhvvT0)?#6pC) z!D>UwCaOOWxak|=7}oqbg+j6?uU{wU>+aROZnv8%B4SHBiSj^|aR6eiFEh_kdSKG` z0`*{ufe3+LKJFy+y?BgI(wL&n065sf2(T1@M?A>f8!7u#c9EQB$6;{llq&~+%ECM7 z3A$*P8jHS8oPZFyuQJPOj60V`m_ga=KG#>R$k+*FM6xl7fR{J9JG5tN$1vas^-(WZ zgDj4(C8*U(zeofrN&X!T&_X9y=ApU~-H%>K1g6WU$R zR~VQ-WB%dh=a;XXDk+O8!v$uDZ-rPLx?v;#jkyMey;R=CIVey2x>ry>r@+>!dkqfV z+{MPSo;DqFk=<(2<8ZQ!!;J+OAJRK%A=3_kRnvU!V#Uc<(rtZ+|Tkxx@3`Yvvz@ zhl}k*6dc!B*dL8o3Am;y20zVD&z@(mooyDK?W)u`PwiDWnVL_}^>ZMs<9JV!a#z)x zAhliv9(?YzR!<}dSXNM~DY4G|BWc@gCmiG=Zjwu&>QlQy$HZbNJy%DlF9c@eMMNA9 zc1pCUHk<<(+D`PQup$5mVq<=@nR`OB?`I(!#tDJ6z{ay1Ca`EWbNN)kE|`Qc;&&S( zR!P}PEL~zq@*NA0r4a2BCqA#XYb=%^blfP0B?JOEtj6N%iJa+kSLel%bL2NoE6DT+ z_a}bF=b=llVJw^=3@FS3qj#=a>&2*rwGQKDpyCmo09FAolAO(PmpHne$WT^X!{uN< z*gMfnw-o`tUYCn^Ev_b9%8Aj6x2vV2OlA%i@632^ii<#{uH!0%GjD%{Sd17KgS=H? zp8#0ni))O|ZCOuCzlQ;?(oG)%qR-DBguEVh&PQ(z(l?7s2uMOCW<+MVrIcL5JzAO9 zMVlFD_|mJ9wO?o7hD9dd|2Kvpj1||WJjUvu&|Txs6M;d57C@$aMXKj z6hzrbAm`?sfg+l8VDd;Hak(eg;NvJ{X6DsOpb#ulN3qaJS4(QxMWu36b{vB3Z?F`p z&7jtwVG!^BEvU#u1Q4715TOnmJk=O>r@1nBqfs2#p}5+oJ>~}w40gr`Yr5VQh$8P4kSwCj6qHJA99db!Mp(~ivkbu J&K@T6|6*T6Ot}C6 literal 0 HcmV?d00001 diff --git a/.github/keys/gcs-auth-key.json.gpg b/.github/keys/gcs-auth-key.json.gpg new file mode 100644 index 0000000000000000000000000000000000000000..5f37d1d47655b8d6d9571cb5885b815bd0e0bee4 GIT binary patch literal 1723 zcmV;s21NOc4Fm}T0z)rQ2TF;UbC$b6u zGX}d{dkZIt>g3MalINVnQEygmK zTF|?lim047V~UTj{f1>~=8?$M1BN%j{bk1p%b94P(YYFNUZFy#4;5d^G(mxT5esY4 zt_@hd5|`3aoBSaxF_&Mhb}C;l*5&2*2=9h=WQH`~(Te~gYEBh~wv*phc*uQ;nSKb& z$6m;ntQT8qCWpEea34-7e=K5IbD@7r1qLgrb7UH+oH{UvlryUss4`gp=|~@UlRC?6 zz&%(i)YBSs%bN!^Pz(=-5P_plJi}_!^kYm)4%mmFxNFM9nJ_s}b1gY(Gcj|B4?>9b z)~wxAGGIuQ^4xx6j)aa-%GlY9vHlq@+CO@#Ug&CZ|1*N4E)lcSX6K+k%?4;=i9-f(J0mT zVLF^7pJ;nW0%W>k(O4c+cPm&Jzz8nk_07)?7pb&Hkb^4WJLCjz`)%>@En#Y`n8<5A zZIvOd*)!!R6M`1qiVVjKL z8)y#rmx%iHSE2SlTI@jKiTSqadtwnp9|6n1we93)W0|kVX|=?zGzHTxq{lA++j1sBobgM;IjKqe>h++RF9sM_$H!P&F%%(EN^ zmZTF2JO-|UNR7B&P-g7byB`D1l{5YmsT}4r%;cZm4pIK4z!?DQn)T6T2Cr18`UIjG zf}tvPir`r!74@4hSB^?{P$?TLXYFs`>?wb+@V~tXG{UdSqG@EiQU3wBpwe?CEyZ3w z$jB?|69W#1iDYTvg{xI!Mqi)OI#U4Ab3wRb+5eevJzxzR{ZS=BYnFCB0hqdb$?AH#lCnouJP>`LZje z_Gc9&0=}==={Y^Xq44$oLW4(I2zc%c{pak87EePP=OeqUt$MDuOd#XyPZxOov%WMZti&z9llzW%T4$~6fs3F>Nl7zg%xppQn3TT-Kr1yC`rHt-LE;kB zmCbHn;{Z`&+4F>rdA3a#ZX57^F5Eop63XW?fkYTj7w9kkjh|`HN+|m5*&)|Brw_PW z8D1K{+f*U;_1j_*)7_1LDQal$heCTnO&F67jLu{7I}}+nsP;a>C)`xuUBo{B#&;W+ zDTZ2RUU{a_YYM7Lf8|@(jwY_CIVyvUyT1pfF$NZ&C*9cjg;IDA8%I@8z;;SS$gAgxja7Kk zYcfPG%xE7^9Q{!r{3j&{#?1X%PUAV%Dy!z*||JTIayRg<>JTY*Nw}rH%pp#j8(iVoV%9ia_9n3u0ZoAFw9A1TqDR+I-W>=-R3Zk3*8jp)BNv2LJe%t*hV) zI&j0kCcaZY7AL&Huk~pMWR{2l2xMVmF*Cl;;T2HjMvNg{dWsb=nJQJ%={-1=RHD_1 RhvZn3bTZrD&dElfdPS-lSQ!8S literal 0 HcmV?d00001 diff --git a/.github/keys/gradle-plugin-portal.secret.properties.gpg b/.github/keys/gradle-plugin-portal.secret.properties.gpg new file mode 100644 index 00000000..8ec9a8aa --- /dev/null +++ b/.github/keys/gradle-plugin-portal.secret.properties.gpg @@ -0,0 +1,2 @@ +  2.y:ҢF`J1$9 D~ze!yuGBU2K0! q =˂p@zeqB>R#qj?1m굘U^2*kJ 3wq84}. +2M< \ No newline at end of file diff --git a/.github/keys/maven-publisher.json.gpg b/.github/keys/maven-publisher.json.gpg new file mode 100644 index 0000000000000000000000000000000000000000..f5655f93a39e1a35034704e02b10d554ff1e5426 GIT binary patch literal 1727 zcmV;w20;0Y4Fm}T0@N@N)U}psko3~(0Ru*)JMg!Gl>%H?y4K|Pnt)-((2c3(@*z-K ziB=F(^93WDNggfYHYkz>URB&0&`0r#flCF^f{YqF9?d(rJRG&52}Ad=XgYy^>JUv5 zoq$@fTW?Idp5GEJyUl2Xh%VN)$oJ#AI*?CUtG_!9-oJ<{&Wn;mCa8JJ89rNNp^rJi z;MQ2qVEf;3&BO}aMdmaOsAWM_Rvay7G^zd8lbn^qSQ68e{%gD(qNiG0cMIUUI=y;o zGak(buexDF6`h!&8vU_B9gKp3?P=FY3hol$0D0CgJEs5MtE@Y$tE%=#j{i#!|MaV# zk3FEFDEn&I?0JWPh9C4+oJ)Zg@25XqEKK-1T6Xu~RSvF1RTw)!@=_PgcUnK7m?vwf z9K2z@c{aE9jL4K3jNLl4$7|^U_3y&>(t1Q;CF+s8l`a_)i}Og7LgH!P4X@svcHQw; zAZL+R?8sSOoJSyR*w2MaCTDIx?Qv^~(5}{X5fkr9_+4%v6=f2OmNTK}2UFyu`nq;6 zch+5Q`p865bl1*+0)=u;xe-qjrsX~D4SMCi#)}b}SAD2auP&JVvRskuI)8Dlg2nHY z<`Upf-*xe7)u&jeL{rR}>Mk?JzL}PJ>;n%^^cSaV!7WzZ5~)j z-+!c1Z(Z`Qok@XwOB3a9f_N)2KIG#uFJ<2mz!x!U2f8g=Jd_Ct0@M||4 z=g~)0tphTe8U9tp+2mBzg1!e#PkCp@)G0na{NW6qh73Fn9eQWsQCmakz!6GHKBJAM zF!5%Q7+PWk!C?9ZspDfM2?4(d^Fy=zP?Ob7o7tVFy0SBojp@2v%gd|3B&W@72rC{s zF3uI2^7BVf4Y_0$x1!5BQLctnyd(>$77;|s@Z26Dlp9>!aI12XJQ- z&lmf?k3xuHK<<_;-fHFBsn~CORzh4vOGpKThAzAq61eaR9E7-i`SM*E{tTNvN(BNxvK+d%js&xAcu2wS$tF+o<1l=eI3`U zMZL}M=ru+9^hMEs;{#Q-nkF3=G_y$)jD==?bNK{T@`c0j!Jfp&)maszIWUNwo$ax`DlOoG?7Xn0np zAO@*Eo0pW;C=Kj#zgHZX`8-nCs`8j&9)N?Iv}^;%`-zf)(S}ZBJD)5t{Q&fu+%xaT zbhzM5s;)Tmje4VJ7b$OeP$JQ9p|s30lFaEFoxniy0^66b(pdXi%#Jv;YVP?Fu+y~I z|ATEg52+6Q=}bx#=Lsv8KR)x9ZZ3z%_J!AEIU946L)T#HauL8%@mvQ6os&v2*g#rQ)P%)j(++Y+tUW@r=Tcv$#&9f|KwHI)UZC6seo7j3 zFs#oN+z&~1A9Vio(j;=t)pdLMFm>QuQraeC>&mfeOY87K^XHS#LEzy`Y&1wX~h zaS4Uyh$6X$q)>2)SiC*(6=C58v25uXgT#tu{y1`Z-oQ>UAq{E@sf5M*sr~BNlT~x| z_w%tlKgGLbDctFsdL=_TOHg!iMmxHe3Nw%1i`73ao;xm;=}>yQhm{8v7OR(%C8U)f V%p6JR31Gm#dC{I=Pt!o&)nmxOV0-`o literal 0 HcmV?d00001 diff --git a/.github/workflows/build-on-ubuntu.yml b/.github/workflows/build-on-ubuntu.yml new file mode 100644 index 00000000..db2d2d5c --- /dev/null +++ b/.github/workflows/build-on-ubuntu.yml @@ -0,0 +1,29 @@ +name: Build under Ubuntu + +on: push + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-java@v2 + with: + java-version: 8 + distribution: zulu + cache: gradle + + - name: Pull config + run: git submodule update --init --recursive + + - name: Build project and run tests + shell: bash + run: ./gradlew build --stacktrace + + - name: Upload code coverage report + uses: codecov/codecov-action@v2 + with: + fail_ci_if_error: true + verbose: true diff --git a/.github/workflows/build-on-windows.yml b/.github/workflows/build-on-windows.yml new file mode 100644 index 00000000..456cec6f --- /dev/null +++ b/.github/workflows/build-on-windows.yml @@ -0,0 +1,24 @@ +name: Build under Windows + +on: pull_request + +jobs: + build: + runs-on: windows-latest + + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-java@v2 + with: + java-version: 8 + distribution: zulu + cache: gradle + + - name: Pull config + run: git submodule update --init --recursive + + - name: Build project and run tests + shell: cmd + # For the reason on `--no-daemon` see https://github.com/actions/cache/issues/454 + run: gradlew.bat build --stacktrace --no-daemon diff --git a/.github/workflows/detekt-analysis.yml b/.github/workflows/detekt-analysis.yml new file mode 100644 index 00000000..f65f98df --- /dev/null +++ b/.github/workflows/detekt-analysis.yml @@ -0,0 +1,103 @@ +# This workflow performs a static analysis of your Kotlin source code using +# Detekt. +# +# Scans are triggered: +# 1. On every push to default and protected branches +# 2. On every Pull Request targeting the default branch +# 3. On a weekly schedule +# 4. Manually, on demand, via the "workflow_dispatch" event +# +# The workflow should work with no modifications, but you might like to use a +# later version of the Detekt CLI by modifing the $DETEKT_RELEASE_TAG +# environment variable. +name: Scan with Detekt + +on: + # Triggers the workflow on push or pull request events but only for default and protected branches + push: + branches: [ master ] + pull_request: + branches: [ master ] + schedule: + - cron: '19 17 * * 4' + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +env: + # Release tag associated with version of Detekt to be installed + # SARIF support (required for this workflow) was introduced in Detekt v1.15.0 + DETEKT_RELEASE_TAG: v1.15.0 + +# A workflow run is made up of one or more jobs that can run sequentially or in parallel +jobs: + # This workflow contains a single job called "scan" + scan: + name: Scan + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + + # Gets the download URL associated with the $DETEKT_RELEASE_TAG + - name: Get Detekt download URL + id: detekt_info + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + DETEKT_DOWNLOAD_URL=$( gh api graphql --field tagName=$DETEKT_RELEASE_TAG --raw-field query=' + query getReleaseAssetDownloadUrl($tagName: String!) { + repository(name: "detekt", owner: "detekt") { + release(tagName: $tagName) { + releaseAssets(name: "detekt", first: 1) { + nodes { + downloadUrl + } + } + } + } + } + ' | \ + jq --raw-output '.data.repository.release.releaseAssets.nodes[0].downloadUrl' ) + echo "::set-output name=download_url::$DETEKT_DOWNLOAD_URL" + + # Sets up the detekt cli + - name: Setup Detekt + run: | + dest=$( mktemp -d ) + curl --request GET \ + --url ${{ steps.detekt_info.outputs.download_url }} \ + --silent \ + --location \ + --output $dest/detekt + chmod a+x $dest/detekt + echo $dest >> $GITHUB_PATH + + # Performs static analysis using Detekt + - name: Run Detekt + continue-on-error: true + run: | + detekt --input ${{ github.workspace }} --report sarif:${{ github.workspace }}/detekt.sarif.json + + # Modifies the SARIF output produced by Detekt so that absolute URIs are relative + # This is so we can easily map results onto their source files + # This can be removed once relative URI support lands in Detekt: https://git.io/JLBbA + - name: Make artifact location URIs relative + continue-on-error: true + run: | + echo "$( + jq \ + --arg github_workspace ${{ github.workspace }} \ + '. | ( .runs[].results[].locations[].physicalLocation.artifactLocation.uri |= if test($github_workspace) then .[($github_workspace | length | . + 1):] else . end )' \ + ${{ github.workspace }}/detekt.sarif.json + )" > ${{ github.workspace }}/detekt.sarif.json + + # Uploads results to GitHub repository using the upload-sarif action + - uses: github/codeql-action/upload-sarif@v1 + with: + # Path to SARIF file relative to the root of the repository + sarif_file: ${{ github.workspace }}/detekt.sarif.json + checkout_path: ${{ github.workspace }} diff --git a/.github/workflows/ensure-reports.updated.yml b/.github/workflows/ensure-reports.updated.yml new file mode 100644 index 00000000..6bb34787 --- /dev/null +++ b/.github/workflows/ensure-reports.updated.yml @@ -0,0 +1,24 @@ +# Ensures that the license report files were modified in this PR. + +name: Ensure license reports updated + +on: + pull_request: + branches: + - '**' + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + with: + # Configure the checkout of all branches, so that it is possible to run the comparison. + fetch-depth: 0 + # Check out the `config` submodule to fetch the required script file. + submodules: true + + - name: Check that `pom.xml` and `license-report.md` are modified + shell: bash + run: chmod +x ./config/scripts/ensure-reports-updated.sh && ./config/scripts/ensure-reports-updated.sh diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml new file mode 100644 index 00000000..72435c63 --- /dev/null +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -0,0 +1,18 @@ +name: Validate Gradle Wrapper +on: + push: + branches: + - main + pull_request: + branches: + - '**' + +jobs: + validation: + name: Validation + runs-on: ubuntu-latest + steps: + - name: Checkout latest code + uses: actions/checkout@v2 + - name: Validate Gradle Wrapper + uses: gradle/wrapper-validation-action@v1 diff --git a/.github/workflows/increment-guard.yml b/.github/workflows/increment-guard.yml new file mode 100644 index 00000000..4bb0d4b5 --- /dev/null +++ b/.github/workflows/increment-guard.yml @@ -0,0 +1,29 @@ +# Ensures that the current lib version is not yet published but executing the Gradle +# `checkVersionIncrement` task. + +name: Check version increment + +on: + push: + branches: + - '**' + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-java@v2 + with: + java-version: 8 + distribution: zulu + cache: gradle + + - name: Pull config + run: git submodule update --init --recursive + + - name: Check version is not yet published + shell: bash + run: ./gradlew checkVersionIncrement --stacktrace diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 00000000..dad6040b --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,61 @@ +name: Publish + +on: + push: + branches: [master] + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: actions/setup-java@v2 + with: + java-version: 8 + distribution: zulu + cache: gradle + + - run: git submodule update --init --recursive + + - name: Decrypt CloudRepo credentials + run: ./config/scripts/decrypt.sh "$CLOUDREPO_CREDENTIALS_KEY" ./.github/keys/cloudrepo.properties.gpg ./cloudrepo.properties + env: + CLOUDREPO_CREDENTIALS_KEY: ${{ secrets.CLOUDREPO_CREDENTIALS_KEY }} + + - name: Decrypt Git SSH credentials + run: ./config/scripts/decrypt.sh "$GIT_CREDENTIALS_KEY" ./.github/keys/deploy_key_rsa.gpg ./deploy_key_rsa + env: + GIT_CREDENTIALS_KEY: ${{ secrets.GIT_CREDENTIALS_KEY }} + + # Make sure the SSH key is not "too visible". SSH agent will not accept it otherwise. + - name: Set file system permissions + run: chmod 400 ./deploy_key_rsa && chmod +x ./config/scripts/register-ssh-key.sh + + - name: Decrypt GCS credentials + run: ./config/scripts/decrypt.sh "$GCS_CREDENTIALS_KEY" ./.github/keys/gcs-auth-key.json.gpg ./gcs-auth-key.json + env: + GCS_CREDENTIALS_KEY: ${{ secrets.GCS_CREDENTIALS_KEY }} + + - name: Decrypt GCAR credentials + run: ./config/scripts/decrypt.sh "$MAVEN_PUBLISHER_KEY" ./.github/keys/maven-publisher.json.gpg ./maven-publisher.json + env: + MAVEN_PUBLISHER_KEY: ${{ secrets.MAVEN_PUBLISHER_KEY }} + + - name: Decrypt Git SSH credentials + run: ./config/scripts/decrypt.sh "$GRADLE_PORTAL_CREDENTIALS_KEY" ./.github/keys/gradle-plugin-portal.secret.properties.gpg ./gradle-plugin-portal.secret.properties + env: + GRADLE_PORTAL_CREDENTIALS_KEY: ${{ secrets.GRADLE_PORTAL_CREDENTIALS_KEY }} + + - name: Append Gradle properties + run: cat ./gradle-plugin-portal.secret.properties >> ./gradle.properties + + - name: Publish artifacts to Maven + run: ./gradlew build publish --stacktrace + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + FORMAL_GIT_HUB_PAGES_AUTHOR: developers@spine.io + # https://docs.github.com/en/actions/reference/environment-variables + REPO_SLUG: $GITHUB_REPOSITORY # e.g. SpineEventEngine/core-java + GOOGLE_APPLICATION_CREDENTIALS: ./maven-publisher.json + NPM_TOKEN: ${{ secrets.NPM_SECRET }} diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index 5a399bd1..809943cc 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -26,13 +26,6 @@ - - -