chore: update github action code climate (#3020)

* update to improve speed of filing PR

* Revert "update to improve speed of filing PR"

This reverts commit 83c177ed77.

* update to try code climate reporter GH Action

* update to next minor version

* update string array

* update to install latest lerna

* update coverageCommand

* update to not run helpers unit testing so I can validate issues with coverage

* update to run tests on packages only

* update to properly format for an 'action' input string

* added testing script

* updated to use new format provided by MartinNuc

* updated to test alternative option

* update version for codeclimate-action

* update jest configurations to support monorepositories

* update documentation for testing

* update ci-daily with performance improvements

* update to declutter, cleanup, and perf improvements

* update to mark with a branch so hopefully does not fire a run

* updates to resolve broken coverage mappings

* update configuration to reduce errors

* remove prettier upgrade as dev dep

* remove produciton flag

* update to revert back to working pipeline

* update to coverage locations

* update formatting mishap
This commit is contained in:
Aaron Wentzel 2020-04-28 11:06:23 -07:00 коммит произвёл GitHub
Родитель cbbb2cfc4e
Коммит 74ced803db
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
24 изменённых файлов: 328 добавлений и 1696 удалений

1
.actrc Normal file
Просмотреть файл

@ -0,0 +1 @@
-P ubuntu-latest=nektos/act-environments-ubuntu:18.04

62
.github/workflows/ci-daily.yml поставляемый
Просмотреть файл

@ -13,19 +13,17 @@ on:
jobs:
build_linux:
runs-on: ubuntu-latest
env:
CC_TEST_REPORTER_ID: 08a773cb4ea5811add5a45e12873e5cd2634c005568705cc37abfd5217617a32
steps:
- uses: actions/checkout@v2
- name: Install Lerna
run: sudo yarn global add lerna@3.18.2
- name: Add or Update packages
run: sudo yarn global add lerna@3.18.2
# Cache yarn dependencies
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
run: echo '::set-output name=dir::$(yarn cache dir)'
- name: Set up node_modules cache
uses: actions/cache@v1.1.2
id: yarn-cache
@ -44,32 +42,26 @@ jobs:
- name: Testing unit tests
run: lerna run test --stream
# Stop reporting to Code Climate until a resolution exists for incompatabilities with Jest 25.x
# as described in https://github.com/codeclimate/test-reporter/issues/427
# - name: Install Code Climate
# run: |
# if [ ! -f ./coverage/cc-test-reporter ]; then
# mkdir -p ./coverage/
# curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./coverage/cc-test-reporter
# chmod +x ./coverage/cc-test-reporter
# fi
# - name: Notify Code Climate that a build is starting
# run: ./coverage/cc-test-reporter before-build
# - name: Collect coverage reports
# run: |
# for f in packages/*; do
# if [ -d "$f" ]; then
# echo $f
# set +e
# if [ -d "$f/coverage" ]; then
# ./coverage/cc-test-reporter format-coverage -t lcov -o coverage/coverage.${f//\//-}.json $f/coverage/lcov.info
# fi
# fi
# done;
# - name: Summarize and upload code coverage
# run: |
# ./coverage/cc-test-reporter sum-coverage -o coverage/coverage.total.json coverage/coverage.*.json
# ./coverage/cc-test-reporter upload-coverage -i coverage/coverage.total.json
- name: Collect and upload code coverage to Code Climate
uses: paambaati/codeclimate-action@v2.6.0
env:
CC_TEST_REPORTER_ID: 08a773cb4ea5811add5a45e12873e5cd2634c005568705cc37abfd5217617a32
with:
coverageCommand: lerna run coverage
coverageLocations: |
${{github.workspace}}/packages/react/fast-components-foundation-react/coverage/lcov.info:lcov
${{github.workspace}}/packages/react/fast-components-react-base/coverage/lcov.info:lcov
${{github.workspace}}/packages/react/fast-components-react-msft/coverage/lcov.info:lcov
${{github.workspace}}/packages/react/fast-components-styles-msft/coverage/lcov.info:lcov
${{github.workspace}}/packages/react/fast-jss-manager/coverage/lcov.info:lcov
${{github.workspace}}/packages/react/fast-jss-manager-react/coverage/lcov.info:lcov
${{github.workspace}}/packages/react/fast-jss-utilities/coverage/lcov.info:lcov
${{github.workspace}}/packages/react/fast-layouts-react/coverage/lcov.info:lcov
${{github.workspace}}/packages/react/fast-react-utilities/coverage/lcov.info:lcov
${{github.workspace}}/packages/tooling/fast-tooling/coverage/lcov.info:lcov
${{github.workspace}}/packages/tooling/fast-tooling-react/coverage/lcov.info:lcov
${{github.workspace}}/packages/utilities/fast-animation/coverage/lcov.info:lcov
${{github.workspace}}/packages/utilities/fast-colors/coverage/lcov.info:lcov
${{github.workspace}}/packages/utilities/fast-web-utilities/coverage/lcov.info:lcov
${{github.workspace}}/sites/fast-component-explorer/coverage/lcov.info:lcov
debug: false

38
.github/workflows/testing/README.md поставляемый Normal file
Просмотреть файл

@ -0,0 +1,38 @@
# Local testing of GitHub Actions
Leverage the knowledge from https://github.com/nektos/act for detailed instructions.
## Install
### 1. Install Docker
Required to run GitHub Actions on VMs. Choose your preferred Docker setup https://docs.docker.com/get-docker/.
### 2. Install Nektos
Required to run GitHub Actions locally.
```bash
$ brew install nektos/tap/act
```
### 3. Install Azure CLI
Required to integrate GitHub Actions and Azure.
```bash
$ azure login
```
## Configure
The `.actrc` file contains the default configuration and run methods. The `./.github/workflows/testing/push.json` file contains the default GitHub events to run.
Update the "ref" values in `./.github/workflows/testing/push.json` to point to the local git branch to test. Then perform the following to execute against that branch when running `act`.
Run the event from the `/testing/*` folder as indicated with `-W` or `--workflows` arguments.
```bash
$ act -e `./.github/workflows/testing/push.json` -W "./.github/workflows/testing/"
```
## Test
`./.github/workflows/testing/ci-daily-local.yml` is used to test locally CI settings.
```bash
$ act -j build_local_linux -e "./.github/workflows/testing/push.json" -W "./.github/workflows/testing/"
```

50
.github/workflows/testing/ci-daily-local.yml поставляемый Normal file
Просмотреть файл

@ -0,0 +1,50 @@
name: CI - FAST Local Testing
on:
push:
branches:
- users/*
jobs:
build_local_linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Add/Update packages
run: |
sudo apt-get update
sudo apt-get install yarn
sudo yarn global upgrade typescript
sudo yarn global add lerna
- name: Install package dependencies / prepare workspaces
run: yarn install --frozen-lockfile
- name: Testing units
run: lerna run test --stream
- name: Collect and upload code coverage to Code Climate
uses: paambaati/codeclimate-action@v2.6.0
env:
CC_TEST_REPORTER_ID: 08a773cb4ea5811add5a45e12873e5cd2634c005568705cc37abfd5217617a32
with:
coverageCommand: lerna run coverage
coverageLocations: |
${{github.workspace}}/packages/react/fast-components-foundation-react/coverage/lcov.info:lcov
${{github.workspace}}/packages/react/fast-components-react-base/coverage/lcov.info:lcov
${{github.workspace}}/packages/react/fast-components-react-msft/coverage/lcov.info:lcov
${{github.workspace}}/packages/react/fast-components-styles-msft/coverage/lcov.info:lcov
${{github.workspace}}/packages/react/fast-jss-manager/coverage/lcov.info:lcov
${{github.workspace}}/packages/react/fast-jss-manager-react/coverage/lcov.info:lcov
${{github.workspace}}/packages/react/fast-jss-utilities/coverage/lcov.info:lcov
${{github.workspace}}/packages/react/fast-layouts-react/coverage/lcov.info:lcov
${{github.workspace}}/packages/react/fast-react-utilities/coverage/lcov.info:lcov
${{github.workspace}}/packages/tooling/fast-tooling/coverage/lcov.info:lcov
${{github.workspace}}/packages/tooling/fast-tooling-react/coverage/lcov.info:lcov
${{github.workspace}}/packages/utilities/fast-animation/coverage/lcov.info:lcov
${{github.workspace}}/packages/utilities/fast-colors/coverage/lcov.info:lcov
${{github.workspace}}/packages/utilities/fast-web-utilities/coverage/lcov.info:lcov
${{github.workspace}}/sites/fast-component-explorer/coverage/lcov.info:lcov
debug: true

10
.github/workflows/testing/push.json поставляемый Normal file
Просмотреть файл

@ -0,0 +1,10 @@
{
"push": {
"head": {
"ref": "users/awentzel/update-action-cc"
},
"base": {
"ref": "users/awentzel/update-action-cc"
}
}
}

Просмотреть файл

@ -40,10 +40,16 @@
}
},
"jest": {
"collectCoverage": true,
"collectCoverage": false,
"collectCoverageFrom": [
"build/helpers/*.ts"
],
"coverageReporters": [
"json",
[
"lcov", {"projectRoot": "."}
]
],
"coverageThreshold": {
"global": {
"statements": 100,
@ -64,7 +70,8 @@
],
"testPathIgnorePatterns": [
"packages/",
"build/helpers/__tests__/*"
"build/helpers/__tests__/*",
"build/helpers/"
],
"testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(js?|ts?)$",
"moduleFileExtensions": [

Просмотреть файл

@ -20,6 +20,7 @@
"scripts": {
"build": "tsc -p ./tsconfig.build.json",
"clean:dist": "node ../../../build/clean.js dist",
"coverage": "jest --coverage",
"prepare": "yarn clean:dist && yarn build",
"prettier": "prettier --config ../../../.prettierrc --write \"**/*.{ts,tsx}\"",
"prettier:diff": "prettier --config ../../../.prettierrc \"**/*.{ts,tsx}\" --list-different",
@ -32,6 +33,12 @@
},
"jest": {
"collectCoverage": true,
"coverageReporters": [
"json",
[
"lcov", {"projectRoot": "../../../"}
]
],
"coverageThreshold": {
"global": {
"statements": 80,

Просмотреть файл

@ -24,6 +24,7 @@
"copy:all": "yarn convert:json-schema && yarn copy:readme",
"convert:json-schema": "node ../../../build/convert-schemas.js",
"copy:readme": "node ../../../build/copy-readme.js",
"coverage": "jest --coverage",
"prepare": "yarn clean:dist && yarn build",
"prettier": "prettier --config ../../../.prettierrc --write \"**/*.{ts,tsx}\"",
"prettier:diff": "prettier --config ../../../.prettierrc \"**/*.{ts,tsx}\" --list-different",
@ -36,7 +37,13 @@
"watch": "tsc -p ./tsconfig.json -w --preserveWatchOutput"
},
"jest": {
"collectCoverage": true,
"collectCoverage": true,
"coverageReporters": [
"json",
[
"lcov", {"projectRoot": "../../../"}
]
],
"coverageThreshold": {
"global": {
"statements": 80,

Просмотреть файл

@ -24,6 +24,7 @@
"copy:all": "yarn convert:json-schema && yarn copy:readme",
"convert:json-schema": "node ../../../build/convert-schemas.js",
"copy:readme": "node ../../../build/copy-readme.js",
"coverage": "jest --coverage",
"prepare": "yarn clean:dist && yarn build",
"prettier": "prettier --config ../../../.prettierrc --write \"**/*.{ts,tsx}\"",
"prettier:diff": "prettier --config ../../../.prettierrc \"**/*.{ts,tsx}\" --list-different",
@ -40,6 +41,12 @@
"./mock.js"
],
"collectCoverage": true,
"coverageReporters": [
"json",
[
"lcov", {"projectRoot": "../../../"}
]
],
"coverageThreshold": {
"global": {
"statements": 95,

Просмотреть файл

@ -20,6 +20,7 @@
"scripts": {
"clean:dist": "node ../../../build/clean.js dist",
"clean:tmp": "node ../../../build/clean.js .tmp",
"coverage": "jest --coverage",
"eslint": "eslint . --ext .ts",
"eslint:fix": "eslint . --ext .ts --fix",
"test": "yarn eslint && yarn unit-tests",
@ -35,6 +36,12 @@
},
"jest": {
"collectCoverage": true,
"coverageReporters": [
"json",
[
"lcov", {"projectRoot": "../../../"}
]
],
"coverageThreshold": {
"global": {
"statements": 80,

Просмотреть файл

@ -20,6 +20,7 @@
"scripts": {
"build": "tsc -p ./tsconfig.build.json",
"clean:dist": "node ../../../build/clean.js dist",
"coverage": "jest --coverage",
"prepare": "yarn clean:dist && yarn build",
"prettier": "prettier --config ../../../.prettierrc --write \"**/*.{ts,tsx}\"",
"prettier:diff": "prettier --config ../../../.prettierrc \"**/*.{ts,tsx}\" --list-different",
@ -33,6 +34,12 @@
},
"jest": {
"collectCoverage": true,
"coverageReporters": [
"json",
[
"lcov", {"projectRoot": "../../../"}
]
],
"coverageThreshold": {
"global": {
"statements": 81,

Просмотреть файл

@ -20,6 +20,7 @@
"scripts": {
"build": "tsc -p ./tsconfig.build.json",
"clean:dist": "node ../../../build/clean.js dist",
"coverage": "jest --coverage",
"prepare": "yarn clean:dist && yarn build",
"prettier": "prettier --config ../../../.prettierrc --write \"**/*.ts\"",
"prettier:diff": "prettier --config ../../../.prettierrc \"**/*.ts\" --list-different",
@ -55,6 +56,12 @@
},
"jest": {
"collectCoverage": true,
"coverageReporters": [
"json",
[
"lcov", {"projectRoot": "../../../"}
]
],
"coverageThreshold": {
"global": {
"statements": 100,

Просмотреть файл

@ -20,6 +20,7 @@
"scripts": {
"build": "tsc -p ./tsconfig.build.json",
"clean:dist": "node ../../../build/clean.js dist",
"coverage": "jest --coverage",
"prepare": "yarn clean:dist && yarn build",
"prettier": "prettier --config ../../../.prettierrc --write \"**/*.ts\"",
"prettier:diff": "prettier --config ../../../.prettierrc \"**/*.ts\" --list-different",
@ -31,6 +32,12 @@
},
"jest": {
"collectCoverage": true,
"coverageReporters": [
"json",
[
"lcov", {"projectRoot": "../../../"}
]
],
"coverageThreshold": {
"global": {
"statements": 100,

Просмотреть файл

@ -21,6 +21,7 @@
"build": "tsc -p ./tsconfig.build.json",
"build:app": "webpack --progress --mode=production",
"clean:dist": "node ../../../build/clean.js dist",
"coverage": "jest --coverage",
"prepare": "yarn clean:dist && yarn build",
"prettier": "prettier --config ../../../.prettierrc --write \"**/*.{ts,tsx}\"",
"prettier:diff": "prettier --config ../../../.prettierrc \"**/*.{ts,tsx}\" --list-different",
@ -35,6 +36,12 @@
},
"jest": {
"collectCoverage": true,
"coverageReporters": [
"json",
[
"lcov", {"projectRoot": "../../../"}
]
],
"coverageThreshold": {
"global": {
"statements": 71,

Просмотреть файл

@ -20,6 +20,7 @@
"scripts": {
"build": "tsc -p ./tsconfig.build.json",
"clean:dist": "node ../../../build/clean.js dist",
"coverage": "jest --coverage",
"prepare": "yarn clean:dist && yarn build",
"prettier": "prettier --config ../../../.prettierrc --write \"**/*.{ts,tsx}\"",
"prettier:diff": "prettier --config ../../../.prettierrc \"**/*.{ts,tsx}\" --list-different",
@ -32,6 +33,12 @@
},
"jest": {
"collectCoverage": true,
"coverageReporters": [
"json",
[
"lcov", {"projectRoot": "../../../"}
]
],
"coverageThreshold": {
"global": {
"statements": 95,

Просмотреть файл

@ -29,7 +29,7 @@
"watch": "tsc -p ./tsconfig.json -w --preserveWatchOutput"
},
"jest": {
"collectCoverage": true,
"collectCoverage": false,
"coverageThreshold": {
"global": {
"statements": 95,

Просмотреть файл

@ -21,6 +21,7 @@
"build": "tsc -p ./tsconfig.build.json",
"build:app": "webpack --progress --mode=production",
"clean:dist": "node ../../../build/clean.js dist",
"coverage": "jest --coverage",
"prepare": "yarn clean:dist && yarn build",
"prettier": "prettier --config ../../../.prettierrc --write \"**/*.{ts,tsx}\"",
"prettier:diff": "prettier --config ../../../.prettierrc \"**/*.{ts,tsx}\" --list-different",
@ -33,6 +34,12 @@
},
"jest": {
"collectCoverage": true,
"coverageReporters": [
"json",
[
"lcov", {"projectRoot": "../../../"}
]
],
"coverageThreshold": {
"global": {
"statements": 80,

Просмотреть файл

@ -21,6 +21,7 @@
"build": "tsc -p ./tsconfig.build.json",
"build:message-system": "webpack --config webpack.message-system.config.js",
"clean:dist": "node ../../../build/clean.js dist",
"coverage": "jest --coverage",
"prepare": "yarn clean:dist && yarn build && yarn build:message-system",
"prettier": "prettier --config ../../../.prettierrc --write \"**/*.ts\"",
"prettier:diff": "prettier --config ../../../.prettierrc \"**/*.ts\" --list-different",
@ -32,6 +33,12 @@
},
"jest": {
"collectCoverage": true,
"coverageReporters": [
"json",
[
"lcov", {"projectRoot": "../../../"}
]
],
"coverageThreshold": {
"global": {
"statements": 100,
@ -59,17 +66,17 @@
]
},
"devDependencies": {
"@types/jest": "^24.0.11",
"@types/jest": "^25.2.1",
"@types/lodash-es": "^4.17.0",
"@types/node": "^9.6.7",
"ajv": "^6.10.0",
"eslint-config-prettier": "^6.10.1",
"jest": "^24.5.0",
"jest": "^25.4.0",
"lodash-es": "^4.0.0",
"prettier": "2.0.2",
"ts-jest": "^24.0.0",
"ts-jest": "^25.4.0",
"ts-loader": "^4.0.1",
"typescript": "^3.3.3"
"typescript": "^3.8.3"
},
"peerDependencies": {
"lodash-es": "^4.0.0"

Просмотреть файл

@ -18,6 +18,7 @@
"scripts": {
"build": "tsc -p ./lib/tsconfig.json",
"build:app": "webpack --mode=production",
"coverage": "jest --coverage",
"prepare": "yarn build",
"prettier": "prettier --config ../../../.prettierrc --write \"**/*.{ts,tsx}\"",
"prettier:diff": "prettier --config ../../../.prettierrc \"**/*.{ts,tsx}\" --list-different",
@ -30,6 +31,12 @@
},
"jest": {
"collectCoverage": true,
"coverageReporters": [
"json",
[
"lcov", {"projectRoot": "../../../"}
]
],
"coverageThreshold": {
"global": {
"statements": 72,

Просмотреть файл

@ -20,6 +20,7 @@
"scripts": {
"build": "tsc -p ./tsconfig.build.json",
"clean:dist": "node ../../../build/clean.js dist",
"coverage": "jest --coverage",
"prepare": "yarn clean:dist && yarn build",
"prettier": "prettier --config ../../../.prettierrc --write \"**/*.ts\"",
"prettier:diff": "prettier --config ../../../.prettierrc \"**/*.ts\" --list-different",
@ -32,6 +33,12 @@
},
"jest": {
"collectCoverage": true,
"coverageReporters": [
"json",
[
"lcov", {"projectRoot": "../../../"}
]
],
"coveragePathIgnorePatterns": [
"pixel-blob.ts"
],

Просмотреть файл

@ -20,6 +20,7 @@
"scripts": {
"build": "tsc -p ./tsconfig.build.json",
"clean:dist": "node ../../../build/clean.js dist",
"coverage": "jest --coverage",
"prepare": "yarn clean:dist && yarn build",
"prettier": "prettier --config ../../../.prettierrc --write \"**/*.ts\"",
"prettier:diff": "prettier --config ../../../.prettierrc \"**/*.ts\" --list-different",
@ -32,6 +33,12 @@
},
"jest": {
"collectCoverage": true,
"coverageReporters": [
"json",
[
"lcov", {"projectRoot": "../../../"}
]
],
"coverageThreshold": {
"global": {
"statements": 97,

Просмотреть файл

@ -8,6 +8,7 @@
"build:app": "webpack --progress --mode=production",
"convert:readme": "node ./build/convert-readme.js",
"clean:tmp": "node ../../build/clean.js app/.tmp",
"coverage": "jest --coverage",
"prettier": "prettier --config ../../.prettierrc --write \"**/*.{ts,tsx}\"",
"prettier:diff": "prettier --config ../../.prettierrc \"**/*.{ts,tsx}\" --list-different",
"start": "webpack-dev-server",
@ -34,6 +35,12 @@
"./mock.js"
],
"collectCoverage": true,
"coverageReporters": [
"json",
[
"lcov", {"projectRoot": "../../../"}
]
],
"coverageThreshold": {
"global": {
"statements": 50,

Просмотреть файл

@ -30,38 +30,6 @@
},
"author": "Microsoft",
"license": "UNLICENSED",
"jest": {
"collectCoverage": true,
"coverageThreshold": {
"global": {
"statements": 80,
"branches": 80,
"functions": 80,
"lines": 80
}
},
"testURL": "http://localhost",
"transform": {
"^.+\\.tsx?$": "ts-jest",
"^.+\\.jsx?$": "babel-jest"
},
"transformIgnorePatterns": [
"!<rootDir>/node_modules/lodash-es",
"node_modules/jss-*",
"node_modules/css-vendor"
],
"testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
"moduleFileExtensions": [
"ts",
"tsx",
"js",
"jsx"
],
"moduleDirectories": [
"node_modules",
"src"
]
},
"devDependencies": {
"@babel/core": "^7.0.0",
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
@ -74,12 +42,12 @@
"@microsoft/fast-jss-manager-react": "^4.7.1",
"@microsoft/fast-jss-utilities": "^4.7.11",
"@microsoft/fast-layouts-react": "^4.11.8",
"@types/jest": "^23.3.10",
"@types/jest": "^25.2.1",
"@types/node": "^9.6.7",
"@types/react": "^16.8.0",
"@types/react-router": "^4.0.0",
"babel-core": "^7.0.0-bridge.0",
"babel-jest": "^24.5.0",
"babel-jest": "^25.4.0",
"babel-loader": "^8.0.6",
"clean-webpack-plugin": "^1.0.0",
"csstype": "^2.5.8",
@ -89,7 +57,7 @@
"focus-visible": "^4.1.5",
"html-webpack-plugin": "^3.2.0",
"husky": "^1.2.0",
"jest": "^23.6.0",
"jest": "^25.4.0",
"jss": "^9.8.7",
"jss-preset-default": "^4.5.0",
"lint-staged": "^8.1.0",
@ -101,7 +69,7 @@
"react-dnd-html5-backend": "^9.0.0",
"react-dom": "^16.8.0",
"react-router-dom": "^5.1.2",
"ts-jest": "^23.10.5",
"ts-jest": "^25.4.0",
"ts-loader": "^4.0.1",
"typescript": "^3.3.3",
"webpack": "4.28.4",

1695
yarn.lock

Разница между файлами не показана из-за своего большого размера Загрузить разницу