├── .eslintignore
├── .eslintrc.json
├── .gitattributes
├── .github
├── dependabot.yml
└── workflows
│ └── test.yml
├── .gitignore
├── .prettierignore
├── .prettierrc.json
├── CODEOWNERS
├── LICENSE
├── README.md
├── TestResultsMac.xcresult
├── Data
│ ├── data.0~5FadZZXlYvj0VjInKZsTvlxFgyaSGSt5DyEipT3O_bRJc7tGa6slaHsZnCk1OEjc1TxUqIie9bIOHbSh-kM9jg==
│ ├── data.0~5wEQVivJxSGk8aKypN_KpFjUOf5xubt46N6o6vbavZHW_1-JFihdwgigyOPvXdaT6xLZmGwBk6bnWarEtOcP0A==
│ ├── data.0~ASKYyzT7GPXXLhCaIokwKqk-MHHZkMDz3OSrvkU97QP6eZwnSSZ-7jubpgOj-R-JIJIQyO_Zqdb-RLc9SLUwTQ==
│ ├── data.0~O6d93Q9sUQJo1Ar44kA3MEd2rQaqAygT2O72wJa9STTIxpgk_251rmRGR5oQDaE8AGC3SPGkn73oXaB4l6OzcA==
│ ├── data.0~OBOV7ByfZDl25mb1_0ZXS_IfOfJ6BT-NISgo-JvdhLhBWPHrYjYtKJt5GjdbkcuGjGuMMrTJ27wooXl9t9G4uA==
│ ├── data.0~Ox3_UjznDxrWtgUYN4tf2WW0hlsC1_MEt3mxhze6RPRHLZIgU6VJBx7nral9cbKkWWzdpGBPKMKX4rnmF79k0Q==
│ ├── data.0~WecU85Wj8Q8htKqPht0GFAIFI4RKBd6Hw7rPlPtuZRAgOy-ia-a5pBM-hrUZ1ymRRZlQ2sIUKvY6KvH8TDEGyw==
│ ├── data.0~WerDoZ54B3g7-gQvVwhzdK7WtZAFwj3AEogPjFd8lJnIoW8e6ZkUhxz-FYOAhv0N8ZRK9Q5VFcV3J7jDc4vg1Q==
│ ├── data.0~ZiD-VCMJigvvknjtlVLsqlu1VFc6L2V4hwS_zJ2-eXm2IEwUu9oJ1WQV4vaBY9WiVlgHkEhuEveJ60jqcwlwmw==
│ ├── data.0~b4sjr-Aj3F2wX_2CrzPDw1OwfvwhAhFvc3kNFRsIJ7om8U9CKeWOlmxGfIxqksu4P87uR_29cHZW9_wXo6VlPA==
│ ├── data.0~bwrQIYfFQ8wR5dmJP61W1XinuvmQPJr_sFH3pNDNe8A7A1waEJRPxJ8jsM15fDm-BMbMElkpwX0Cva6vdY8GYg==
│ ├── data.0~cS2eiVQlJhPHruy_0KIczzcM7OUKi1wQsbiRWaMtRMGu2lGEs1FBjunuH7vHgBj5d7tHqwaSmldz-8YIywrE6g==
│ ├── data.0~kPhNNKpH9EbihyPpup3po_S2O64OG3GnNMGhDx3wdCOwjq1NSiQHpWgofQjrV7n2ipKUILaAD3lg2Wz7xE1vfw==
│ ├── data.0~qKNmO0Qh3yKHdWnDn6tIP15U3zvHMCvSzNL6ACKUUxIyQtrCaitTePTnx2dSb5zGJhp3CsNuYQTbp65m_dFFVg==
│ ├── data.0~wNyADXK01DXmIxM2-JoBXpA2StKv0Ro8IA8g4esyzxragsUtUWjol_nx7dw_Dn24O0mkJb-zAoEmJTuEKfxy3g==
│ ├── refs.0~5FadZZXlYvj0VjInKZsTvlxFgyaSGSt5DyEipT3O_bRJc7tGa6slaHsZnCk1OEjc1TxUqIie9bIOHbSh-kM9jg==
│ ├── refs.0~5wEQVivJxSGk8aKypN_KpFjUOf5xubt46N6o6vbavZHW_1-JFihdwgigyOPvXdaT6xLZmGwBk6bnWarEtOcP0A==
│ ├── refs.0~ASKYyzT7GPXXLhCaIokwKqk-MHHZkMDz3OSrvkU97QP6eZwnSSZ-7jubpgOj-R-JIJIQyO_Zqdb-RLc9SLUwTQ==
│ ├── refs.0~O6d93Q9sUQJo1Ar44kA3MEd2rQaqAygT2O72wJa9STTIxpgk_251rmRGR5oQDaE8AGC3SPGkn73oXaB4l6OzcA==
│ ├── refs.0~OBOV7ByfZDl25mb1_0ZXS_IfOfJ6BT-NISgo-JvdhLhBWPHrYjYtKJt5GjdbkcuGjGuMMrTJ27wooXl9t9G4uA==
│ ├── refs.0~Ox3_UjznDxrWtgUYN4tf2WW0hlsC1_MEt3mxhze6RPRHLZIgU6VJBx7nral9cbKkWWzdpGBPKMKX4rnmF79k0Q==
│ ├── refs.0~WecU85Wj8Q8htKqPht0GFAIFI4RKBd6Hw7rPlPtuZRAgOy-ia-a5pBM-hrUZ1ymRRZlQ2sIUKvY6KvH8TDEGyw==
│ ├── refs.0~WerDoZ54B3g7-gQvVwhzdK7WtZAFwj3AEogPjFd8lJnIoW8e6ZkUhxz-FYOAhv0N8ZRK9Q5VFcV3J7jDc4vg1Q==
│ ├── refs.0~ZiD-VCMJigvvknjtlVLsqlu1VFc6L2V4hwS_zJ2-eXm2IEwUu9oJ1WQV4vaBY9WiVlgHkEhuEveJ60jqcwlwmw==
│ ├── refs.0~b4sjr-Aj3F2wX_2CrzPDw1OwfvwhAhFvc3kNFRsIJ7om8U9CKeWOlmxGfIxqksu4P87uR_29cHZW9_wXo6VlPA==
│ ├── refs.0~bwrQIYfFQ8wR5dmJP61W1XinuvmQPJr_sFH3pNDNe8A7A1waEJRPxJ8jsM15fDm-BMbMElkpwX0Cva6vdY8GYg==
│ ├── refs.0~cS2eiVQlJhPHruy_0KIczzcM7OUKi1wQsbiRWaMtRMGu2lGEs1FBjunuH7vHgBj5d7tHqwaSmldz-8YIywrE6g==
│ ├── refs.0~kPhNNKpH9EbihyPpup3po_S2O64OG3GnNMGhDx3wdCOwjq1NSiQHpWgofQjrV7n2ipKUILaAD3lg2Wz7xE1vfw==
│ ├── refs.0~qKNmO0Qh3yKHdWnDn6tIP15U3zvHMCvSzNL6ACKUUxIyQtrCaitTePTnx2dSb5zGJhp3CsNuYQTbp65m_dFFVg==
│ └── refs.0~wNyADXK01DXmIxM2-JoBXpA2StKv0Ro8IA8g4esyzxragsUtUWjol_nx7dw_Dn24O0mkJb-zAoEmJTuEKfxy3g==
└── Info.plist
├── TestResultsMacFailed.xcresult
├── Data
│ ├── data.0~8V5x2T22G246TQGoQzr6XPAhD_cQrz4PgEju0k5rcMnQOohFm9JUcsZLyWa8atV56P4tFBDYvjJ0xh33XXN_tw==
│ ├── data.0~9T2Rvtub3mfr-IVWLUuysUTxh7uV9K6TRyOiuq3tx55FCOCoCC3jiGZrkHYJH8Rx6eRlIp1-t06-I6uV9PG_uQ==
│ ├── data.0~CiZ07rBANmrXZhkbjvjDRm9gngGMSs5AObBsyB3Ai3IrCZGJJenJDp_cN7lsYvsX0LtVqlPkUQYARAE6l2Ar8w==
│ ├── data.0~DNkZJhdjwkEmJmPDaSzRUpBPFKh9U7jCjVB2hkGpVMb7ZBUZX_GneHHf84BgN6Q9SuT9qA1CiG_fWGOLS08QJQ==
│ ├── data.0~E8TlLEbH8hLVxwDMWLtMHmDmjTs1q7zbRaL2W8FH2PTO3GnZ37YyH74wMSZK-rQvbvGrNYOUQ5oZJeA5Pj9qFg==
│ ├── data.0~GBfVa9AsAEHzJ4rsSbIrrVErKeyln_KFeGPbUTJLLxIdchp2ZtIhpOyGZumkXBbU1flwsPIKvpvVu7g1ihxnVQ==
│ ├── data.0~Qp1CZwQZtFj1-sHvkbB8q3qgzSQouPSnAqaB-T4r_rFGYy-RMtL3dRbrmMFUr104OucQlJIcz7FQhs6tPS9y4g==
│ ├── data.0~XqEMT-Nw3AWqcPlB--wO0WbvT2uMRsa6VxHvVbJn5M77fNBPe5pUO-kEL1fLCRCI90gOh0w9skik9xvF1A9TKg==
│ ├── data.0~ZngO-MliWNPydegtJbBytcQpG3EneP6IoWlbm1RyaEa_iDzDpnGr6vIldFJKNW4kn5mg-OLhfSGVWPOuYdgkVQ==
│ ├── data.0~_0QWMWZHLIObYOnvW0ieWZbO8FkkFDG3UWcOUozLkuP4eE5PrM01NvqGjeZ0fBhBrnfldDrxMmyExNVBqIEFiA==
│ ├── data.0~eHoCcEJ-3vS4aSZcR2JteDgYhkbNhv1FALatU4O8cdM5f6nw6wyibVVtD7ZHCjwgYSbea-8PNjJRK77BKmls1w==
│ ├── data.0~kjTJkTlV4KhJqiNlpPluQ6SFHQGSW4Bco244E7kyFmjBRrsKfbTCYNzhA0s5SmUUf-F_RbIa7h7TzFqtn8Vp8w==
│ ├── data.0~mhED0yHxUiBQS__dUS2ReveDZe5wEOR3I5acQnunm4u4Ajca0ooZqdSVSwimgaTjzQ8r8pnkKdUqlEZGEJDpDA==
│ ├── data.0~qLkdI9vFdGKParNPGgKNee59voBx8hk25QWWgzr2-rhxQ7nWPryD1T87mxoybB0i1L_embEVQWXcBiGsAyTkWg==
│ ├── data.0~upEExljiW_I5b_v5VOHtQADfeizE3jnd2xYKwqsLhCMMX-yAMG3tYHiVv55MAkHQUSwhXERs_H4Uv3XreW9Y8Q==
│ ├── data.0~v9TsE5AEf5oZO_mS-NvvjEYJIQFnvumP-cbLz0wo-cc5yFCSGjfjDRuoYn0wjagvlXjEEpERSAKOOfEToU8cHQ==
│ ├── refs.0~8V5x2T22G246TQGoQzr6XPAhD_cQrz4PgEju0k5rcMnQOohFm9JUcsZLyWa8atV56P4tFBDYvjJ0xh33XXN_tw==
│ ├── refs.0~9T2Rvtub3mfr-IVWLUuysUTxh7uV9K6TRyOiuq3tx55FCOCoCC3jiGZrkHYJH8Rx6eRlIp1-t06-I6uV9PG_uQ==
│ ├── refs.0~CiZ07rBANmrXZhkbjvjDRm9gngGMSs5AObBsyB3Ai3IrCZGJJenJDp_cN7lsYvsX0LtVqlPkUQYARAE6l2Ar8w==
│ ├── refs.0~DNkZJhdjwkEmJmPDaSzRUpBPFKh9U7jCjVB2hkGpVMb7ZBUZX_GneHHf84BgN6Q9SuT9qA1CiG_fWGOLS08QJQ==
│ ├── refs.0~E8TlLEbH8hLVxwDMWLtMHmDmjTs1q7zbRaL2W8FH2PTO3GnZ37YyH74wMSZK-rQvbvGrNYOUQ5oZJeA5Pj9qFg==
│ ├── refs.0~GBfVa9AsAEHzJ4rsSbIrrVErKeyln_KFeGPbUTJLLxIdchp2ZtIhpOyGZumkXBbU1flwsPIKvpvVu7g1ihxnVQ==
│ ├── refs.0~Qp1CZwQZtFj1-sHvkbB8q3qgzSQouPSnAqaB-T4r_rFGYy-RMtL3dRbrmMFUr104OucQlJIcz7FQhs6tPS9y4g==
│ ├── refs.0~XqEMT-Nw3AWqcPlB--wO0WbvT2uMRsa6VxHvVbJn5M77fNBPe5pUO-kEL1fLCRCI90gOh0w9skik9xvF1A9TKg==
│ ├── refs.0~ZngO-MliWNPydegtJbBytcQpG3EneP6IoWlbm1RyaEa_iDzDpnGr6vIldFJKNW4kn5mg-OLhfSGVWPOuYdgkVQ==
│ ├── refs.0~_0QWMWZHLIObYOnvW0ieWZbO8FkkFDG3UWcOUozLkuP4eE5PrM01NvqGjeZ0fBhBrnfldDrxMmyExNVBqIEFiA==
│ ├── refs.0~eHoCcEJ-3vS4aSZcR2JteDgYhkbNhv1FALatU4O8cdM5f6nw6wyibVVtD7ZHCjwgYSbea-8PNjJRK77BKmls1w==
│ ├── refs.0~kjTJkTlV4KhJqiNlpPluQ6SFHQGSW4Bco244E7kyFmjBRrsKfbTCYNzhA0s5SmUUf-F_RbIa7h7TzFqtn8Vp8w==
│ ├── refs.0~mhED0yHxUiBQS__dUS2ReveDZe5wEOR3I5acQnunm4u4Ajca0ooZqdSVSwimgaTjzQ8r8pnkKdUqlEZGEJDpDA==
│ ├── refs.0~qLkdI9vFdGKParNPGgKNee59voBx8hk25QWWgzr2-rhxQ7nWPryD1T87mxoybB0i1L_embEVQWXcBiGsAyTkWg==
│ ├── refs.0~upEExljiW_I5b_v5VOHtQADfeizE3jnd2xYKwqsLhCMMX-yAMG3tYHiVv55MAkHQUSwhXERs_H4Uv3XreW9Y8Q==
│ └── refs.0~v9TsE5AEf5oZO_mS-NvvjEYJIQFnvumP-cbLz0wo-cc5yFCSGjfjDRuoYn0wjagvlXjEEpERSAKOOfEToU8cHQ==
└── Info.plist
├── __tests__
└── main.test.ts
├── action.yml
├── dist
├── index.js
├── index.js.map
├── licenses.txt
└── sourcemap-register.js
├── jest.config.js
├── package-lock.json
├── package.json
├── src
├── main.ts
└── xcresulttool.ts
└── tsconfig.json
/.eslintignore:
--------------------------------------------------------------------------------
1 | dist/
2 | lib/
3 | node_modules/
4 | jest.config.js
5 |
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": ["jest", "@typescript-eslint"],
3 | "extends": ["plugin:github/recommended"],
4 | "parser": "@typescript-eslint/parser",
5 | "parserOptions": {
6 | "ecmaVersion": 9,
7 | "sourceType": "module",
8 | "project": "./tsconfig.json"
9 | },
10 | "rules": {
11 | "eslint-comments/no-use": "off",
12 | "import/no-namespace": "off",
13 | "no-unused-vars": "off",
14 | "@typescript-eslint/no-unused-vars": "error",
15 | "@typescript-eslint/explicit-member-accessibility": ["error", {"accessibility": "no-public"}],
16 | "@typescript-eslint/no-require-imports": "error",
17 | "@typescript-eslint/array-type": "error",
18 | "@typescript-eslint/await-thenable": "error",
19 | "@typescript-eslint/ban-ts-comment": "error",
20 | "camelcase": "off",
21 | "@typescript-eslint/consistent-type-assertions": "error",
22 | "@typescript-eslint/explicit-function-return-type": ["error", {"allowExpressions": true}],
23 | "@typescript-eslint/func-call-spacing": ["error", "never"],
24 | "@typescript-eslint/no-array-constructor": "error",
25 | "@typescript-eslint/no-empty-interface": "error",
26 | "@typescript-eslint/no-explicit-any": "error",
27 | "@typescript-eslint/no-extraneous-class": "error",
28 | "@typescript-eslint/no-for-in-array": "error",
29 | "@typescript-eslint/no-inferrable-types": "error",
30 | "@typescript-eslint/no-misused-new": "error",
31 | "@typescript-eslint/no-namespace": "error",
32 | "@typescript-eslint/no-non-null-assertion": "warn",
33 | "@typescript-eslint/no-unnecessary-qualifier": "error",
34 | "@typescript-eslint/no-unnecessary-type-assertion": "error",
35 | "@typescript-eslint/no-useless-constructor": "error",
36 | "@typescript-eslint/no-var-requires": "error",
37 | "@typescript-eslint/prefer-for-of": "warn",
38 | "@typescript-eslint/prefer-function-type": "warn",
39 | "@typescript-eslint/prefer-includes": "error",
40 | "@typescript-eslint/prefer-string-starts-ends-with": "error",
41 | "@typescript-eslint/promise-function-async": "error",
42 | "@typescript-eslint/require-array-sort-compare": "error",
43 | "@typescript-eslint/restrict-plus-operands": "error",
44 | "semi": "off",
45 | "@typescript-eslint/semi": ["error", "never"],
46 | "@typescript-eslint/type-annotation-spacing": "error",
47 | "@typescript-eslint/unbound-method": "error"
48 | },
49 | "env": {
50 | "node": true,
51 | "es6": true,
52 | "jest/globals": true
53 | }
54 | }
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | dist/** -diff linguist-generated=true
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | # Enable version updates for npm
4 | - package-ecosystem: 'npm'
5 | # Look for `package.json` and `lock` files in the `root` directory
6 | directory: '/'
7 | # Check the npm registry for updates every day (weekdays)
8 | schedule:
9 | interval: 'daily'
10 |
--------------------------------------------------------------------------------
/.github/workflows/test.yml:
--------------------------------------------------------------------------------
1 | name: 'build-test'
2 | on: # rebuild any PRs and main branch changes
3 | pull_request:
4 | push:
5 | branches:
6 | - main
7 | - 'releases/*'
8 |
9 | jobs:
10 | build: # make sure build/ci work properly
11 | runs-on: macos-latest
12 | steps:
13 | - uses: actions/checkout@v2
14 | - run: |
15 | npm install
16 | - run: |
17 | npm run all
18 | test: # make sure the action works on a clean machine without building
19 | runs-on: macos-latest
20 | steps:
21 | - uses: actions/checkout@v2
22 | - uses: ./
23 | with:
24 | results: TestResultsMac.xcresult
25 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
26 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Dependency directory
2 | node_modules
3 |
4 | # Rest pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
5 | # Logs
6 | logs
7 | *.log
8 | npm-debug.log*
9 | yarn-debug.log*
10 | yarn-error.log*
11 | lerna-debug.log*
12 |
13 | # Diagnostic reports (https://nodejs.org/api/report.html)
14 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
15 |
16 | # Runtime data
17 | pids
18 | *.pid
19 | *.seed
20 | *.pid.lock
21 |
22 | # Directory for instrumented libs generated by jscoverage/JSCover
23 | lib-cov
24 |
25 | # Coverage directory used by tools like istanbul
26 | coverage
27 | *.lcov
28 |
29 | # nyc test coverage
30 | .nyc_output
31 |
32 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
33 | .grunt
34 |
35 | # Bower dependency directory (https://bower.io/)
36 | bower_components
37 |
38 | # node-waf configuration
39 | .lock-wscript
40 |
41 | # Compiled binary addons (https://nodejs.org/api/addons.html)
42 | build/Release
43 |
44 | # Dependency directories
45 | jspm_packages/
46 |
47 | # TypeScript v1 declaration files
48 | typings/
49 |
50 | # TypeScript cache
51 | *.tsbuildinfo
52 |
53 | # Optional npm cache directory
54 | .npm
55 |
56 | # Optional eslint cache
57 | .eslintcache
58 |
59 | # Optional REPL history
60 | .node_repl_history
61 |
62 | # Output of 'npm pack'
63 | *.tgz
64 |
65 | # Yarn Integrity file
66 | .yarn-integrity
67 |
68 | # dotenv environment variables file
69 | .env
70 | .env.test
71 |
72 | # parcel-bundler cache (https://parceljs.org/)
73 | .cache
74 |
75 | # next.js build output
76 | .next
77 |
78 | # nuxt.js build output
79 | .nuxt
80 |
81 | # vuepress build output
82 | .vuepress/dist
83 |
84 | # Serverless directories
85 | .serverless/
86 |
87 | # FuseBox cache
88 | .fusebox/
89 |
90 | # DynamoDB Local files
91 | .dynamodb/
92 |
93 | # OS metadata
94 | .DS_Store
95 | Thumbs.db
96 |
97 | # Ignore built ts files
98 | __tests__/runner/*
99 | lib/**/*
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | dist/
2 | lib/
3 | node_modules/
--------------------------------------------------------------------------------
/.prettierrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "printWidth": 80,
3 | "tabWidth": 2,
4 | "useTabs": false,
5 | "semi": false,
6 | "singleQuote": true,
7 | "trailingComma": "none",
8 | "bracketSpacing": false,
9 | "arrowParens": "avoid"
10 | }
11 |
--------------------------------------------------------------------------------
/CODEOWNERS:
--------------------------------------------------------------------------------
1 | * @actions/actions-runtime
2 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 |
2 | The MIT License (MIT)
3 |
4 | Copyright (c) 2018 GitHub, Inc. and contributors
5 |
6 | Permission is hereby granted, free of charge, to any person obtaining a copy
7 | of this software and associated documentation files (the "Software"), to deal
8 | in the Software without restriction, including without limitation the rights
9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10 | copies of the Software, and to permit persons to whom the Software is
11 | furnished to do so, subject to the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be included in
14 | all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22 | THE SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Analyze Xcode Build and Test Results
2 |
3 | This action adds GitHub checks for XCode results.
4 |
5 | ## Usage
6 |
7 | ### Pre-Requisites
8 |
9 | This action only works on macOS builders.
10 |
11 | By default `xcodebuild` only writes information to stdout, to use this action `xcodebuild`
12 | needs to generate `xcresult` bundle while building and testing.
13 |
14 | This can be done using the `-resultBundlePath` flag in XCode build.
15 |
16 | The following action uses a script action to invoke xcodebuild and store the results
17 | in `TestResults.xcresult`
18 |
19 | ```yaml
20 | - name: Run Tests
21 | run: |
22 | xcodebuild -scheme "MyFramework" -resultBundlePath TestResults test
23 | ```
24 |
25 | ### Configuration
26 | | Option | Required | Default | Description |
27 | |:-------------|:---------|:--------|:------------|
28 | | `results` | Yes | | Path to the `.xcresult` bundle |
29 | | `GITHUB_TOKEN` | Yes | | GitHub token to create the GitHub check objects. ` ${{ secrets.GITHUB_TOKEN }}` is recommended |
30 | | `pathPrefix` | No | Path to the GitHub Workspace | Paths inside the xcode result build are absolute. For GitHub to find the corresponding file for annotations the paths need to be relative to the build directory. If your checkout is not into the GitHub workspace, this option can be used to configure a different prefix. |
31 | | `title` | No | Test Results | Title to show up as the check name |
32 | | `testSummaryTable` | No | `true` | Setting if a table with the test results should be included |
33 | | `testFailureAnnotations` | No | `true` | Setting if GitHub code annotations should be added in the check results |
34 | | `summary` | No | `true` | Setting if a summary section, with the number of warnings and test failures should be included |
35 | | `warningAnnotations` | No | `false` | Setting if warnings should be added as GitHub annotations|
36 |
37 |
38 | ### Example
39 |
40 | The following example builds and tests the "My Framework" scheme and analyzes the results.
41 |
42 | The result of this can be seen in this [test run](https://github.com/tbartelmess/action-test/pull/1/checks?check_run_id=2197833878)
43 |
44 | ```yaml
45 | ---
46 | name: Run Tests
47 | on:
48 | pull_request
49 |
50 | jobs:
51 | tests:
52 | name: Run Tests
53 | runs-on: macos-latest
54 | steps:
55 | - uses: actions/checkout@v2
56 | with:
57 | fetch-depth: 0
58 | - name: Setup Certificates
59 | uses: apple-actions/import-codesign-certs@v1
60 | with:
61 | p12-file-base64: ${{ secrets.CERTIFICATES_P12 }}
62 | p12-password: ${{ secrets.CERTIFICATES_P12_PASSWORD }}
63 | - name: Run Tests
64 | run: |
65 | xcodebuild -scheme "MyFramework" -resultBundlePath TestResults test
66 | - uses: tbartelmess/analyze-xcoderesults-action@0.1.0
67 | if: always()
68 | with:
69 | results: TestResults.xcresult
70 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
71 | ```
72 |
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/data.0~5FadZZXlYvj0VjInKZsTvlxFgyaSGSt5DyEipT3O_bRJc7tGa6slaHsZnCk1OEjc1TxUqIie9bIOHbSh-kM9jg==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/data.0~5FadZZXlYvj0VjInKZsTvlxFgyaSGSt5DyEipT3O_bRJc7tGa6slaHsZnCk1OEjc1TxUqIie9bIOHbSh-kM9jg==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/data.0~5wEQVivJxSGk8aKypN_KpFjUOf5xubt46N6o6vbavZHW_1-JFihdwgigyOPvXdaT6xLZmGwBk6bnWarEtOcP0A==:
--------------------------------------------------------------------------------
1 | [{"name":"testmanagerd.log","type":1}]
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/data.0~ASKYyzT7GPXXLhCaIokwKqk-MHHZkMDz3OSrvkU97QP6eZwnSSZ-7jubpgOj-R-JIJIQyO_Zqdb-RLc9SLUwTQ==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/data.0~ASKYyzT7GPXXLhCaIokwKqk-MHHZkMDz3OSrvkU97QP6eZwnSSZ-7jubpgOj-R-JIJIQyO_Zqdb-RLc9SLUwTQ==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/data.0~O6d93Q9sUQJo1Ar44kA3MEd2rQaqAygT2O72wJa9STTIxpgk_251rmRGR5oQDaE8AGC3SPGkn73oXaB4l6OzcA==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/data.0~O6d93Q9sUQJo1Ar44kA3MEd2rQaqAygT2O72wJa9STTIxpgk_251rmRGR5oQDaE8AGC3SPGkn73oXaB4l6OzcA==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/data.0~OBOV7ByfZDl25mb1_0ZXS_IfOfJ6BT-NISgo-JvdhLhBWPHrYjYtKJt5GjdbkcuGjGuMMrTJ27wooXl9t9G4uA==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/data.0~OBOV7ByfZDl25mb1_0ZXS_IfOfJ6BT-NISgo-JvdhLhBWPHrYjYtKJt5GjdbkcuGjGuMMrTJ27wooXl9t9G4uA==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/data.0~Ox3_UjznDxrWtgUYN4tf2WW0hlsC1_MEt3mxhze6RPRHLZIgU6VJBx7nral9cbKkWWzdpGBPKMKX4rnmF79k0Q==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/data.0~Ox3_UjznDxrWtgUYN4tf2WW0hlsC1_MEt3mxhze6RPRHLZIgU6VJBx7nral9cbKkWWzdpGBPKMKX4rnmF79k0Q==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/data.0~WecU85Wj8Q8htKqPht0GFAIFI4RKBd6Hw7rPlPtuZRAgOy-ia-a5pBM-hrUZ1ymRRZlQ2sIUKvY6KvH8TDEGyw==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/data.0~WecU85Wj8Q8htKqPht0GFAIFI4RKBd6Hw7rPlPtuZRAgOy-ia-a5pBM-hrUZ1ymRRZlQ2sIUKvY6KvH8TDEGyw==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/data.0~WerDoZ54B3g7-gQvVwhzdK7WtZAFwj3AEogPjFd8lJnIoW8e6ZkUhxz-FYOAhv0N8ZRK9Q5VFcV3J7jDc4vg1Q==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/data.0~WerDoZ54B3g7-gQvVwhzdK7WtZAFwj3AEogPjFd8lJnIoW8e6ZkUhxz-FYOAhv0N8ZRK9Q5VFcV3J7jDc4vg1Q==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/data.0~ZiD-VCMJigvvknjtlVLsqlu1VFc6L2V4hwS_zJ2-eXm2IEwUu9oJ1WQV4vaBY9WiVlgHkEhuEveJ60jqcwlwmw==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/data.0~ZiD-VCMJigvvknjtlVLsqlu1VFc6L2V4hwS_zJ2-eXm2IEwUu9oJ1WQV4vaBY9WiVlgHkEhuEveJ60jqcwlwmw==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/data.0~b4sjr-Aj3F2wX_2CrzPDw1OwfvwhAhFvc3kNFRsIJ7om8U9CKeWOlmxGfIxqksu4P87uR_29cHZW9_wXo6VlPA==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/data.0~b4sjr-Aj3F2wX_2CrzPDw1OwfvwhAhFvc3kNFRsIJ7om8U9CKeWOlmxGfIxqksu4P87uR_29cHZW9_wXo6VlPA==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/data.0~bwrQIYfFQ8wR5dmJP61W1XinuvmQPJr_sFH3pNDNe8A7A1waEJRPxJ8jsM15fDm-BMbMElkpwX0Cva6vdY8GYg==:
--------------------------------------------------------------------------------
1 | [{"name":"MyFrameworkTests-C5FE3D77-A21B-46C6-A994-771A467CAE0E","type":2},{"name":"scheduling.log","type":1}]
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/data.0~cS2eiVQlJhPHruy_0KIczzcM7OUKi1wQsbiRWaMtRMGu2lGEs1FBjunuH7vHgBj5d7tHqwaSmldz-8YIywrE6g==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/data.0~cS2eiVQlJhPHruy_0KIczzcM7OUKi1wQsbiRWaMtRMGu2lGEs1FBjunuH7vHgBj5d7tHqwaSmldz-8YIywrE6g==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/data.0~kPhNNKpH9EbihyPpup3po_S2O64OG3GnNMGhDx3wdCOwjq1NSiQHpWgofQjrV7n2ipKUILaAD3lg2Wz7xE1vfw==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/data.0~kPhNNKpH9EbihyPpup3po_S2O64OG3GnNMGhDx3wdCOwjq1NSiQHpWgofQjrV7n2ipKUILaAD3lg2Wz7xE1vfw==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/data.0~qKNmO0Qh3yKHdWnDn6tIP15U3zvHMCvSzNL6ACKUUxIyQtrCaitTePTnx2dSb5zGJhp3CsNuYQTbp65m_dFFVg==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/data.0~qKNmO0Qh3yKHdWnDn6tIP15U3zvHMCvSzNL6ACKUUxIyQtrCaitTePTnx2dSb5zGJhp3CsNuYQTbp65m_dFFVg==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/data.0~wNyADXK01DXmIxM2-JoBXpA2StKv0Ro8IA8g4esyzxragsUtUWjol_nx7dw_Dn24O0mkJb-zAoEmJTuEKfxy3g==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/data.0~wNyADXK01DXmIxM2-JoBXpA2StKv0Ro8IA8g4esyzxragsUtUWjol_nx7dw_Dn24O0mkJb-zAoEmJTuEKfxy3g==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/refs.0~5FadZZXlYvj0VjInKZsTvlxFgyaSGSt5DyEipT3O_bRJc7tGa6slaHsZnCk1OEjc1TxUqIie9bIOHbSh-kM9jg==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/refs.0~5wEQVivJxSGk8aKypN_KpFjUOf5xubt46N6o6vbavZHW_1-JFihdwgigyOPvXdaT6xLZmGwBk6bnWarEtOcP0A==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/refs.0~5wEQVivJxSGk8aKypN_KpFjUOf5xubt46N6o6vbavZHW_1-JFihdwgigyOPvXdaT6xLZmGwBk6bnWarEtOcP0A==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/refs.0~ASKYyzT7GPXXLhCaIokwKqk-MHHZkMDz3OSrvkU97QP6eZwnSSZ-7jubpgOj-R-JIJIQyO_Zqdb-RLc9SLUwTQ==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/refs.0~O6d93Q9sUQJo1Ar44kA3MEd2rQaqAygT2O72wJa9STTIxpgk_251rmRGR5oQDaE8AGC3SPGkn73oXaB4l6OzcA==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/refs.0~O6d93Q9sUQJo1Ar44kA3MEd2rQaqAygT2O72wJa9STTIxpgk_251rmRGR5oQDaE8AGC3SPGkn73oXaB4l6OzcA==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/refs.0~OBOV7ByfZDl25mb1_0ZXS_IfOfJ6BT-NISgo-JvdhLhBWPHrYjYtKJt5GjdbkcuGjGuMMrTJ27wooXl9t9G4uA==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/refs.0~Ox3_UjznDxrWtgUYN4tf2WW0hlsC1_MEt3mxhze6RPRHLZIgU6VJBx7nral9cbKkWWzdpGBPKMKX4rnmF79k0Q==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/refs.0~WecU85Wj8Q8htKqPht0GFAIFI4RKBd6Hw7rPlPtuZRAgOy-ia-a5pBM-hrUZ1ymRRZlQ2sIUKvY6KvH8TDEGyw==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/refs.0~WerDoZ54B3g7-gQvVwhzdK7WtZAFwj3AEogPjFd8lJnIoW8e6ZkUhxz-FYOAhv0N8ZRK9Q5VFcV3J7jDc4vg1Q==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/refs.0~ZiD-VCMJigvvknjtlVLsqlu1VFc6L2V4hwS_zJ2-eXm2IEwUu9oJ1WQV4vaBY9WiVlgHkEhuEveJ60jqcwlwmw==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/refs.0~b4sjr-Aj3F2wX_2CrzPDw1OwfvwhAhFvc3kNFRsIJ7om8U9CKeWOlmxGfIxqksu4P87uR_29cHZW9_wXo6VlPA==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/refs.0~b4sjr-Aj3F2wX_2CrzPDw1OwfvwhAhFvc3kNFRsIJ7om8U9CKeWOlmxGfIxqksu4P87uR_29cHZW9_wXo6VlPA==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/refs.0~bwrQIYfFQ8wR5dmJP61W1XinuvmQPJr_sFH3pNDNe8A7A1waEJRPxJ8jsM15fDm-BMbMElkpwX0Cva6vdY8GYg==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/refs.0~bwrQIYfFQ8wR5dmJP61W1XinuvmQPJr_sFH3pNDNe8A7A1waEJRPxJ8jsM15fDm-BMbMElkpwX0Cva6vdY8GYg==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/refs.0~cS2eiVQlJhPHruy_0KIczzcM7OUKi1wQsbiRWaMtRMGu2lGEs1FBjunuH7vHgBj5d7tHqwaSmldz-8YIywrE6g==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/refs.0~cS2eiVQlJhPHruy_0KIczzcM7OUKi1wQsbiRWaMtRMGu2lGEs1FBjunuH7vHgBj5d7tHqwaSmldz-8YIywrE6g==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/refs.0~kPhNNKpH9EbihyPpup3po_S2O64OG3GnNMGhDx3wdCOwjq1NSiQHpWgofQjrV7n2ipKUILaAD3lg2Wz7xE1vfw==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/refs.0~qKNmO0Qh3yKHdWnDn6tIP15U3zvHMCvSzNL6ACKUUxIyQtrCaitTePTnx2dSb5zGJhp3CsNuYQTbp65m_dFFVg==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMac.xcresult/Data/refs.0~qKNmO0Qh3yKHdWnDn6tIP15U3zvHMCvSzNL6ACKUUxIyQtrCaitTePTnx2dSb5zGJhp3CsNuYQTbp65m_dFFVg==
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Data/refs.0~wNyADXK01DXmIxM2-JoBXpA2StKv0Ro8IA8g4esyzxragsUtUWjol_nx7dw_Dn24O0mkJb-zAoEmJTuEKfxy3g==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMac.xcresult/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | dateCreated
6 | 2021-03-29T02:38:53Z
7 | externalLocations
8 |
9 | rootId
10 |
11 | hash
12 | 0~b4sjr-Aj3F2wX_2CrzPDw1OwfvwhAhFvc3kNFRsIJ7om8U9CKeWOlmxGfIxqksu4P87uR_29cHZW9_wXo6VlPA==
13 |
14 | storage
15 |
16 | backend
17 | fileBacked2
18 | compression
19 | standard
20 |
21 | version
22 |
23 | major
24 | 3
25 | minor
26 | 26
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/data.0~8V5x2T22G246TQGoQzr6XPAhD_cQrz4PgEju0k5rcMnQOohFm9JUcsZLyWa8atV56P4tFBDYvjJ0xh33XXN_tw==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/data.0~8V5x2T22G246TQGoQzr6XPAhD_cQrz4PgEju0k5rcMnQOohFm9JUcsZLyWa8atV56P4tFBDYvjJ0xh33XXN_tw==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/data.0~9T2Rvtub3mfr-IVWLUuysUTxh7uV9K6TRyOiuq3tx55FCOCoCC3jiGZrkHYJH8Rx6eRlIp1-t06-I6uV9PG_uQ==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/data.0~9T2Rvtub3mfr-IVWLUuysUTxh7uV9K6TRyOiuq3tx55FCOCoCC3jiGZrkHYJH8Rx6eRlIp1-t06-I6uV9PG_uQ==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/data.0~CiZ07rBANmrXZhkbjvjDRm9gngGMSs5AObBsyB3Ai3IrCZGJJenJDp_cN7lsYvsX0LtVqlPkUQYARAE6l2Ar8w==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/data.0~CiZ07rBANmrXZhkbjvjDRm9gngGMSs5AObBsyB3Ai3IrCZGJJenJDp_cN7lsYvsX0LtVqlPkUQYARAE6l2Ar8w==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/data.0~DNkZJhdjwkEmJmPDaSzRUpBPFKh9U7jCjVB2hkGpVMb7ZBUZX_GneHHf84BgN6Q9SuT9qA1CiG_fWGOLS08QJQ==:
--------------------------------------------------------------------------------
1 | [{"name":"MyFrameworkTests-B37653ED-6F59-4E88-BABB-680B5FF43D35","type":2},{"name":"scheduling.log","type":1}]
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/data.0~E8TlLEbH8hLVxwDMWLtMHmDmjTs1q7zbRaL2W8FH2PTO3GnZ37YyH74wMSZK-rQvbvGrNYOUQ5oZJeA5Pj9qFg==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/data.0~E8TlLEbH8hLVxwDMWLtMHmDmjTs1q7zbRaL2W8FH2PTO3GnZ37YyH74wMSZK-rQvbvGrNYOUQ5oZJeA5Pj9qFg==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/data.0~GBfVa9AsAEHzJ4rsSbIrrVErKeyln_KFeGPbUTJLLxIdchp2ZtIhpOyGZumkXBbU1flwsPIKvpvVu7g1ihxnVQ==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/data.0~GBfVa9AsAEHzJ4rsSbIrrVErKeyln_KFeGPbUTJLLxIdchp2ZtIhpOyGZumkXBbU1flwsPIKvpvVu7g1ihxnVQ==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/data.0~Qp1CZwQZtFj1-sHvkbB8q3qgzSQouPSnAqaB-T4r_rFGYy-RMtL3dRbrmMFUr104OucQlJIcz7FQhs6tPS9y4g==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/data.0~Qp1CZwQZtFj1-sHvkbB8q3qgzSQouPSnAqaB-T4r_rFGYy-RMtL3dRbrmMFUr104OucQlJIcz7FQhs6tPS9y4g==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/data.0~XqEMT-Nw3AWqcPlB--wO0WbvT2uMRsa6VxHvVbJn5M77fNBPe5pUO-kEL1fLCRCI90gOh0w9skik9xvF1A9TKg==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/data.0~XqEMT-Nw3AWqcPlB--wO0WbvT2uMRsa6VxHvVbJn5M77fNBPe5pUO-kEL1fLCRCI90gOh0w9skik9xvF1A9TKg==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/data.0~ZngO-MliWNPydegtJbBytcQpG3EneP6IoWlbm1RyaEa_iDzDpnGr6vIldFJKNW4kn5mg-OLhfSGVWPOuYdgkVQ==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/data.0~ZngO-MliWNPydegtJbBytcQpG3EneP6IoWlbm1RyaEa_iDzDpnGr6vIldFJKNW4kn5mg-OLhfSGVWPOuYdgkVQ==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/data.0~_0QWMWZHLIObYOnvW0ieWZbO8FkkFDG3UWcOUozLkuP4eE5PrM01NvqGjeZ0fBhBrnfldDrxMmyExNVBqIEFiA==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/data.0~_0QWMWZHLIObYOnvW0ieWZbO8FkkFDG3UWcOUozLkuP4eE5PrM01NvqGjeZ0fBhBrnfldDrxMmyExNVBqIEFiA==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/data.0~eHoCcEJ-3vS4aSZcR2JteDgYhkbNhv1FALatU4O8cdM5f6nw6wyibVVtD7ZHCjwgYSbea-8PNjJRK77BKmls1w==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/data.0~eHoCcEJ-3vS4aSZcR2JteDgYhkbNhv1FALatU4O8cdM5f6nw6wyibVVtD7ZHCjwgYSbea-8PNjJRK77BKmls1w==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/data.0~kjTJkTlV4KhJqiNlpPluQ6SFHQGSW4Bco244E7kyFmjBRrsKfbTCYNzhA0s5SmUUf-F_RbIa7h7TzFqtn8Vp8w==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/data.0~kjTJkTlV4KhJqiNlpPluQ6SFHQGSW4Bco244E7kyFmjBRrsKfbTCYNzhA0s5SmUUf-F_RbIa7h7TzFqtn8Vp8w==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/data.0~mhED0yHxUiBQS__dUS2ReveDZe5wEOR3I5acQnunm4u4Ajca0ooZqdSVSwimgaTjzQ8r8pnkKdUqlEZGEJDpDA==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/data.0~mhED0yHxUiBQS__dUS2ReveDZe5wEOR3I5acQnunm4u4Ajca0ooZqdSVSwimgaTjzQ8r8pnkKdUqlEZGEJDpDA==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/data.0~qLkdI9vFdGKParNPGgKNee59voBx8hk25QWWgzr2-rhxQ7nWPryD1T87mxoybB0i1L_embEVQWXcBiGsAyTkWg==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/data.0~qLkdI9vFdGKParNPGgKNee59voBx8hk25QWWgzr2-rhxQ7nWPryD1T87mxoybB0i1L_embEVQWXcBiGsAyTkWg==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/data.0~upEExljiW_I5b_v5VOHtQADfeizE3jnd2xYKwqsLhCMMX-yAMG3tYHiVv55MAkHQUSwhXERs_H4Uv3XreW9Y8Q==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/data.0~upEExljiW_I5b_v5VOHtQADfeizE3jnd2xYKwqsLhCMMX-yAMG3tYHiVv55MAkHQUSwhXERs_H4Uv3XreW9Y8Q==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/data.0~v9TsE5AEf5oZO_mS-NvvjEYJIQFnvumP-cbLz0wo-cc5yFCSGjfjDRuoYn0wjagvlXjEEpERSAKOOfEToU8cHQ==:
--------------------------------------------------------------------------------
1 | [{"name":"testmanagerd.log","type":1}]
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/refs.0~8V5x2T22G246TQGoQzr6XPAhD_cQrz4PgEju0k5rcMnQOohFm9JUcsZLyWa8atV56P4tFBDYvjJ0xh33XXN_tw==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/refs.0~8V5x2T22G246TQGoQzr6XPAhD_cQrz4PgEju0k5rcMnQOohFm9JUcsZLyWa8atV56P4tFBDYvjJ0xh33XXN_tw==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/refs.0~9T2Rvtub3mfr-IVWLUuysUTxh7uV9K6TRyOiuq3tx55FCOCoCC3jiGZrkHYJH8Rx6eRlIp1-t06-I6uV9PG_uQ==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/refs.0~9T2Rvtub3mfr-IVWLUuysUTxh7uV9K6TRyOiuq3tx55FCOCoCC3jiGZrkHYJH8Rx6eRlIp1-t06-I6uV9PG_uQ==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/refs.0~CiZ07rBANmrXZhkbjvjDRm9gngGMSs5AObBsyB3Ai3IrCZGJJenJDp_cN7lsYvsX0LtVqlPkUQYARAE6l2Ar8w==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/refs.0~DNkZJhdjwkEmJmPDaSzRUpBPFKh9U7jCjVB2hkGpVMb7ZBUZX_GneHHf84BgN6Q9SuT9qA1CiG_fWGOLS08QJQ==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/refs.0~DNkZJhdjwkEmJmPDaSzRUpBPFKh9U7jCjVB2hkGpVMb7ZBUZX_GneHHf84BgN6Q9SuT9qA1CiG_fWGOLS08QJQ==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/refs.0~E8TlLEbH8hLVxwDMWLtMHmDmjTs1q7zbRaL2W8FH2PTO3GnZ37YyH74wMSZK-rQvbvGrNYOUQ5oZJeA5Pj9qFg==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/refs.0~GBfVa9AsAEHzJ4rsSbIrrVErKeyln_KFeGPbUTJLLxIdchp2ZtIhpOyGZumkXBbU1flwsPIKvpvVu7g1ihxnVQ==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/refs.0~Qp1CZwQZtFj1-sHvkbB8q3qgzSQouPSnAqaB-T4r_rFGYy-RMtL3dRbrmMFUr104OucQlJIcz7FQhs6tPS9y4g==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/refs.0~XqEMT-Nw3AWqcPlB--wO0WbvT2uMRsa6VxHvVbJn5M77fNBPe5pUO-kEL1fLCRCI90gOh0w9skik9xvF1A9TKg==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/refs.0~ZngO-MliWNPydegtJbBytcQpG3EneP6IoWlbm1RyaEa_iDzDpnGr6vIldFJKNW4kn5mg-OLhfSGVWPOuYdgkVQ==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/refs.0~_0QWMWZHLIObYOnvW0ieWZbO8FkkFDG3UWcOUozLkuP4eE5PrM01NvqGjeZ0fBhBrnfldDrxMmyExNVBqIEFiA==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/refs.0~_0QWMWZHLIObYOnvW0ieWZbO8FkkFDG3UWcOUozLkuP4eE5PrM01NvqGjeZ0fBhBrnfldDrxMmyExNVBqIEFiA==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/refs.0~eHoCcEJ-3vS4aSZcR2JteDgYhkbNhv1FALatU4O8cdM5f6nw6wyibVVtD7ZHCjwgYSbea-8PNjJRK77BKmls1w==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/refs.0~kjTJkTlV4KhJqiNlpPluQ6SFHQGSW4Bco244E7kyFmjBRrsKfbTCYNzhA0s5SmUUf-F_RbIa7h7TzFqtn8Vp8w==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/refs.0~mhED0yHxUiBQS__dUS2ReveDZe5wEOR3I5acQnunm4u4Ajca0ooZqdSVSwimgaTjzQ8r8pnkKdUqlEZGEJDpDA==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/refs.0~mhED0yHxUiBQS__dUS2ReveDZe5wEOR3I5acQnunm4u4Ajca0ooZqdSVSwimgaTjzQ8r8pnkKdUqlEZGEJDpDA==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/refs.0~qLkdI9vFdGKParNPGgKNee59voBx8hk25QWWgzr2-rhxQ7nWPryD1T87mxoybB0i1L_embEVQWXcBiGsAyTkWg==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/refs.0~upEExljiW_I5b_v5VOHtQADfeizE3jnd2xYKwqsLhCMMX-yAMG3tYHiVv55MAkHQUSwhXERs_H4Uv3XreW9Y8Q==:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Data/refs.0~v9TsE5AEf5oZO_mS-NvvjEYJIQFnvumP-cbLz0wo-cc5yFCSGjfjDRuoYn0wjagvlXjEEpERSAKOOfEToU8cHQ==:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/tbartelmess/analyze-xcoderesults-action/88440e1eb4012ff0bd29639b13d78311afbef837/TestResultsMacFailed.xcresult/Data/refs.0~v9TsE5AEf5oZO_mS-NvvjEYJIQFnvumP-cbLz0wo-cc5yFCSGjfjDRuoYn0wjagvlXjEEpERSAKOOfEToU8cHQ==
--------------------------------------------------------------------------------
/TestResultsMacFailed.xcresult/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | dateCreated
6 | 2021-03-25T06:32:39Z
7 | externalLocations
8 |
9 | rootId
10 |
11 | hash
12 | 0~mhED0yHxUiBQS__dUS2ReveDZe5wEOR3I5acQnunm4u4Ajca0ooZqdSVSwimgaTjzQ8r8pnkKdUqlEZGEJDpDA==
13 |
14 | storage
15 |
16 | backend
17 | fileBacked2
18 | compression
19 | standard
20 |
21 | version
22 |
23 | major
24 | 3
25 | minor
26 | 26
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/__tests__/main.test.ts:
--------------------------------------------------------------------------------
1 | import {wait} from '../src/wait'
2 | import * as process from 'process'
3 | import * as cp from 'child_process'
4 | import * as path from 'path'
5 | import * as xcresultool from '../src/xcresulttool'
6 | jest.setTimeout(10000)
7 | const FAILED_TEST_FILE = './TestResultsMacFailed.xcresult'
8 | const SUCCEEDED_TEST_FILE = './TestResultsMac.xcresult'
9 | beforeEach(() => {
10 | process.env['INPUT_PATHPREFIX'] =
11 | '/Users/thomasbartelmess/Developer/action-test/'
12 | })
13 |
14 | test('wait 500 ms', async () => {
15 | await xcresultool.generateGitHubCheckOutput(new xcresultool.GenerationSettings(), FAILED_TEST_FILE)
16 | })
17 |
18 | test('test summary generation', async () => {
19 | let summary = await xcresultool.convertResultsToJSON(FAILED_TEST_FILE)
20 | expect(summary).toBeDefined
21 | expect(summary.metrics).toBeDefined
22 | let markdown = xcresultool.testSummary(summary.metrics)
23 | expect(markdown.split('\n').length).toBe(7)
24 | expect(markdown.split('\n')[5]).toBe('| 1 | 1 | 2 |')
25 | })
26 |
27 | test('test check output', async () => {
28 | let result = await xcresultool.generateGitHubCheckOutput(new xcresultool.GenerationSettings(),FAILED_TEST_FILE)
29 | let output = result.output
30 | expect(result.title).toBeDefined()
31 | expect(result.summary).toBeDefined()
32 | expect(result.annotations).toBeDefined()
33 | })
34 |
35 | test('check failure outcome', async () => {
36 | let output = await xcresultool.generateGitHubOutcome(new xcresultool.GenerationSettings(),FAILED_TEST_FILE)
37 | expect(output).toBe('failure')
38 | })
39 |
40 | test('check success outcome', async () => {
41 | let output = await xcresultool.generateGitHubOutcome(new xcresultool.GenerationSettings(),SUCCEEDED_TEST_FILE)
42 | expect(output).toBe('success')
43 | })
44 |
45 |
46 |
47 | test('test generate warning annotations', async () => {
48 | process.env['SHOWWARNINGS'] = 'true'
49 | let output = await xcresultool.generateGitHubCheckOutput(new xcresultool.GenerationSettings(),FAILED_TEST_FILE)
50 | expect(output.annotations.length).toBe(2)
51 | })
52 |
--------------------------------------------------------------------------------
/action.yml:
--------------------------------------------------------------------------------
1 | name: 'Analyze XCode Results'
2 | description: 'Display Xcode test results and build warnings as GitHub annotations'
3 | author: 'Thomas Bartelmess'
4 | inputs:
5 | results:
6 | required: true
7 | description: 'Path to a the xcresult bundle'
8 | pathPrefix:
9 | required: false
10 | description: 'Build Path Prefix'
11 | default: ${{ github.workspace }}
12 | GITHUB_TOKEN:
13 | required: true
14 | description: "GitHub token to create the check"
15 | title:
16 | required: true
17 | description: "Title for the check results"
18 | default: "Test Results"
19 | testSummaryTable:
20 | required: true
21 | description: "Include a table with the number of passed and failed tests"
22 | default: "true"
23 | testFailureAnnotations:
24 | required: true
25 | description: "Add annotations for each failed test"
26 | default: "true"
27 | summary:
28 | required: true
29 | description: "Include an summary with the number of failed tests and warnings"
30 | default: "true"
31 | warningAnnotations:
32 | require: true
33 | description: "Add annotations for all warnings"
34 | default: "false"
35 | showSDKInfo:
36 | required: true
37 | description: "Print the SDK Version"
38 | default: "true"
39 | timingSummary:
40 | required: true
41 | description: "Print a summary of all tasks"
42 | default: "true"
43 | runs:
44 | using: 'node12'
45 | main: 'dist/index.js'
46 | branding:
47 | icon: 'check-circle'
48 | color: 'orange'
49 |
--------------------------------------------------------------------------------
/dist/licenses.txt:
--------------------------------------------------------------------------------
1 | @actions/core
2 | MIT
3 | The MIT License (MIT)
4 |
5 | Copyright 2019 GitHub
6 |
7 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
8 |
9 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
10 |
11 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
12 |
13 | @actions/exec
14 | MIT
15 |
16 | @actions/github
17 | MIT
18 |
19 | @actions/http-client
20 | MIT
21 | Actions Http Client for Node.js
22 |
23 | Copyright (c) GitHub, Inc.
24 |
25 | All rights reserved.
26 |
27 | MIT License
28 |
29 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
30 | associated documentation files (the "Software"), to deal in the Software without restriction,
31 | including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
32 | and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
33 | subject to the following conditions:
34 |
35 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
36 |
37 | THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
38 | LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
39 | NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
41 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
42 |
43 |
44 | @actions/io
45 | MIT
46 |
47 | @octokit/action
48 | MIT
49 | MIT License
50 |
51 | Copyright (c) 2019 Octokit contributors
52 |
53 | Permission is hereby granted, free of charge, to any person obtaining a copy
54 | of this software and associated documentation files (the "Software"), to deal
55 | in the Software without restriction, including without limitation the rights
56 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
57 | copies of the Software, and to permit persons to whom the Software is
58 | furnished to do so, subject to the following conditions:
59 |
60 | The above copyright notice and this permission notice shall be included in all
61 | copies or substantial portions of the Software.
62 |
63 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
64 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
65 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
66 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
67 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
68 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
69 | SOFTWARE.
70 |
71 |
72 | @octokit/auth-action
73 | MIT
74 | The MIT License
75 |
76 | Copyright (c) 2019 Octokit contributors
77 |
78 | Permission is hereby granted, free of charge, to any person obtaining a copy
79 | of this software and associated documentation files (the "Software"), to deal
80 | in the Software without restriction, including without limitation the rights
81 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
82 | copies of the Software, and to permit persons to whom the Software is
83 | furnished to do so, subject to the following conditions:
84 |
85 | The above copyright notice and this permission notice shall be included in
86 | all copies or substantial portions of the Software.
87 |
88 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
89 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
90 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
91 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
92 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
93 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
94 | THE SOFTWARE.
95 |
96 |
97 | @octokit/auth-token
98 | MIT
99 | The MIT License
100 |
101 | Copyright (c) 2019 Octokit contributors
102 |
103 | Permission is hereby granted, free of charge, to any person obtaining a copy
104 | of this software and associated documentation files (the "Software"), to deal
105 | in the Software without restriction, including without limitation the rights
106 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
107 | copies of the Software, and to permit persons to whom the Software is
108 | furnished to do so, subject to the following conditions:
109 |
110 | The above copyright notice and this permission notice shall be included in
111 | all copies or substantial portions of the Software.
112 |
113 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
114 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
115 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
116 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
117 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
118 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
119 | THE SOFTWARE.
120 |
121 |
122 | @octokit/core
123 | MIT
124 | The MIT License
125 |
126 | Copyright (c) 2019 Octokit contributors
127 |
128 | Permission is hereby granted, free of charge, to any person obtaining a copy
129 | of this software and associated documentation files (the "Software"), to deal
130 | in the Software without restriction, including without limitation the rights
131 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
132 | copies of the Software, and to permit persons to whom the Software is
133 | furnished to do so, subject to the following conditions:
134 |
135 | The above copyright notice and this permission notice shall be included in
136 | all copies or substantial portions of the Software.
137 |
138 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
139 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
140 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
141 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
142 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
143 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
144 | THE SOFTWARE.
145 |
146 |
147 | @octokit/endpoint
148 | MIT
149 | The MIT License
150 |
151 | Copyright (c) 2018 Octokit contributors
152 |
153 | Permission is hereby granted, free of charge, to any person obtaining a copy
154 | of this software and associated documentation files (the "Software"), to deal
155 | in the Software without restriction, including without limitation the rights
156 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
157 | copies of the Software, and to permit persons to whom the Software is
158 | furnished to do so, subject to the following conditions:
159 |
160 | The above copyright notice and this permission notice shall be included in
161 | all copies or substantial portions of the Software.
162 |
163 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
164 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
165 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
166 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
167 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
168 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
169 | THE SOFTWARE.
170 |
171 |
172 | @octokit/graphql
173 | MIT
174 | The MIT License
175 |
176 | Copyright (c) 2018 Octokit contributors
177 |
178 | Permission is hereby granted, free of charge, to any person obtaining a copy
179 | of this software and associated documentation files (the "Software"), to deal
180 | in the Software without restriction, including without limitation the rights
181 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
182 | copies of the Software, and to permit persons to whom the Software is
183 | furnished to do so, subject to the following conditions:
184 |
185 | The above copyright notice and this permission notice shall be included in
186 | all copies or substantial portions of the Software.
187 |
188 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
189 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
190 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
191 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
192 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
193 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
194 | THE SOFTWARE.
195 |
196 |
197 | @octokit/plugin-paginate-rest
198 | MIT
199 | MIT License Copyright (c) 2019 Octokit contributors
200 |
201 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
202 |
203 | The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
204 |
205 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
206 |
207 |
208 | @octokit/plugin-rest-endpoint-methods
209 | MIT
210 | MIT License Copyright (c) 2019 Octokit contributors
211 |
212 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
213 |
214 | The above copyright notice and this permission notice (including the next paragraph) shall be included in all copies or substantial portions of the Software.
215 |
216 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
217 |
218 |
219 | @octokit/request
220 | MIT
221 | The MIT License
222 |
223 | Copyright (c) 2018 Octokit contributors
224 |
225 | Permission is hereby granted, free of charge, to any person obtaining a copy
226 | of this software and associated documentation files (the "Software"), to deal
227 | in the Software without restriction, including without limitation the rights
228 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
229 | copies of the Software, and to permit persons to whom the Software is
230 | furnished to do so, subject to the following conditions:
231 |
232 | The above copyright notice and this permission notice shall be included in
233 | all copies or substantial portions of the Software.
234 |
235 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
236 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
237 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
238 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
239 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
240 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
241 | THE SOFTWARE.
242 |
243 |
244 | @octokit/request-error
245 | MIT
246 | The MIT License
247 |
248 | Copyright (c) 2019 Octokit contributors
249 |
250 | Permission is hereby granted, free of charge, to any person obtaining a copy
251 | of this software and associated documentation files (the "Software"), to deal
252 | in the Software without restriction, including without limitation the rights
253 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
254 | copies of the Software, and to permit persons to whom the Software is
255 | furnished to do so, subject to the following conditions:
256 |
257 | The above copyright notice and this permission notice shall be included in
258 | all copies or substantial portions of the Software.
259 |
260 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
261 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
262 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
263 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
264 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
265 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
266 | THE SOFTWARE.
267 |
268 |
269 | @vercel/ncc
270 | MIT
271 | Copyright 2018 ZEIT, Inc.
272 |
273 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
274 |
275 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
276 |
277 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
278 |
279 | before-after-hook
280 | Apache-2.0
281 | Apache License
282 | Version 2.0, January 2004
283 | http://www.apache.org/licenses/
284 |
285 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
286 |
287 | 1. Definitions.
288 |
289 | "License" shall mean the terms and conditions for use, reproduction,
290 | and distribution as defined by Sections 1 through 9 of this document.
291 |
292 | "Licensor" shall mean the copyright owner or entity authorized by
293 | the copyright owner that is granting the License.
294 |
295 | "Legal Entity" shall mean the union of the acting entity and all
296 | other entities that control, are controlled by, or are under common
297 | control with that entity. For the purposes of this definition,
298 | "control" means (i) the power, direct or indirect, to cause the
299 | direction or management of such entity, whether by contract or
300 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
301 | outstanding shares, or (iii) beneficial ownership of such entity.
302 |
303 | "You" (or "Your") shall mean an individual or Legal Entity
304 | exercising permissions granted by this License.
305 |
306 | "Source" form shall mean the preferred form for making modifications,
307 | including but not limited to software source code, documentation
308 | source, and configuration files.
309 |
310 | "Object" form shall mean any form resulting from mechanical
311 | transformation or translation of a Source form, including but
312 | not limited to compiled object code, generated documentation,
313 | and conversions to other media types.
314 |
315 | "Work" shall mean the work of authorship, whether in Source or
316 | Object form, made available under the License, as indicated by a
317 | copyright notice that is included in or attached to the work
318 | (an example is provided in the Appendix below).
319 |
320 | "Derivative Works" shall mean any work, whether in Source or Object
321 | form, that is based on (or derived from) the Work and for which the
322 | editorial revisions, annotations, elaborations, or other modifications
323 | represent, as a whole, an original work of authorship. For the purposes
324 | of this License, Derivative Works shall not include works that remain
325 | separable from, or merely link (or bind by name) to the interfaces of,
326 | the Work and Derivative Works thereof.
327 |
328 | "Contribution" shall mean any work of authorship, including
329 | the original version of the Work and any modifications or additions
330 | to that Work or Derivative Works thereof, that is intentionally
331 | submitted to Licensor for inclusion in the Work by the copyright owner
332 | or by an individual or Legal Entity authorized to submit on behalf of
333 | the copyright owner. For the purposes of this definition, "submitted"
334 | means any form of electronic, verbal, or written communication sent
335 | to the Licensor or its representatives, including but not limited to
336 | communication on electronic mailing lists, source code control systems,
337 | and issue tracking systems that are managed by, or on behalf of, the
338 | Licensor for the purpose of discussing and improving the Work, but
339 | excluding communication that is conspicuously marked or otherwise
340 | designated in writing by the copyright owner as "Not a Contribution."
341 |
342 | "Contributor" shall mean Licensor and any individual or Legal Entity
343 | on behalf of whom a Contribution has been received by Licensor and
344 | subsequently incorporated within the Work.
345 |
346 | 2. Grant of Copyright License. Subject to the terms and conditions of
347 | this License, each Contributor hereby grants to You a perpetual,
348 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
349 | copyright license to reproduce, prepare Derivative Works of,
350 | publicly display, publicly perform, sublicense, and distribute the
351 | Work and such Derivative Works in Source or Object form.
352 |
353 | 3. Grant of Patent License. Subject to the terms and conditions of
354 | this License, each Contributor hereby grants to You a perpetual,
355 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
356 | (except as stated in this section) patent license to make, have made,
357 | use, offer to sell, sell, import, and otherwise transfer the Work,
358 | where such license applies only to those patent claims licensable
359 | by such Contributor that are necessarily infringed by their
360 | Contribution(s) alone or by combination of their Contribution(s)
361 | with the Work to which such Contribution(s) was submitted. If You
362 | institute patent litigation against any entity (including a
363 | cross-claim or counterclaim in a lawsuit) alleging that the Work
364 | or a Contribution incorporated within the Work constitutes direct
365 | or contributory patent infringement, then any patent licenses
366 | granted to You under this License for that Work shall terminate
367 | as of the date such litigation is filed.
368 |
369 | 4. Redistribution. You may reproduce and distribute copies of the
370 | Work or Derivative Works thereof in any medium, with or without
371 | modifications, and in Source or Object form, provided that You
372 | meet the following conditions:
373 |
374 | (a) You must give any other recipients of the Work or
375 | Derivative Works a copy of this License; and
376 |
377 | (b) You must cause any modified files to carry prominent notices
378 | stating that You changed the files; and
379 |
380 | (c) You must retain, in the Source form of any Derivative Works
381 | that You distribute, all copyright, patent, trademark, and
382 | attribution notices from the Source form of the Work,
383 | excluding those notices that do not pertain to any part of
384 | the Derivative Works; and
385 |
386 | (d) If the Work includes a "NOTICE" text file as part of its
387 | distribution, then any Derivative Works that You distribute must
388 | include a readable copy of the attribution notices contained
389 | within such NOTICE file, excluding those notices that do not
390 | pertain to any part of the Derivative Works, in at least one
391 | of the following places: within a NOTICE text file distributed
392 | as part of the Derivative Works; within the Source form or
393 | documentation, if provided along with the Derivative Works; or,
394 | within a display generated by the Derivative Works, if and
395 | wherever such third-party notices normally appear. The contents
396 | of the NOTICE file are for informational purposes only and
397 | do not modify the License. You may add Your own attribution
398 | notices within Derivative Works that You distribute, alongside
399 | or as an addendum to the NOTICE text from the Work, provided
400 | that such additional attribution notices cannot be construed
401 | as modifying the License.
402 |
403 | You may add Your own copyright statement to Your modifications and
404 | may provide additional or different license terms and conditions
405 | for use, reproduction, or distribution of Your modifications, or
406 | for any such Derivative Works as a whole, provided Your use,
407 | reproduction, and distribution of the Work otherwise complies with
408 | the conditions stated in this License.
409 |
410 | 5. Submission of Contributions. Unless You explicitly state otherwise,
411 | any Contribution intentionally submitted for inclusion in the Work
412 | by You to the Licensor shall be under the terms and conditions of
413 | this License, without any additional terms or conditions.
414 | Notwithstanding the above, nothing herein shall supersede or modify
415 | the terms of any separate license agreement you may have executed
416 | with Licensor regarding such Contributions.
417 |
418 | 6. Trademarks. This License does not grant permission to use the trade
419 | names, trademarks, service marks, or product names of the Licensor,
420 | except as required for reasonable and customary use in describing the
421 | origin of the Work and reproducing the content of the NOTICE file.
422 |
423 | 7. Disclaimer of Warranty. Unless required by applicable law or
424 | agreed to in writing, Licensor provides the Work (and each
425 | Contributor provides its Contributions) on an "AS IS" BASIS,
426 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
427 | implied, including, without limitation, any warranties or conditions
428 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
429 | PARTICULAR PURPOSE. You are solely responsible for determining the
430 | appropriateness of using or redistributing the Work and assume any
431 | risks associated with Your exercise of permissions under this License.
432 |
433 | 8. Limitation of Liability. In no event and under no legal theory,
434 | whether in tort (including negligence), contract, or otherwise,
435 | unless required by applicable law (such as deliberate and grossly
436 | negligent acts) or agreed to in writing, shall any Contributor be
437 | liable to You for damages, including any direct, indirect, special,
438 | incidental, or consequential damages of any character arising as a
439 | result of this License or out of the use or inability to use the
440 | Work (including but not limited to damages for loss of goodwill,
441 | work stoppage, computer failure or malfunction, or any and all
442 | other commercial damages or losses), even if such Contributor
443 | has been advised of the possibility of such damages.
444 |
445 | 9. Accepting Warranty or Additional Liability. While redistributing
446 | the Work or Derivative Works thereof, You may choose to offer,
447 | and charge a fee for, acceptance of support, warranty, indemnity,
448 | or other liability obligations and/or rights consistent with this
449 | License. However, in accepting such obligations, You may act only
450 | on Your own behalf and on Your sole responsibility, not on behalf
451 | of any other Contributor, and only if You agree to indemnify,
452 | defend, and hold each Contributor harmless for any liability
453 | incurred by, or claims asserted against, such Contributor by reason
454 | of your accepting any such warranty or additional liability.
455 |
456 | END OF TERMS AND CONDITIONS
457 |
458 | APPENDIX: How to apply the Apache License to your work.
459 |
460 | To apply the Apache License to your work, attach the following
461 | boilerplate notice, with the fields enclosed by brackets "{}"
462 | replaced with your own identifying information. (Don't include
463 | the brackets!) The text should be enclosed in the appropriate
464 | comment syntax for the file format. We also recommend that a
465 | file or class name and description of purpose be included on the
466 | same "printed page" as the copyright notice for easier
467 | identification within third-party archives.
468 |
469 | Copyright 2018 Gregor Martynus and other contributors.
470 |
471 | Licensed under the Apache License, Version 2.0 (the "License");
472 | you may not use this file except in compliance with the License.
473 | You may obtain a copy of the License at
474 |
475 | http://www.apache.org/licenses/LICENSE-2.0
476 |
477 | Unless required by applicable law or agreed to in writing, software
478 | distributed under the License is distributed on an "AS IS" BASIS,
479 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
480 | See the License for the specific language governing permissions and
481 | limitations under the License.
482 |
483 |
484 | deprecation
485 | ISC
486 | The ISC License
487 |
488 | Copyright (c) Gregor Martynus and contributors
489 |
490 | Permission to use, copy, modify, and/or distribute this software for any
491 | purpose with or without fee is hereby granted, provided that the above
492 | copyright notice and this permission notice appear in all copies.
493 |
494 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
495 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
496 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
497 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
498 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
499 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
500 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
501 |
502 |
503 | is-plain-object
504 | MIT
505 | The MIT License (MIT)
506 |
507 | Copyright (c) 2014-2017, Jon Schlinkert.
508 |
509 | Permission is hereby granted, free of charge, to any person obtaining a copy
510 | of this software and associated documentation files (the "Software"), to deal
511 | in the Software without restriction, including without limitation the rights
512 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
513 | copies of the Software, and to permit persons to whom the Software is
514 | furnished to do so, subject to the following conditions:
515 |
516 | The above copyright notice and this permission notice shall be included in
517 | all copies or substantial portions of the Software.
518 |
519 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
520 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
521 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
522 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
523 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
524 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
525 | THE SOFTWARE.
526 |
527 |
528 | node-fetch
529 | MIT
530 | The MIT License (MIT)
531 |
532 | Copyright (c) 2016 David Frank
533 |
534 | Permission is hereby granted, free of charge, to any person obtaining a copy
535 | of this software and associated documentation files (the "Software"), to deal
536 | in the Software without restriction, including without limitation the rights
537 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
538 | copies of the Software, and to permit persons to whom the Software is
539 | furnished to do so, subject to the following conditions:
540 |
541 | The above copyright notice and this permission notice shall be included in all
542 | copies or substantial portions of the Software.
543 |
544 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
545 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
546 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
547 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
548 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
549 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
550 | SOFTWARE.
551 |
552 |
553 |
554 | once
555 | ISC
556 | The ISC License
557 |
558 | Copyright (c) Isaac Z. Schlueter and Contributors
559 |
560 | Permission to use, copy, modify, and/or distribute this software for any
561 | purpose with or without fee is hereby granted, provided that the above
562 | copyright notice and this permission notice appear in all copies.
563 |
564 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
565 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
566 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
567 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
568 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
569 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
570 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
571 |
572 |
573 | tunnel
574 | MIT
575 | The MIT License (MIT)
576 |
577 | Copyright (c) 2012 Koichi Kobayashi
578 |
579 | Permission is hereby granted, free of charge, to any person obtaining a copy
580 | of this software and associated documentation files (the "Software"), to deal
581 | in the Software without restriction, including without limitation the rights
582 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
583 | copies of the Software, and to permit persons to whom the Software is
584 | furnished to do so, subject to the following conditions:
585 |
586 | The above copyright notice and this permission notice shall be included in
587 | all copies or substantial portions of the Software.
588 |
589 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
590 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
591 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
592 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
593 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
594 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
595 | THE SOFTWARE.
596 |
597 |
598 | universal-user-agent
599 | ISC
600 | # [ISC License](https://spdx.org/licenses/ISC)
601 |
602 | Copyright (c) 2018, Gregor Martynus (https://github.com/gr2m)
603 |
604 | Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
605 |
606 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
607 |
608 |
609 | wrappy
610 | ISC
611 | The ISC License
612 |
613 | Copyright (c) Isaac Z. Schlueter and Contributors
614 |
615 | Permission to use, copy, modify, and/or distribute this software for any
616 | purpose with or without fee is hereby granted, provided that the above
617 | copyright notice and this permission notice appear in all copies.
618 |
619 | THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
620 | WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
621 | MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
622 | ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
623 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
624 | ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
625 | IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
626 |
--------------------------------------------------------------------------------
/jest.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | clearMocks: true,
3 | moduleFileExtensions: ['js', 'ts'],
4 | testEnvironment: 'node',
5 | testMatch: ['**/*.test.ts'],
6 | testRunner: 'jest-circus/runner',
7 | transform: {
8 | '^.+\\.ts$': 'ts-jest'
9 | },
10 | verbose: true
11 | }
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "analyze-xcoderesults-action",
3 | "version": "0.1.5",
4 | "private": true,
5 | "description": "Action to show details of an XCode result bundle as GitHub check result",
6 | "main": "lib/main.js",
7 | "scripts": {
8 | "build": "tsc",
9 | "format": "prettier --write **/*.ts",
10 | "format-check": "prettier --check **/*.ts",
11 | "lint": "eslint src/**/*.ts",
12 | "package": "ncc build --source-map --license licenses.txt",
13 | "test": "jest",
14 | "all": "npm run build && npm run format && npm run package && npm test"
15 | },
16 | "repository": {
17 | "type": "git",
18 | "url": "git+https://github.com/tbartelmess/analyze-xcoderesults-action.git"
19 | },
20 | "keywords": [
21 | "actions",
22 | "node",
23 | "setup"
24 | ],
25 | "author": "Thomas Bartelmess",
26 | "license": "MIT",
27 | "dependencies": {
28 | "@actions/core": "^1.2.6",
29 | "@actions/exec": "^1.0.4",
30 | "@actions/github": "^4.0.0",
31 | "@actions/http-client": "^1.0.11",
32 | "@octokit/action": "^3.8.0",
33 | "@octokit/plugin-rest-endpoint-methods": "^5.0.0",
34 | "@octokit/rest": "^18.5.2",
35 | "@octokit/types": "^6.13.0"
36 | },
37 | "devDependencies": {
38 | "@types/jest": "^26.0.22",
39 | "@types/node": "^14.14.37",
40 | "@typescript-eslint/parser": "^4.20.0",
41 | "@vercel/ncc": "^0.27.0",
42 | "eslint": "^7.25.0",
43 | "eslint-plugin-github": "^4.1.2",
44 | "eslint-plugin-jest": "^24.3.4",
45 | "jest": "^26.6.3",
46 | "jest-circus": "^26.6.3",
47 | "js-yaml": "^4.1.0",
48 | "prettier": "2.2.1",
49 | "ts-jest": "^26.5.4",
50 | "typescript": "^4.2.3"
51 | }
52 | }
53 |
--------------------------------------------------------------------------------
/src/main.ts:
--------------------------------------------------------------------------------
1 | import * as core from '@actions/core'
2 | import * as xcresulttool from './xcresulttool'
3 | import * as github from '@actions/github'
4 | import {RestEndpointMethodTypes} from '@octokit/rest'
5 | import * as ok from '@octokit/action'
6 | type PullRequest = RestEndpointMethodTypes['pulls']['get']['response']['data']
7 | type CheckCreate = RestEndpointMethodTypes['checks']['create']['parameters']
8 | const prEvents = [
9 | 'pull_request',
10 | 'pull_request_review',
11 | 'pull_request_review_comment'
12 | ]
13 |
14 | function getSHA(): string {
15 | let sha = github.context.sha
16 | if (prEvents.includes(github.context.eventName)) {
17 | const pull = github.context.payload.pull_request as PullRequest
18 | if (pull?.head.sha) {
19 | sha = pull?.head.sha
20 | }
21 | }
22 | return sha
23 | }
24 |
25 | type Ownership = {
26 | owner: string
27 | repo: string
28 | }
29 |
30 | const formatDate = (): string => {
31 | return new Date().toISOString()
32 | }
33 |
34 | async function run(): Promise {
35 | try {
36 | const ownership = {
37 | owner: github.context.repo.owner,
38 | repo: github.context.repo.repo
39 | }
40 | const sha = getSHA()
41 |
42 | const inputFile: string = core.getInput('results')
43 | core.info(`Analyzing ${inputFile} ...`)
44 |
45 | let settings = new xcresulttool.GenerationSettings()
46 | settings.readActionSettings()
47 | let output = await xcresulttool.generateGitHubCheckOutput(settings, inputFile)
48 | let conclusion = await xcresulttool.generateGitHubOutcome(settings, inputFile)
49 | core.debug(
50 | `Creating a new Run on ${ownership.owner}/${ownership.repo}@${sha}`
51 | )
52 |
53 | let octokit = new ok.Octokit()
54 |
55 | let checkInfo: CheckCreate = {
56 | owner: github.context.repo.owner,
57 | repo: github.context.repo.repo,
58 | name: core.getInput('title'),
59 | status: 'completed',
60 | conclusion: conclusion,
61 | head_sha: sha,
62 | output: output
63 | }
64 | await octokit.checks.create(checkInfo)
65 | core.debug(`Done`)
66 | } catch (error) {
67 | core.setFailed(error.message)
68 | }
69 | }
70 |
71 | run()
72 |
--------------------------------------------------------------------------------
/src/xcresulttool.ts:
--------------------------------------------------------------------------------
1 | import * as core from '@actions/core'
2 | import * as exec from '@actions/exec'
3 | import {ExecOptions} from '@actions/exec/lib/interfaces'
4 | import {RestEndpointMethodTypes} from '@octokit/rest'
5 |
6 | export type Annotations = NonNullable<
7 | NonNullable<
8 | RestEndpointMethodTypes['checks']['create']['parameters']['output']
9 | >['annotations']
10 | >
11 |
12 | interface ResultSummary {
13 | actions: TypedArray
14 | issues: ResultIssueSummaries
15 | metrics: ResultMetrics
16 | }
17 |
18 | interface TypeInfo {
19 | _name: string
20 | _supertype?: TypeInfo
21 | }
22 |
23 | interface TypedDictionary {
24 | _type: TypeInfo
25 | _value: T
26 | }
27 |
28 | interface TypedArray {
29 | _type: TypeInfo
30 | _values: [T]
31 | }
32 |
33 | interface TypedValue {
34 | _type: TypeInfo
35 | _value: T
36 | }
37 |
38 | interface ResultIssueSummaries {
39 | _type: TypeInfo
40 | testFailureSummaries: TypedArray
41 | warningSummaries: TypedArray
42 | }
43 |
44 | interface URL {
45 | _type: TypeInfo
46 | _value: string
47 | }
48 |
49 | interface DocumentLocation {
50 | _type: TypeInfo
51 | url: URL
52 | }
53 |
54 | interface IssueSummary {
55 | documentLocationInCreatingWorkspace: DocumentLocation
56 | message: TypedValue
57 | issueType: TypedValue
58 | }
59 |
60 | interface TestFailureIssueSummary extends IssueSummary {
61 | productingTarget: TypedValue
62 | testCaseName: TypedValue
63 | }
64 |
65 | interface LocationInfo {
66 | file: string
67 | startLine?: number
68 | endLine?: number
69 | }
70 |
71 | interface TestFailureInfo {
72 | location: LocationInfo
73 | }
74 |
75 | interface ResultMetrics {
76 | _type: TypeInfo
77 | testsCount?: TypedValue
78 | testsFailedCount?: TypedValue
79 | warningCount?: TypedValue
80 | }
81 |
82 | interface ActionSDKRecord {
83 | _type: TypeInfo
84 | identifier: TypedValue
85 | name: TypedValue
86 | operatingSystemVersion: TypedValue
87 | }
88 |
89 | interface ActionResult {
90 | _type: TypeInfo
91 | status: TypedValue
92 | }
93 |
94 | interface ActionRecord {
95 | _type: TypeInfo
96 | actionResult: ActionResult
97 | title: TypedValue
98 | startedTime: TypedValue
99 | endedTime: TypedValue
100 | actionStatus: TypedValue
101 | }
102 |
103 | interface ActionRunDestinationRecord {
104 | _type: TypeInfo
105 | displayName: TypedValue
106 | localComputerRecord: ActionDeviceRecord
107 | targetArchitecture: TypedValue
108 | targetDeviceRecord: ActionDeviceRecord
109 | targetSDKRecord: ActionSDKRecord
110 | }
111 |
112 | interface ActionPlatformRecord {
113 | _type: TypeInfo
114 | identifier: TypedValue
115 | userDescription: TypedValue
116 | }
117 |
118 | interface ActionDeviceRecord {
119 | _type: TypeInfo
120 | busSpeedInMHz: TypedValue
121 | cpuCount: TypedValue
122 | cpuKind: TypedValue
123 | cpuSpeedInMHz: TypedValue
124 | identifier: TypedValue
125 | isConcreteDevice: TypedValue
126 | logicalCPUCoresPerPackage: TypedValue
127 | modelCode: TypedValue
128 | modelName: TypedValue
129 | modelUTI: TypedValue
130 | name: TypedValue
131 | nativeArchitecture: TypedValue
132 | operatingSystemVersion: TypedValue
133 | operatingSystemVersionWithBuildNumber: TypedValue
134 | physicalCPUCoresPerPackage: TypedValue
135 | platformRecord: TypedValue
136 | ramSizeInMegabytes: TypedValue
137 | }
138 |
139 | enum AnnotationLevel {
140 | notice = 'notice',
141 | warning = 'warning',
142 | failure = 'failure'
143 | }
144 |
145 | interface GitHubAnnotation {
146 | path: string
147 | start_line: number
148 | end_line: number
149 | start_column?: number
150 | end_column?: number
151 | annotation_level: AnnotationLevel
152 | message: string
153 | title: string
154 | raw_details?: string
155 | }
156 |
157 |
158 | export class GenerationSettings {
159 | testSummaryTable: boolean = true;
160 | testFailureAnnotations: boolean = true;
161 | summary: boolean = true;
162 | warningAnnotations: boolean = true;
163 | showSDKInfo: boolean = true;
164 | timingSummary: boolean = true;
165 |
166 | readActionSettings() {
167 | this.testSummaryTable = (core.getInput('testSummaryTable') === "true")
168 | this.testFailureAnnotations = (core.getInput('testFailureAnnotations') === "true")
169 | this.summary = (core.getInput('summary') === "true")
170 | this.warningAnnotations = (core.getInput('warningAnnotations') === "true")
171 | this.showSDKInfo = (core.getInput('showSDKInfo') === "true")
172 | this.timingSummary = (core.getInput('timingSummary') === "true")
173 |
174 | }
175 | }
176 |
177 | export async function generateGitHubOutcome(settings: GenerationSettings, file: string): Promise {
178 |
179 | let summary: ResultSummary = await convertResultsToJSON(file)
180 | let success = true
181 | summary.actions?._values.forEach(action => {
182 | success = (success && action.actionResult.status._value != "failed");
183 | });
184 | return success ? "success" : "failure";
185 | }
186 |
187 | export async function generateGitHubCheckOutput(settings: GenerationSettings, file: string): Promise {
188 | let summary: ResultSummary = await convertResultsToJSON(file)
189 | let annotations: GitHubAnnotation[] = []
190 |
191 | if (settings.testSummaryTable) {
192 | summary.issues.testFailureSummaries?._values.forEach(failure => {
193 | let annotation = testFailureToGitHubAnnotation(failure)
194 | annotations.push(annotation)
195 | })
196 | }
197 |
198 | if (settings.warningAnnotations) {
199 | let warningAnnotations = summary.issues.warningSummaries?._values.forEach(warning => {
200 | let annotation = warningsToGitHubAnnotation(warning)
201 | if (annotation) {
202 | annotations.push(annotation)
203 | }
204 | })
205 | }
206 | // Github only support 50 annotations
207 | annotations = annotations.slice(0,49);
208 |
209 | let summaryMd = ""
210 |
211 | if (settings.summary) {
212 | summaryMd += buildSummary(summary.metrics)
213 | }
214 |
215 | if (settings.testSummaryTable) {
216 | summaryMd += testSummary(summary.metrics)
217 | }
218 |
219 | return {
220 | summary: summaryMd,
221 | title: core.getInput('title'),
222 | annotations: annotations
223 | }
224 | }
225 |
226 | /**
227 | * Wrapper around the xcresultool
228 | * to transform xcresult files to JSON.
229 | *
230 | * @argument file: path to the xcresult bundle
231 | * @argument object: name of the object to export, if null, the root object will be returned
232 | */
233 | export async function convertResultsToJSON(
234 | file: string,
235 | object: string|null = null
236 | ): Promise {
237 | let output = ''
238 | const options: ExecOptions = {}
239 | options.listeners = {
240 | stdout: (data: Buffer) => {
241 | output += data.toString()
242 | }
243 | }
244 | options.silent = true
245 | let args: string[] = [
246 | 'xcresulttool',
247 | 'get',
248 | '--path',
249 | file,
250 | '--format',
251 | 'json'
252 | ]
253 |
254 | if (object != null) {
255 | args.push("--id")
256 | args.push(object)
257 | }
258 |
259 | await exec.exec('xcrun', args, options)
260 | return JSON.parse(output) as ResultSummary
261 | }
262 |
263 |
264 | export function testSummary(metrics: ResultMetrics): string {
265 | let testCount = metrics?.testsCount?._value ?? 0
266 | let failed = metrics?.testsFailedCount?._value ?? 0
267 | let passed = testCount - failed
268 | return `
269 |
270 | ## Tests
271 | |Tests Passed ✅ | Tests Failed ⛔️ | Tests Total |
272 | |:---------------|:----------------|:------------|
273 | | ${passed} | ${failed} | ${testCount} |
274 | `
275 | }
276 |
277 |
278 |
279 |
280 | /**
281 | * Generates a bit of mark down that is shown at the top of the
282 | * check page
283 | */
284 | export function buildSummary(metrics: ResultMetrics) {
285 | let testCount = metrics?.testsCount?._value ?? 0
286 | let failed = metrics?.testsFailedCount?._value ?? 0
287 | let passed = testCount - failed
288 | let warnings = metrics?.warningCount?._value ?? 0
289 | return `
290 | ## Summary
291 | 🧪 ${passed}/${testCount} tests passed
292 | ⚠️ Build finished with **${warnings}** Warnings
293 | `
294 | }
295 |
296 | export function parseURLToLocation(urlString: string): LocationInfo {
297 | let url = new URL(urlString)
298 | let path = url.pathname.replace(core.getInput('pathPrefix') + '/', '')
299 | let locations = url.hash.substring(1).split('&') as [string]
300 |
301 | let info: LocationInfo = {
302 | file: path
303 | }
304 |
305 | locations.forEach(location => {
306 | let pair = location.split('=')
307 | if (pair.length == 2) {
308 | let value = parseInt(pair[1])
309 | switch (pair[0]) {
310 | case 'StartingLineNumber': {
311 | info.startLine = value
312 | break
313 | }
314 | case 'EndingLineNumber': {
315 | info.endLine = value
316 | break
317 | }
318 | default:
319 | break
320 | }
321 | }
322 | })
323 | return info
324 | }
325 |
326 | /**
327 | * Generate GitHub annotations from an IssueSummary Object
328 | */
329 | export function warningsToGitHubAnnotation(issue: IssueSummary): GitHubAnnotation | null {
330 | let location = issue.documentLocationInCreatingWorkspace;
331 | if (location == undefined) {
332 | return null;
333 | }
334 | let info = parseURLToLocation(issue.documentLocationInCreatingWorkspace.url._value)
335 | let annotation: GitHubAnnotation = {
336 | path: info.file,
337 | start_line: info.startLine ?? 0,
338 | end_line: info.endLine ?? info.startLine ?? 0,
339 | annotation_level: AnnotationLevel.warning,
340 | title: issue.message._value,
341 | message: issue.message._value
342 | }
343 | return annotation
344 | }
345 |
346 | /**
347 | * Generate GitHub annotations from TestFailureIssueSummary objects
348 | *
349 | * GitHub requires start_line and end_line to be non-null so when xcode does
350 | * not include source information we are pretending it's line zero.
351 | */
352 | export function testFailureToGitHubAnnotation(
353 | issue: TestFailureIssueSummary
354 | ): GitHubAnnotation {
355 | let info = parseURLToLocation(issue.documentLocationInCreatingWorkspace.url._value)
356 | let annotation: GitHubAnnotation = {
357 | path: info.file,
358 | start_line: info.startLine ?? 0,
359 | end_line: info.endLine ?? info.startLine ?? 0,
360 | annotation_level: AnnotationLevel.failure,
361 | title: `${issue.testCaseName._value} failed`,
362 | message: issue.message._value
363 | }
364 | return annotation
365 | }
366 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019' or 'ESNEXT'. */
4 | "module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
5 | "outDir": "./lib", /* Redirect output structure to the directory. */
6 | "rootDir": "./src", /* Specify the root directory of input files. Use to control the output directory structure with --outDir. */
7 | "strict": true, /* Enable all strict type-checking options. */
8 | "noImplicitAny": true, /* Raise error on expressions and declarations with an implied 'any' type. */
9 | "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
10 | },
11 | "exclude": ["node_modules", "**/*.test.ts"]
12 | }
13 |
--------------------------------------------------------------------------------