mattermost-desktop/package.json
Pantelis Vratsalis 2bb622c314
PoC performance tests in CI (#2474)
* PoC performance tests in CI

* Add a naive measurement

* Change in spec descriptions

* More minimal reporter and 2 tests: 1 failing, 1 succeeding

* Fix circleci config

* Fix circleci part 2

* Make performance tests a workflow

* add npm install in performance tests

* change executor

* Experimenting: Install crossenv

* Experimenting

* More experimenting

* Revert some changes

* Run update_image and cache node modules

* Sandbox e2e tests run

* fix code residual from rebase

* Add GH action for ci perf

* Use ubuntu instead of macos

* Use windows instead of ubuntu

* Fix env set command

* Use post-test script to check performance

* Use macos-latest

* Throw error when tests fail

* Use measudePerformance function instead

* Use measudePerformance function instead

* Try to run e2e on github actions

* Try headless script

* Install linux packages

* Add shell

* Use if: runner..

* ADd sudo

* Add more linux packages

* Go back to macos

* Try recursive find for main window

* Remove performance tests from circleCi

* Increase retries

* Fix

* Revert "Fix"

This reverts commit c19fc56600ada4eee3e26bf3988b27d2ce2616d1.

* Revert "Increase retries"

This reverts commit 564ac95c34def892595c17b98eec245cacb0d4a4.

* Revert "Remove performance tests from circleCi"

This reverts commit c49c73b6f811df12631036bc33dae30da2271173.

* Revert "Try recursive find for main window"

This reverts commit 19d9367f9317f6e9d7ef9aa6a5d69eccdff2df67.

* Revert "Go back to macos"

This reverts commit 72b796ad983e89940f84d53039affd867d0e7f34.

* Revert "Add more linux packages"

This reverts commit 4bd510f8ea5356c13fbc4722be874aeea32de43e.

* Revert "ADd sudo"

This reverts commit acb95e02609e7cc02b12863910d29c03694936c1.

* Revert "Use if: runner.."

This reverts commit 69beed6fe24e452b1d7f0b0e4578bbfa9ca36d2f.

* Revert "Add shell"

This reverts commit e1743664a8b01797da4112314af0b88318ad2fd7.

* Revert "Install linux packages"

This reverts commit 25195dd11c827dff0fd8cf4fbdf2dc709377d525.

* Revert "Try headless script"

This reverts commit 385be5609d5ee45363d26828f6a14c6be0ef661a.

* Revert "Try to run e2e on github actions"

This reverts commit be8f682fd8a82b265403471b5106fd5107f9fecb.

* Revert "Use measudePerformance function instead"

This reverts commit bfd46768ae845e2839e9f124735922da6301fa4e.

* Revert "Use measudePerformance function instead"

This reverts commit ab4bc22b8689ff35260b4ab55724a77dc5993426.

* Update workflow command

* Remove circleci config for perf tests

* Run on ubuntu

* Add packages for linux

* Fix order of commands

* Move env var at the beginning

* Upload test results to s3

* Update name

* Update name

* Add trigger for flag

* Add step to upload artifact to github workflow artifacts

* Update yml

* Add step to comment the results in the PR

* Fix env bug

* move constant to workflow env

* Wrap workflow env with single quotes

* Add start comment and remove label steps

* Update body of comment

* Remove unused file

* Move PR comment function into file

* Fix import

* Remove spaces from line start

* Remove label even if workflow failed

* Add logging

* Fix markdown table data

* Remove trailing semi string

---------

Co-authored-by: Tasos Boulis <tboulis@hotmail.com>
Co-authored-by: Mattermost Build <build@mattermost.com>
2023-01-30 17:16:10 +02:00

239 lines
9.8 KiB
JSON

{
"name": "mattermost-desktop",
"productName": "Mattermost",
"version": "5.3.0-develop.1",
"description": "Mattermost",
"main": "dist/index.js",
"author": "Mattermost, Inc. <feedback@mattermost.com>",
"license": "Apache-2.0",
"desktopName": "Mattermost.Desktop",
"homepage": "https://mattermost.com",
"engines": {
"node": ">=16.16.0"
},
"repository": {
"type": "git",
"url": "git://github.com/mattermost/desktop.git"
},
"config": {
"target": "21.2.0",
"arch": "x64",
"target_arch": "x64",
"disturl": "https://electronjs.org/headers",
"runtime": "electron",
"build_from_source": true
},
"scripts": {
"build": "npm-run-all build:*",
"build:main": "webpack-cli --config webpack.config.main.js",
"build:renderer": "webpack-cli --config webpack.config.renderer.js",
"build-prod": "cross-env NODE_ENV=production npm-run-all check-build-config build",
"build-prod-upgrade": "cross-env NODE_ENV=production CAN_UPGRADE=true npm-run-all check-build-config build",
"build-robotjs": "cross-env CL='/std:c++17' electron-rebuild -m ./node_modules/robotjs",
"start": "electron dist/ --disable-dev-mode",
"restart": "npm run build && npm run start",
"storybook": "start-storybook -p 9001 -c src/.storybook",
"clean": "rm -rf release/ node_modules/ src/node_modules/ dist/ && find src -name '*_bundle.js' | xargs rm",
"clean-install": "npm run clean && npm install",
"clean-dist": "rm -rf dist/",
"watch": "run-p watch:*",
"watch:main": "node scripts/watch_main_and_preload.js",
"watch:renderer": "webpack-dev-server --config webpack.config.renderer.js",
"test": "npm-run-all lint:js test:unit test:e2e",
"test:docker": "node scripts/setup_e2e_docker.js",
"test:e2e": "cross-env NODE_ENV=test npm-run-all build build-robotjs test:e2e:build test:e2e:run",
"test:e2e:performance": "cross-env NODE_ENV=test PERFORMANCE=true npm-run-all build build-robotjs test:e2e:build-performance test:e2e:run-performance",
"test:e2e:nobuild": "cross-env NODE_ENV=test npm-run-all test:e2e:build test:e2e:run",
"test:e2e:build": "webpack-cli --config webpack.config.test.js",
"test:e2e:build-performance": "webpack-cli --config webpack.config.performance.test.js",
"test:e2e:run-performance": "electron-mocha -r @babel/register --reporter json --reporter-option output=./e2e/performance/perf-test-report.json dist/tests/e2e_bundle.js",
"test:e2e:run": "electron-mocha -r @babel/register --reporter mochawesome dist/tests/e2e_bundle.js",
"test:e2e:send-report": "node ./e2e/save_report.js",
"test:unit": "cross-env NODE_ENV=jest jest",
"test:unit-ci": "cross-env NODE_ENV=jest jest --runInBand",
"test:coverage": "jest --coverage",
"package:all": "cross-env NODE_ENV=production npm-run-all package:windows package:windows-nsis package:mac package:mac-with-universal package:linux",
"package:windows": "npm-run-all build-prod && electron-builder --win zip --x64 --ia32 --arm64 --publish=never",
"package:windows-nsis": "npm-run-all build-prod-upgrade && electron-builder --win zip nsis --x64 --ia32 --arm64 --publish=never",
"package:mac": "npm-run-all build-prod && electron-builder --mac --x64 --arm64 --publish=never",
"package:mac-with-universal": "npm-run-all build-prod && electron-builder --mac --x64 --arm64 --universal --publish=never",
"package:mas": "cross-env NODE_ENV=production IS_MAC_APP_STORE=true npm-run-all check-build-config build && electron-builder --mac mas --universal --publish=never",
"package:mas-dev": "cross-env NODE_ENV=production IS_MAC_APP_STORE=true npm-run-all check-build-config build && electron-builder --mac mas-dev --universal --publish=never",
"package:linux": "npm-run-all package:linux-all package:linux-appImage",
"package:linux-appImage": "npm-run-all build-prod-upgrade package:linux-appImage-x64 package:linux-appImage-arm64",
"package:linux-appImage-x64": "electron-builder --linux tar.gz appimage --x64 --publish=never",
"package:linux-appImage-arm64": "cross-env CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ electron-builder --linux tar.gz appimage --arm64 --publish=never",
"package:linux-all": "npm-run-all build-prod package:linux-all-x64 package:linux-all-arm64",
"package:linux-all-x64": "electron-builder --linux tar.gz deb rpm --x64 --publish=never",
"package:linux-all-arm64": "cross-env CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ electron-builder --linux tar.gz deb rpm --arm64 --publish=never",
"lint:js": "eslint --ignore-path .gitignore --ignore-pattern node_modules --ext .js --ext .jsx --ext .ts --ext .tsx .",
"lint:js-quiet": "eslint --ignore-path .gitignore --ignore-pattern node_modules --ext .js --ext .jsx --ext .ts --ext .tsx . --quiet",
"fix:js": "eslint --ignore-path .gitignore --ignore-pattern node_modules --quiet --ext .js --ext .jsx --ext .ts --ext .tsx . --fix",
"check-build-config": "npm-run-all check-build-config:build check-build-config:run",
"check-build-config:build": "babel ./src/common/config/buildConfig.ts -o ./dist/buildConfig.js",
"check-build-config:run": "node -r @babel/register scripts/check_build_config.js",
"check-types": "tsc",
"prune": "ts-prune",
"mmjstool": "mmjstool",
"i18n-extract": "npm run mmjstool -- i18n extract-desktop",
"postinstall": "node scripts/patch_macos_notification_state.js && electron-builder install-app-deps"
},
"jest": {
"clearMocks": true,
"moduleDirectories": [
"",
"node_modules"
],
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"jsx",
"json"
],
"collectCoverageFrom": [
"src/common/**/*.ts",
"src/main/**/*.ts"
],
"testMatch": [
"**/src/**/*.test.js"
],
"testPathIgnorePatterns": [
"/node_modules/",
"/e2e/",
"/webpack.config.test.js"
],
"globals": {
"__HASH_VERSION__": "5.0.0",
"__CAN_UPGRADE__": false,
"__IS_NIGHTLY_BUILD__": false,
"__IS_MAC_APP_STORE__": false,
"__DISABLE_GPU__": false,
"__SKIP_ONBOARDING_SCREENS__": false
},
"setupFiles": [
"./src/jest/jestSetup.js"
],
"setupFilesAfterEnv": [
"./src/jest/jestSetupAfterEnv.js"
],
"reporters": [
"default",
[
"jest-junit",
{
"suiteName": "unit tests",
"outputName": "test-results.xml",
"classNameTemplate": "{classname}-{title}",
"titleTemplate": "{classname}-{title}",
"ancestorSeparator": "> "
}
]
]
},
"devDependencies": {
"@babel/cli": "7.17.6",
"@babel/core": "7.17.8",
"@babel/plugin-proposal-class-properties": "7.16.7",
"@babel/plugin-proposal-object-rest-spread": "7.17.3",
"@babel/preset-env": "7.16.11",
"@babel/preset-react": "7.16.7",
"@babel/register": "7.17.7",
"@bloomberg/record-tuple-polyfill": "^0.0.4",
"@electron/fuses": "1.6.0",
"@electron/universal": "1.3.1",
"@mattermost/compass-icons": "0.1.32",
"@storybook/addon-actions": "6.4.20",
"@storybook/react": "6.4.20",
"@types/auto-launch": "5.0.2",
"@types/electron-devtools-installer": "2.2.1",
"@types/jest": "^29.0.0",
"@types/react": "17.0.43",
"@types/react-beautiful-dnd": "13.0.0",
"@types/react-dom": "17.0.14",
"@types/valid-url": "1.0.3",
"@types/winreg": "1.2.31",
"@typescript-eslint/eslint-plugin": "5.18.0",
"@typescript-eslint/parser": "5.18.0",
"7zip-bin": "5.1.1",
"auto-launch": "5.0.5",
"aws-sdk": "^2.1190.0",
"axios": "0.26.1",
"babel-eslint": "10.1.0",
"babel-loader": "8.2.4",
"bootstrap": "4.6.1",
"bootstrap-dark": "1.0.3",
"chai": "4.3.6",
"classnames": "2.3.1",
"copy-webpack-plugin": "10.2.4",
"cross-env": "7.0.3",
"css-loader": "6.7.1",
"electron": "21.2.0",
"electron-builder": "23.3.3",
"electron-connect": "0.6.3",
"electron-context-menu": "3.5.0",
"electron-devtools-installer": "3.2.0",
"electron-is-dev": "2.0.0",
"electron-log": "4.4.8",
"electron-mocha": "11.0.2",
"electron-notarize": "1.2.1",
"electron-rebuild": "3.2.9",
"electron-updater": "5.2.1",
"eslint": "7.29.0",
"eslint-import-resolver-webpack": "0.13.2",
"eslint-plugin-babel": "5.3.1",
"eslint-plugin-cypress": "2.11.3",
"eslint-plugin-header": "3.1.1",
"eslint-plugin-import": "2.25.4",
"eslint-plugin-mattermost": "github:mattermost/eslint-plugin-mattermost#46ad99355644a719bf32082f472048f526605181",
"eslint-plugin-no-only-tests": "2.6.0",
"eslint-plugin-react": "7.29.4",
"eslint-plugin-react-hooks": "4.4.0",
"fs-extra": "10.0.1",
"jest": "27.5.1",
"jest-junit": "13.1.0",
"joi": "17.6.0",
"mini-css-extract-plugin": "2.6.0",
"mmjstool": "github:mattermost/mattermost-utilities#3b4506b0f6b14fbb402f9f8ef932370e459e3773",
"mocha-circleci-reporter": "0.0.3",
"mochawesome": "7.1.3",
"nan": "2.17.0",
"node-abi": "3.26.0",
"node-jq": "2.3.4",
"node-loader": "2.0.0",
"npm-run-all": "4.1.5",
"playwright": "1.28.1",
"pretty-bytes": "6.0.0",
"ps-node": "^0.1.6",
"react": "16.14.0",
"react-beautiful-dnd": "13.1.0",
"react-bootstrap": "1.6.4",
"react-dom": "16.14.0",
"react-intl": "5.20.10",
"react-select": "5.2.2",
"recursive-readdir": "^2.2.2",
"robotjs": "0.6.0",
"sass": "1.49.11",
"sass-loader": "12.6.0",
"semver": "7.3.5",
"shebang-loader": "0.0.1",
"style-loader": "3.3.1",
"ts-prune": "0.10.3",
"typescript": "4.6.3",
"valid-url": "1.0.9",
"webpack": "5.71.0",
"webpack-cli": "4.10.0",
"webpack-dev-server": "4.8.0",
"webpack-merge": "5.8.0",
"winreg-utf8": "0.1.1",
"yargs": "17.4.0"
},
"dependencies": {
"macos-notification-state": "2.0.2",
"windows-focus-assist": "1.3.0"
},
"overrides": {
"@electron/universal": "1.3.1"
}
}