]> source.dussan.org Git - sonarqube.git/commitdiff
Fix dependencies (order) between Gradle tasks that execute yarn
authorGrégoire Aubert <gregoire.aubert@sonarsource.com>
Thu, 16 May 2019 12:54:03 +0000 (14:54 +0200)
committerSonarTech <sonartech@sonarsource.com>
Thu, 16 May 2019 18:21:08 +0000 (20:21 +0200)
And add declarations of input files for "yarn_validate-ci" tasks,
which were forgotten when caching was enabled for them.

14 files changed:
server/sonar-docs/build.gradle
server/sonar-vsts/build.gradle
server/sonar-vsts/config/webpack.config.js
server/sonar-vsts/package.json
server/sonar-vsts/src/main/js/components/Configuration.tsx
server/sonar-vsts/src/main/js/components/LoginForm.tsx
server/sonar-vsts/src/main/js/components/LoginLink.tsx
server/sonar-vsts/src/main/js/components/ProjectSelector.tsx
server/sonar-vsts/src/main/js/components/ProjectSelectorItem.tsx
server/sonar-vsts/src/main/js/components/QGWidget.tsx
server/sonar-vsts/src/main/js/components/SonarCloudIcon.tsx
server/sonar-vsts/src/main/js/components/Widget.tsx
server/sonar-vsts/tsconfig.json
server/sonar-web/build.gradle

index 868a0e613487fe62a1683eb01076dfafc7204464..727f164f10fa1337ec1c6d5fa5cd0585d13070d4 100644 (file)
@@ -35,6 +35,8 @@ yarn_run {
   outputs.file('eslint-report.json')
   outputs.dir('coverage')
   outputs.cacheIf { true }
+
+  dependsOn(yarn)
 }
 
 task zip(type: Zip) {
index d6ecf126fc1f21d87310cd58631555f9d2ae6e1e..62cd909ea531a7ab92600bca104d3078bdac3b83 100644 (file)
@@ -19,11 +19,18 @@ yarn_run {
   ].each {
     inputs.dir(it).withPathSensitivity(PathSensitivity.RELATIVE)
   }
-  ['babel.config.js', 'package.json', 'tsconfig.json', 'yarn.lock'].each {
+  ['babel.config.js', 'package.json', 'tsconfig.json', 'yarn.lock',
+    '../sonar-web/package.json',
+    '../sonar-web/yarn.lock'
+  ].each {
     inputs.file(it).withPathSensitivity(PathSensitivity.RELATIVE)
   }
   outputs.dir('build/webapp')
   outputs.cacheIf { true }
+
+  // sonar-web dependencies needs to be installed before we build sonar-vsts otherwise the sonar-web components
+  // that sonar-vsts depends uppon won't find their node_modules
+  dependsOn(':server:sonar-web:yarn')
   args = ['build']
 }
 build.dependsOn(yarn_run)
@@ -38,12 +45,19 @@ build.dependsOn(yarn_run)
   ].each {
     inputs.dir(it)
   }
-  ['package.json', 'yarn.lock', 'tsconfig.json', '.eslintrc', '.eslintignore'].each {
+  ['package.json', 'yarn.lock', 'tsconfig.json', '.eslintrc', '.eslintignore',
+    '../sonar-web/package.json',
+    '../sonar-web/yarn.lock'
+  ].each {
     inputs.file(it)
   }
   outputs.file('eslint-report.json')
   outputs.dir('coverage')
   outputs.cacheIf { true }
+
+  // sonar-web dependencies needs to be installed before we build sonar-vsts otherwise the sonar-web components
+  // that sonar-vsts depends uppon won't find their node_modules
+  dependsOn(yarn, ':server:sonar-web:yarn')
 }
 
 def sources = fileTree(dir: "src") + fileTree(dir: "scripts") + fileTree(dir: "config")
index f34c0d554208718b05ecd38ceed16309e6109c86..a650793501e01e9458d8c1e49f04b73e89e1cf28 100644 (file)
@@ -32,7 +32,12 @@ module.exports = ({ production = true }) => ({
   devtool: production ? 'source-map' : 'cheap-module-source-map',
   resolve: {
     // Add '.ts' and '.tsx' as resolvable extensions.
-    extensions: ['.ts', '.tsx', '.js', '.json']
+    extensions: ['.ts', '.tsx', '.js', '.json'],
+    alias: {
+      '@sqapi': path.resolve(__dirname, '../../sonar-web/src/main/js/api'),
+      '@sqcomponents': path.resolve(__dirname, '../../sonar-web/src/main/js/components'),
+      '@sqhelpers': path.resolve(__dirname, '../../sonar-web/src/main/js/helpers')
+    }
   },
   entry: [
     !production && require.resolve('react-dev-utils/webpackHotDevClient'),
index 0e1bf9d4fecda9eada2a0d0fb67e5aa6aa9b8626..ea40f80df720062d7777ac281810a36e01abe6d1 100644 (file)
     ],
     "moduleNameMapper": {
       "^.+\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/config/jest/FileStub.js",
-      "^.+\\.css$": "<rootDir>/config/jest/CSSStub.js"
+      "^.+\\.css$": "<rootDir>/config/jest/CSSStub.js",
+      "^@sqapi(.*)$": "<rootDir>/../sonar-web/src/main/js/api$1",
+      "^@sqcomponents(.*)$": "<rootDir>/../sonar-web/src/main/js/components$1",
+      "^@sqhelpers(.*)$": "<rootDir>/../sonar-web/src/main/js/helpers$1"
     },
     "setupFiles": [
       "<rootDir>/config/polyfills.js",
index 5b659ed8b3cfbfb34be92a715eaa9c58ccef0924..e622cf20f03f0fcc94ccc4d095feed8c5d9a1e09 100644 (file)
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import * as React from 'react';
+import { Component, searchProjects } from '@sqapi/components';
+import { getCurrentUser } from '@sqapi/users';
 import LoginForm from './LoginForm';
 import ProjectSelector from './ProjectSelector';
-import { Component, searchProjects } from '../../../../../sonar-web/src/main/js/api/components';
 import {
   Settings,
   VSTSWidgetSettings,
@@ -28,7 +29,6 @@ import {
   serializeWidgetSettings,
   parseWidgetSettings
 } from '../utils';
-import { getCurrentUser } from '../../../../../sonar-web/src/main/js/api/users';
 
 interface Props {
   contribution: string;
index 84845a31e42688805270e1ffadcdc7a5601e460d..7141de30d4f3d9c1c0636b96e24dbfdcd836d807 100644 (file)
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import * as React from 'react';
+import { getTextColor } from '@sqhelpers/colors';
+import { getBaseUrl } from '@sqhelpers/urls';
+import { getIdentityProviders } from '@sqapi/users';
 import LoginLink from './LoginLink';
 import SonarCloudIcon from './SonarCloudIcon';
 import * as theme from '../../../../../sonar-web/src/main/js/app/theme';
-import { getIdentityProviders } from '../../../../../sonar-web/src/main/js/api/users';
-import { getTextColor } from '../../../../../sonar-web/src/main/js/helpers/colors';
-import { getBaseUrl } from '../../../../../sonar-web/src/main/js/helpers/urls';
 
 interface Props {
   onReload: () => void;
index 642fd354cb4949794ae60549d0662f6a1548a90a..3f068f7f8766b2835edbd1185136ee45a285143c 100644 (file)
@@ -18,7 +18,7 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import * as React from 'react';
-import { getBaseUrl } from '../../../../../sonar-web/src/main/js/helpers/urls';
+import { getBaseUrl } from '@sqhelpers/urls';
 
 interface Props {
   className?: string;
index 8203b8f57f6c2bc88f824677254b7f21a1a35b70..92a719c7bdb53e8e7233cb8ef07ed4a359e61788 100644 (file)
@@ -20,8 +20,8 @@
 import * as React from 'react';
 import * as classNames from 'classnames';
 import { debounce } from 'lodash';
+import { Component } from '@sqapi/components';
 import ProjectSelectorItem from './ProjectSelectorItem';
-import { Component } from '../../../../../sonar-web/src/main/js/api/components';
 
 interface Props {
   isLoggedIn: boolean;
index e1dfe927522b0c0ac4d1d7bb590b64d9a2906120..4f63ceb327c1d8ea3ce4043826bda18e9b1f1d06 100644 (file)
@@ -19,7 +19,7 @@
  */
 import * as React from 'react';
 import * as classNames from 'classnames';
-import { Component } from '../../../../../sonar-web/src/main/js/api/components';
+import { Component } from '@sqapi/components';
 
 interface Props {
   isActive: boolean;
index e20a0c0d23ae01607c2ec7087b188329e826fd35..ce3fb4b67d136a48fa39b0f328343d67fb65c8f4 100644 (file)
  */
 import * as React from 'react';
 import * as classNames from 'classnames';
+import { getPathUrlAsString, getProjectUrl } from '@sqhelpers/urls';
+import Tooltip from '@sqcomponents/controls/Tooltip';
 import SonarCloudIcon from './SonarCloudIcon';
-import Tooltip from '../../../../../sonar-web/src/main/js/components/controls/Tooltip';
-import {
-  getPathUrlAsString,
-  getProjectUrl
-} from '../../../../../sonar-web/src/main/js/helpers/urls';
 
 interface Props {
   component: T.ComponentMeasure;
index f57cb379f79bd799a0ab7db010d3968aa6f3cfec..b1f80052ae09d2acb402054690c08310be673eb2 100644 (file)
@@ -18,7 +18,7 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import * as React from 'react';
-import { IconProps } from '../../../../../sonar-web/src/main/js/components/icons-components/Icon';
+import { IconProps } from '@sqcomponents/icons-components/Icon';
 
 export default function SonarCloudIcon({ className, fill = '#f3702a', size = 18 }: IconProps) {
   return (
index 9cd912fb4e816f8462dbd11fa389f972f6ad7777..8720b6a931785e69517d6aea91e5c1de78d64e79 100644 (file)
@@ -18,9 +18,9 @@
  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  */
 import * as React from 'react';
+import { getMeasuresAndMeta } from '@sqapi/measures';
 import QGWidget from './QGWidget';
 import LoginForm from './LoginForm';
-import { getMeasuresAndMeta } from '../../../../../sonar-web/src/main/js/api/measures';
 import { Settings } from '../utils';
 
 interface Props {
index bbab74e1bbbbba7b409ad418b14852b7e6ee7a8f..4713fd26cffc555c02d3e8c06f21732622208d23 100644 (file)
     "moduleResolution": "node",
     "baseUrl": "./",
     "paths": {
-      "*": ["../sonar-web/node_modules/@types/*", "./node_modules/@types/*", "*"]
+      "@sqapi/*": ["../sonar-web/src/main/js/api/*"],
+      "@sqcomponents/*": ["../sonar-web/src/main/js/components/*"],
+      "@sqhelpers/*": ["../sonar-web/src/main/js/helpers/*"],
+      "*": ["./node_modules/@types/*", "../sonar-web/node_modules/@types/*", "*"]
     },
     "sourceMap": true
   },
index 44405d227d863fc08a90aa6341eb248ee35a9d75..17ceecbd5dc65b3150f2acef3c64641502f81da1 100644 (file)
@@ -51,6 +51,8 @@ build.dependsOn(yarn_run)
   outputs.file('eslint-report.json')
   outputs.dir('coverage')
   outputs.cacheIf { true }
+
+  dependsOn(yarn)
 }
 
 def sources = fileTree(dir: "src") + fileTree(dir: "scripts") + fileTree(dir: "config")