Fix tcs type errors
CI Pipeline / test (20) (pull_request) Successful in 3m13s
CI Pipeline / test (18) (pull_request) Successful in 3m57s
CI Pipeline / e2e (firefox) (pull_request) Successful in 5m6s
CI Pipeline / e2e (webkit) (pull_request) Successful in 5m16s
CI Pipeline / e2e (chromium) (pull_request) Successful in 14m47s
CI Pipeline / performance (pull_request) Successful in 4m32s
CI Pipeline / storybook (pull_request) Successful in 1m35s
CI Pipeline / visual-regression (pull_request) Failing after 9m55s
CI Pipeline / lint (pull_request) Failing after 49s
CI Pipeline / build (pull_request) Successful in 1m48s
CI Pipeline / test (20) (pull_request) Successful in 3m13s
CI Pipeline / test (18) (pull_request) Successful in 3m57s
CI Pipeline / e2e (firefox) (pull_request) Successful in 5m6s
CI Pipeline / e2e (webkit) (pull_request) Successful in 5m16s
CI Pipeline / e2e (chromium) (pull_request) Successful in 14m47s
CI Pipeline / performance (pull_request) Successful in 4m32s
CI Pipeline / storybook (pull_request) Successful in 1m35s
CI Pipeline / visual-regression (pull_request) Failing after 9m55s
CI Pipeline / lint (pull_request) Failing after 49s
CI Pipeline / build (pull_request) Successful in 1m48s
This commit is contained in:
+1
File diff suppressed because one or more lines are too long
+1
File diff suppressed because one or more lines are too long
BIN
Binary file not shown.
+2
@@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
69fac7faa40107339e1a7882984c15d963d97643 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz","integrity":"sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==","time":1765469060972,"size":2182973,"metadata":{"time":1765469060779,"url":"https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz","reqHeaders":{},"resHeaders":{"cache-control":"public, immutable, max-age=31557600","content-type":"application/octet-stream","date":"Thu, 11 Dec 2025 16:04:20 GMT","etag":"\"924eeee9d36e511ef6c7ddc8e19c6362\"","last-modified":"Wed, 03 Dec 2025 04:35:25 GMT","vary":"Accept-Encoding"},"options":{"compress":true}}}
|
||||||
+3
@@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
fdd7567bfebbd4aeeca3079769824eebfb85a415 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/prettier","integrity":"sha512-sOi5vnANiJgqKg3QGjCoFe+HKxAMYysTQsbTQ/2VwT06qWABnhqsxjuHtvNFQ4Fg+zyO23xM0sczwTOshsWPgw==","time":1765469060369,"size":214021,"metadata":{"time":1765469060357,"url":"https://registry.npmjs.org/prettier","reqHeaders":{"accept":"application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*"},"resHeaders":{"cache-control":"public, max-age=300","content-encoding":"gzip","content-type":"application/vnd.npm.install-v1+json","date":"Thu, 11 Dec 2025 16:04:20 GMT","etag":"W/\"632a0a6a03b15ed7b9e899fa745be81c\"","last-modified":"Wed, 03 Dec 2025 04:35:25 GMT","vary":"accept-encoding, accept"},"options":{"compress":true}}}
|
||||||
|
2338d9920f2010a709e5b23cac3996dc304ae877 {"key":"make-fetch-happen:request-cache:https://registry.npmjs.org/prettier","integrity":"sha512-qI1KIhqVI6/z+dhm/M0sNoXTx9kdSlL6IXY5INgn8huH6Z+Cpt7C1ERXY/nYxx9BppuJyrFqNcutZ74k/dCogA==","time":1765469060648,"size":642387,"metadata":{"time":1765469060638,"url":"https://registry.npmjs.org/prettier","reqHeaders":{"accept":"application/json"},"resHeaders":{"cache-control":"public, max-age=300","content-encoding":"gzip","content-type":"application/json","date":"Thu, 11 Dec 2025 16:04:20 GMT","etag":"W/\"0d46398e4d0387ebb8ac788fc4a6de3f\"","last-modified":"Wed, 03 Dec 2025 04:35:25 GMT","vary":"accept-encoding, accept"},"options":{"compress":true}}}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
0 verbose cli /Users/Vinod/.nvm/versions/node/v18.20.8/bin/node /Users/Vinod/.nvm/versions/node/v18.20.8/lib/node_modules/npm/bin/npm-cli.js
|
||||||
|
1 info using npm@10.8.2
|
||||||
|
2 info using node@v18.20.8
|
||||||
|
3 silly config load:file:/Users/Vinod/.nvm/versions/node/v18.20.8/lib/node_modules/npm/npmrc
|
||||||
|
4 silly config load:file:/Users/Vinod/Documents/GitHub/community-rule/.npmrc
|
||||||
|
5 silly config load:file:/Users/Vinod/.npmrc
|
||||||
|
6 silly config load:file:/Users/Vinod/.nvm/versions/node/v18.20.8/etc/npmrc
|
||||||
|
7 verbose title npm exec prettier --write .
|
||||||
|
8 verbose argv "exec" "--" "prettier" "--write" "."
|
||||||
|
9 verbose logfile logs-max:10 dir:/Users/Vinod/Documents/GitHub/community-rule/.npm-cache/_logs/2025-12-11T16_04_19_689Z-
|
||||||
|
10 verbose logfile /Users/Vinod/Documents/GitHub/community-rule/.npm-cache/_logs/2025-12-11T16_04_19_689Z-debug-0.log
|
||||||
|
11 silly logfile done cleaning log files
|
||||||
|
12 silly packumentCache heap:4345298944 maxSize:1086324736 maxEntrySize:543162368
|
||||||
|
13 http fetch GET 200 https://registry.npmjs.org/prettier 172ms (cache miss)
|
||||||
|
14 silly packumentCache heap:4345298944 maxSize:1086324736 maxEntrySize:543162368
|
||||||
|
15 silly packumentCache heap:4345298944 maxSize:1086324736 maxEntrySize:543162368
|
||||||
|
16 warn exec The following package was not found and will be installed: prettier@3.7.4
|
||||||
|
17 silly idealTree buildDeps
|
||||||
|
18 silly fetch manifest prettier@3.7.4
|
||||||
|
19 silly packumentCache full:https://registry.npmjs.org/prettier cache-miss
|
||||||
|
20 http fetch GET 200 https://registry.npmjs.org/prettier 64ms (cache miss)
|
||||||
|
21 silly packumentCache full:https://registry.npmjs.org/prettier set size:undefined disposed:false
|
||||||
|
22 silly placeDep ROOT prettier@3.7.4 OK for: want: 3.7.4
|
||||||
|
23 silly reify moves {}
|
||||||
|
24 silly audit bulk request { prettier: [ '3.7.4' ] }
|
||||||
|
25 silly tarball no local data for prettier@https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz. Extracting by manifest.
|
||||||
|
26 http fetch POST 200 https://registry.npmjs.org/-/npm/v1/security/advisories/bulk 103ms
|
||||||
|
27 silly audit report {}
|
||||||
|
28 http fetch GET 200 https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz 307ms (cache miss)
|
||||||
|
29 verbose cwd /Users/Vinod/Documents/GitHub/community-rule
|
||||||
|
30 verbose os Darwin 24.6.0
|
||||||
|
31 verbose node v18.20.8
|
||||||
|
32 verbose npm v10.8.2
|
||||||
|
33 verbose exit 0
|
||||||
|
34 info ok
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
../prettier/bin/prettier.cjs
|
||||||
+22
@@ -0,0 +1,22 @@
|
|||||||
|
{
|
||||||
|
"name": "b388654678d519d9",
|
||||||
|
"lockfileVersion": 3,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"node_modules/prettier": {
|
||||||
|
"version": "3.7.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz",
|
||||||
|
"integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"bin": {
|
||||||
|
"prettier": "bin/prettier.cjs"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
@@ -0,0 +1,7 @@
|
|||||||
|
Copyright © James Long and contributors
|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
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.
|
||||||
+104
@@ -0,0 +1,104 @@
|
|||||||
|
[](https://prettier.io)
|
||||||
|
|
||||||
|
<h2 align="center">Opinionated Code Formatter</h2>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<em>
|
||||||
|
JavaScript
|
||||||
|
· TypeScript
|
||||||
|
· Flow
|
||||||
|
· JSX
|
||||||
|
· JSON
|
||||||
|
</em>
|
||||||
|
<br />
|
||||||
|
<em>
|
||||||
|
CSS
|
||||||
|
· SCSS
|
||||||
|
· Less
|
||||||
|
</em>
|
||||||
|
<br />
|
||||||
|
<em>
|
||||||
|
HTML
|
||||||
|
· Vue
|
||||||
|
· Angular
|
||||||
|
</em>
|
||||||
|
<br />
|
||||||
|
<em>
|
||||||
|
GraphQL
|
||||||
|
· Markdown
|
||||||
|
· YAML
|
||||||
|
</em>
|
||||||
|
<br />
|
||||||
|
<em>
|
||||||
|
<a href="https://prettier.io/docs/plugins">
|
||||||
|
Your favorite language?
|
||||||
|
</a>
|
||||||
|
</em>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="https://github.com/prettier/prettier/actions?query=branch%3Amain">
|
||||||
|
<img alt="CI Status" src="https://img.shields.io/github/check-runs/prettier/prettier/main?style=flat-square&label=CI"></a>
|
||||||
|
<a href="https://codecov.io/gh/prettier/prettier">
|
||||||
|
<img alt="Coverage Status" src="https://img.shields.io/codecov/c/github/prettier/prettier.svg?style=flat-square"></a>
|
||||||
|
<a href="https://x.com/acdlite/status/974390255393505280">
|
||||||
|
<img alt="Blazing Fast" src="https://img.shields.io/badge/speed-blazing%20%F0%9F%94%A5-brightgreen.svg?style=flat-square"></a>
|
||||||
|
<br/>
|
||||||
|
<a href="https://www.npmjs.com/package/prettier">
|
||||||
|
<img alt="npm version" src="https://img.shields.io/npm/v/prettier.svg?style=flat-square"></a>
|
||||||
|
<a href="https://www.npmjs.com/package/prettier">
|
||||||
|
<img alt="weekly downloads from npm" src="https://img.shields.io/npm/dw/prettier.svg?style=flat-square"></a>
|
||||||
|
<a href="https://github.com/prettier/prettier#badge">
|
||||||
|
<img alt="code style: prettier" src="https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square"></a>
|
||||||
|
<a href="https://x.com/intent/follow?screen_name=PrettierCode">
|
||||||
|
<img alt="Follow Prettier on X" src="https://img.shields.io/badge/%40PrettierCode-9f9f9f?style=flat-square&logo=x&labelColor=555"></a>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
## Intro
|
||||||
|
|
||||||
|
Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary.
|
||||||
|
|
||||||
|
### Input
|
||||||
|
|
||||||
|
<!-- prettier-ignore -->
|
||||||
|
```js
|
||||||
|
foo(reallyLongArg(), omgSoManyParameters(), IShouldRefactorThis(), isThereSeriouslyAnotherOne());
|
||||||
|
```
|
||||||
|
|
||||||
|
### Output
|
||||||
|
|
||||||
|
```js
|
||||||
|
foo(
|
||||||
|
reallyLongArg(),
|
||||||
|
omgSoManyParameters(),
|
||||||
|
IShouldRefactorThis(),
|
||||||
|
isThereSeriouslyAnotherOne(),
|
||||||
|
);
|
||||||
|
```
|
||||||
|
|
||||||
|
Prettier can be run [in your editor](https://prettier.io/docs/editors) on-save, in a [pre-commit hook](https://prettier.io/docs/precommit), or in [CI environments](https://prettier.io/docs/cli#list-different) to ensure your codebase has a consistent style without devs ever having to post a nit-picky comment on a code review ever again!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**[Documentation](https://prettier.io/docs/)**
|
||||||
|
|
||||||
|
[Install](https://prettier.io/docs/install) ·
|
||||||
|
[Options](https://prettier.io/docs/options) ·
|
||||||
|
[CLI](https://prettier.io/docs/cli) ·
|
||||||
|
[API](https://prettier.io/docs/api)
|
||||||
|
|
||||||
|
**[Playground](https://prettier.io/playground/)**
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Badge
|
||||||
|
|
||||||
|
Show the world you're using _Prettier_ → [](https://github.com/prettier/prettier)
|
||||||
|
|
||||||
|
```md
|
||||||
|
[](https://github.com/prettier/prettier)
|
||||||
|
```
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
||||||
+6059
File diff suppressed because it is too large
Load Diff
Generated
Vendored
Executable
+80
@@ -0,0 +1,80 @@
|
|||||||
|
#!/usr/bin/env node
|
||||||
|
"use strict";
|
||||||
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
||||||
|
var __commonJS = function(cb, mod) {
|
||||||
|
return function __require() {
|
||||||
|
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
// node_modules/semver-compare/index.js
|
||||||
|
var require_semver_compare = __commonJS({
|
||||||
|
"node_modules/semver-compare/index.js": function(exports2, module2) {
|
||||||
|
module2.exports = function cmp(a, b) {
|
||||||
|
var pa = a.split(".");
|
||||||
|
var pb = b.split(".");
|
||||||
|
for (var i = 0; i < 3; i++) {
|
||||||
|
var na = Number(pa[i]);
|
||||||
|
var nb = Number(pb[i]);
|
||||||
|
if (na > nb) return 1;
|
||||||
|
if (nb > na) return -1;
|
||||||
|
if (!isNaN(na) && isNaN(nb)) return 1;
|
||||||
|
if (isNaN(na) && !isNaN(nb)) return -1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// node_modules/please-upgrade-node/index.js
|
||||||
|
var require_please_upgrade_node = __commonJS({
|
||||||
|
"node_modules/please-upgrade-node/index.js": function(exports2, module2) {
|
||||||
|
var semverCompare = require_semver_compare();
|
||||||
|
module2.exports = function pleaseUpgradeNode2(pkg, opts) {
|
||||||
|
var opts = opts || {};
|
||||||
|
var requiredVersion = pkg.engines.node.replace(">=", "");
|
||||||
|
var currentVersion = process.version.replace("v", "");
|
||||||
|
if (semverCompare(currentVersion, requiredVersion) === -1) {
|
||||||
|
if (opts.message) {
|
||||||
|
console.error(opts.message(requiredVersion));
|
||||||
|
} else {
|
||||||
|
console.error(
|
||||||
|
pkg.name + " requires at least version " + requiredVersion + " of Node, please upgrade"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (opts.hasOwnProperty("exitCode")) {
|
||||||
|
process.exit(opts.exitCode);
|
||||||
|
} else {
|
||||||
|
process.exit(1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// bin/prettier.cjs
|
||||||
|
var nodeModule = require("module");
|
||||||
|
if (typeof nodeModule.enableCompileCache === "function") {
|
||||||
|
nodeModule.enableCompileCache();
|
||||||
|
}
|
||||||
|
var pleaseUpgradeNode = require_please_upgrade_node();
|
||||||
|
var packageJson = require("../package.json");
|
||||||
|
pleaseUpgradeNode(packageJson);
|
||||||
|
var dynamicImport = new Function("module", "return import(module)");
|
||||||
|
var promise;
|
||||||
|
var index = process.argv.indexOf("--experimental-cli");
|
||||||
|
if (process.env.PRETTIER_EXPERIMENTAL_CLI || index !== -1) {
|
||||||
|
if (index !== -1) {
|
||||||
|
process.argv.splice(index, 1);
|
||||||
|
}
|
||||||
|
promise = dynamicImport("../internal/experimental-cli.mjs").then(
|
||||||
|
function(cli) {
|
||||||
|
return cli.__promise;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
promise = dynamicImport("../internal/legacy-cli.mjs").then(function runCli(cli) {
|
||||||
|
return cli.run();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
module.exports.__promise = promise;
|
||||||
+254
@@ -0,0 +1,254 @@
|
|||||||
|
// https://github.com/prettier/prettier/blob/next/src/document/public.js
|
||||||
|
export namespace builders {
|
||||||
|
type DocCommand =
|
||||||
|
| Align
|
||||||
|
| BreakParent
|
||||||
|
| Cursor
|
||||||
|
| Fill
|
||||||
|
| Group
|
||||||
|
| IfBreak
|
||||||
|
| Indent
|
||||||
|
| IndentIfBreak
|
||||||
|
| Label
|
||||||
|
| Line
|
||||||
|
| LineSuffix
|
||||||
|
| LineSuffixBoundary
|
||||||
|
| Trim;
|
||||||
|
type Doc = string | Doc[] | DocCommand;
|
||||||
|
|
||||||
|
interface Align {
|
||||||
|
type: "align";
|
||||||
|
contents: Doc;
|
||||||
|
n: number | string | { type: "root" };
|
||||||
|
}
|
||||||
|
|
||||||
|
interface BreakParent {
|
||||||
|
type: "break-parent";
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Cursor {
|
||||||
|
type: "cursor";
|
||||||
|
placeholder: symbol;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Fill {
|
||||||
|
type: "fill";
|
||||||
|
parts: Doc[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Group {
|
||||||
|
type: "group";
|
||||||
|
id?: symbol;
|
||||||
|
contents: Doc;
|
||||||
|
break: boolean;
|
||||||
|
expandedStates: Doc[];
|
||||||
|
}
|
||||||
|
|
||||||
|
interface HardlineWithoutBreakParent extends Line {
|
||||||
|
hard: true;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface IfBreak {
|
||||||
|
type: "if-break";
|
||||||
|
breakContents: Doc;
|
||||||
|
flatContents: Doc;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Indent {
|
||||||
|
type: "indent";
|
||||||
|
contents: Doc;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface IndentIfBreak {
|
||||||
|
type: "indent-if-break";
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Label {
|
||||||
|
type: "label";
|
||||||
|
label: any;
|
||||||
|
contents: Doc;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface Line {
|
||||||
|
type: "line";
|
||||||
|
soft?: boolean | undefined;
|
||||||
|
hard?: boolean | undefined;
|
||||||
|
literal?: boolean | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface LineSuffix {
|
||||||
|
type: "line-suffix";
|
||||||
|
contents: Doc;
|
||||||
|
}
|
||||||
|
|
||||||
|
interface LineSuffixBoundary {
|
||||||
|
type: "line-suffix-boundary";
|
||||||
|
}
|
||||||
|
|
||||||
|
interface LiterallineWithoutBreakParent extends Line {
|
||||||
|
hard: true;
|
||||||
|
literal: true;
|
||||||
|
}
|
||||||
|
|
||||||
|
type LiteralLine = [LiterallineWithoutBreakParent, BreakParent];
|
||||||
|
|
||||||
|
interface Softline extends Line {
|
||||||
|
soft: true;
|
||||||
|
}
|
||||||
|
|
||||||
|
type Hardline = [HardlineWithoutBreakParent, BreakParent];
|
||||||
|
|
||||||
|
interface Trim {
|
||||||
|
type: "trim";
|
||||||
|
}
|
||||||
|
|
||||||
|
interface GroupOptions {
|
||||||
|
shouldBreak?: boolean | undefined;
|
||||||
|
id?: symbol | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
function addAlignmentToDoc(doc: Doc, size: number, tabWidth: number): Doc;
|
||||||
|
|
||||||
|
/** @see [align](https://github.com/prettier/prettier/blob/main/commands.md#align) */
|
||||||
|
function align(widthOrString: Align["n"], doc: Doc): Align;
|
||||||
|
|
||||||
|
/** @see [breakParent](https://github.com/prettier/prettier/blob/main/commands.md#breakparent) */
|
||||||
|
const breakParent: BreakParent;
|
||||||
|
|
||||||
|
/** @see [conditionalGroup](https://github.com/prettier/prettier/blob/main/commands.md#conditionalgroup) */
|
||||||
|
function conditionalGroup(alternatives: Doc[], options?: GroupOptions): Group;
|
||||||
|
|
||||||
|
/** @see [dedent](https://github.com/prettier/prettier/blob/main/commands.md#dedent) */
|
||||||
|
function dedent(doc: Doc): Align;
|
||||||
|
|
||||||
|
/** @see [dedentToRoot](https://github.com/prettier/prettier/blob/main/commands.md#dedenttoroot) */
|
||||||
|
function dedentToRoot(doc: Doc): Align;
|
||||||
|
|
||||||
|
/** @see [fill](https://github.com/prettier/prettier/blob/main/commands.md#fill) */
|
||||||
|
function fill(docs: Doc[]): Fill;
|
||||||
|
|
||||||
|
/** @see [group](https://github.com/prettier/prettier/blob/main/commands.md#group) */
|
||||||
|
function group(doc: Doc, opts?: GroupOptions): Group;
|
||||||
|
|
||||||
|
/** @see [hardline](https://github.com/prettier/prettier/blob/main/commands.md#hardline) */
|
||||||
|
const hardline: Hardline;
|
||||||
|
|
||||||
|
/** @see [hardlineWithoutBreakParent](https://github.com/prettier/prettier/blob/main/commands.md#hardlinewithoutbreakparent-and-literallinewithoutbreakparent) */
|
||||||
|
const hardlineWithoutBreakParent: HardlineWithoutBreakParent;
|
||||||
|
|
||||||
|
/** @see [ifBreak](https://github.com/prettier/prettier/blob/main/commands.md#ifbreak) */
|
||||||
|
function ifBreak(
|
||||||
|
ifBreak: Doc,
|
||||||
|
noBreak?: Doc,
|
||||||
|
options?: { groupId?: symbol | undefined },
|
||||||
|
): IfBreak;
|
||||||
|
|
||||||
|
/** @see [indent](https://github.com/prettier/prettier/blob/main/commands.md#indent) */
|
||||||
|
function indent(doc: Doc): Indent;
|
||||||
|
|
||||||
|
/** @see [indentIfBreak](https://github.com/prettier/prettier/blob/main/commands.md#indentifbreak) */
|
||||||
|
function indentIfBreak(
|
||||||
|
doc: Doc,
|
||||||
|
opts: { groupId: symbol; negate?: boolean | undefined },
|
||||||
|
): IndentIfBreak;
|
||||||
|
|
||||||
|
/** @see [join](https://github.com/prettier/prettier/blob/main/commands.md#join) */
|
||||||
|
function join(sep: Doc, docs: Doc[]): Doc[];
|
||||||
|
|
||||||
|
/** @see [label](https://github.com/prettier/prettier/blob/main/commands.md#label) */
|
||||||
|
function label(label: any | undefined, contents: Doc): Doc;
|
||||||
|
|
||||||
|
/** @see [line](https://github.com/prettier/prettier/blob/main/commands.md#line) */
|
||||||
|
const line: Line;
|
||||||
|
|
||||||
|
/** @see [lineSuffix](https://github.com/prettier/prettier/blob/main/commands.md#linesuffix) */
|
||||||
|
function lineSuffix(suffix: Doc): LineSuffix;
|
||||||
|
|
||||||
|
/** @see [lineSuffixBoundary](https://github.com/prettier/prettier/blob/main/commands.md#linesuffixboundary) */
|
||||||
|
const lineSuffixBoundary: LineSuffixBoundary;
|
||||||
|
|
||||||
|
/** @see [literalline](https://github.com/prettier/prettier/blob/main/commands.md#literalline) */
|
||||||
|
const literalline: LiteralLine;
|
||||||
|
|
||||||
|
/** @see [literallineWithoutBreakParent](https://github.com/prettier/prettier/blob/main/commands.md#hardlinewithoutbreakparent-and-literallinewithoutbreakparent) */
|
||||||
|
const literallineWithoutBreakParent: LiterallineWithoutBreakParent;
|
||||||
|
|
||||||
|
/** @see [markAsRoot](https://github.com/prettier/prettier/blob/main/commands.md#markasroot) */
|
||||||
|
function markAsRoot(doc: Doc): Align;
|
||||||
|
|
||||||
|
/** @see [softline](https://github.com/prettier/prettier/blob/main/commands.md#softline) */
|
||||||
|
const softline: Softline;
|
||||||
|
|
||||||
|
/** @see [trim](https://github.com/prettier/prettier/blob/main/commands.md#trim) */
|
||||||
|
const trim: Trim;
|
||||||
|
|
||||||
|
/** @see [cursor](https://github.com/prettier/prettier/blob/main/commands.md#cursor) */
|
||||||
|
const cursor: Cursor;
|
||||||
|
}
|
||||||
|
|
||||||
|
export namespace printer {
|
||||||
|
function printDocToString(
|
||||||
|
doc: builders.Doc,
|
||||||
|
options: Options,
|
||||||
|
): {
|
||||||
|
formatted: string;
|
||||||
|
/**
|
||||||
|
* This property is a misnomer, and has been since the changes in
|
||||||
|
* https://github.com/prettier/prettier/pull/15709.
|
||||||
|
* The region of the document indicated by `cursorNodeStart` and `cursorNodeText` will
|
||||||
|
* sometimes actually be what lies BETWEEN a pair of leaf nodes in the AST, rather than a node.
|
||||||
|
*/
|
||||||
|
cursorNodeStart?: number | undefined;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Note that, like cursorNodeStart, this is a misnomer and may actually be the text between two
|
||||||
|
* leaf nodes in the AST instead of the text of a node.
|
||||||
|
*/
|
||||||
|
cursorNodeText?: string | undefined;
|
||||||
|
};
|
||||||
|
interface Options {
|
||||||
|
/**
|
||||||
|
* Specify the line length that the printer will wrap on.
|
||||||
|
* @default 80
|
||||||
|
*/
|
||||||
|
printWidth: number;
|
||||||
|
/**
|
||||||
|
* Specify the number of spaces per indentation-level.
|
||||||
|
* @default 2
|
||||||
|
*/
|
||||||
|
tabWidth: number;
|
||||||
|
/**
|
||||||
|
* Indent lines with tabs instead of spaces
|
||||||
|
* @default false
|
||||||
|
*/
|
||||||
|
useTabs?: boolean;
|
||||||
|
parentParser?: string | undefined;
|
||||||
|
__embeddedInHtml?: boolean | undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export namespace utils {
|
||||||
|
function willBreak(doc: builders.Doc): boolean;
|
||||||
|
function traverseDoc(
|
||||||
|
doc: builders.Doc,
|
||||||
|
onEnter?: (doc: builders.Doc) => void | boolean,
|
||||||
|
onExit?: (doc: builders.Doc) => void,
|
||||||
|
shouldTraverseConditionalGroups?: boolean,
|
||||||
|
): void;
|
||||||
|
function findInDoc<T = builders.Doc>(
|
||||||
|
doc: builders.Doc,
|
||||||
|
callback: (doc: builders.Doc) => T,
|
||||||
|
defaultValue: T,
|
||||||
|
): T;
|
||||||
|
function mapDoc<T = builders.Doc>(
|
||||||
|
doc: builders.Doc,
|
||||||
|
callback: (doc: builders.Doc) => T,
|
||||||
|
): T;
|
||||||
|
function removeLines(doc: builders.Doc): builders.Doc;
|
||||||
|
function stripTrailingHardline(doc: builders.Doc): builders.Doc;
|
||||||
|
function replaceEndOfLine(
|
||||||
|
doc: builders.Doc,
|
||||||
|
replacement?: builders.Doc,
|
||||||
|
): builders.Doc;
|
||||||
|
function canBreak(doc: builders.Doc): boolean;
|
||||||
|
}
|
||||||
+1511
File diff suppressed because one or more lines are too long
+1480
File diff suppressed because one or more lines are too long
+720
File diff suppressed because one or more lines are too long
+968
@@ -0,0 +1,968 @@
|
|||||||
|
// Copied from `@types/prettier`
|
||||||
|
// https://github.com/DefinitelyTyped/DefinitelyTyped/blob/5bb07fc4b087cb7ee91084afa6fe750551a7bbb1/types/prettier/index.d.ts
|
||||||
|
|
||||||
|
// Minimum TypeScript Version: 4.2
|
||||||
|
|
||||||
|
// Add `export {}` here to shut off automatic exporting from index.d.ts. There
|
||||||
|
// are quite a few utility types here that don't need to be shipped with the
|
||||||
|
// exported module.
|
||||||
|
export {};
|
||||||
|
|
||||||
|
import { builders, printer, utils } from "./doc.js";
|
||||||
|
|
||||||
|
export namespace doc {
|
||||||
|
export { builders, printer, utils };
|
||||||
|
}
|
||||||
|
|
||||||
|
// This utility is here to handle the case where you have an explicit union
|
||||||
|
// between string literals and the generic string type. It would normally
|
||||||
|
// resolve out to just the string type, but this generic LiteralUnion maintains
|
||||||
|
// the intellisense of the original union.
|
||||||
|
//
|
||||||
|
// It comes from this issue: microsoft/TypeScript#29729:
|
||||||
|
// https://github.com/microsoft/TypeScript/issues/29729#issuecomment-700527227
|
||||||
|
export type LiteralUnion<T extends U, U = string> =
|
||||||
|
| T
|
||||||
|
| (Pick<U, never> & { _?: never | undefined });
|
||||||
|
|
||||||
|
export type AST = any;
|
||||||
|
export type Doc = doc.builders.Doc;
|
||||||
|
|
||||||
|
// The type of elements that make up the given array T.
|
||||||
|
type ArrayElement<T> = T extends Array<infer E> ? E : never;
|
||||||
|
|
||||||
|
// A union of the properties of the given object that are arrays.
|
||||||
|
type ArrayProperties<T> = {
|
||||||
|
[K in keyof T]: NonNullable<T[K]> extends readonly any[] ? K : never;
|
||||||
|
}[keyof T];
|
||||||
|
|
||||||
|
// A union of the properties of the given array T that can be used to index it.
|
||||||
|
// If the array is a tuple, then that's going to be the explicit indices of the
|
||||||
|
// array, otherwise it's going to just be number.
|
||||||
|
type IndexProperties<T extends { length: number }> =
|
||||||
|
IsTuple<T> extends true ? Exclude<Partial<T>["length"], T["length"]> : number;
|
||||||
|
|
||||||
|
// Effectively performing T[P], except that it's telling TypeScript that it's
|
||||||
|
// safe to do this for tuples, arrays, or objects.
|
||||||
|
type IndexValue<T, P> = T extends any[]
|
||||||
|
? P extends number
|
||||||
|
? T[P]
|
||||||
|
: never
|
||||||
|
: P extends keyof T
|
||||||
|
? T[P]
|
||||||
|
: never;
|
||||||
|
|
||||||
|
// Determines if an object T is an array like string[] (in which case this
|
||||||
|
// evaluates to false) or a tuple like [string] (in which case this evaluates to
|
||||||
|
// true).
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||||
|
type IsTuple<T> = T extends []
|
||||||
|
? true
|
||||||
|
: T extends [infer First, ...infer Remain]
|
||||||
|
? IsTuple<Remain>
|
||||||
|
: false;
|
||||||
|
|
||||||
|
type CallProperties<T> = T extends any[] ? IndexProperties<T> : keyof T;
|
||||||
|
type IterProperties<T> = T extends any[]
|
||||||
|
? IndexProperties<T>
|
||||||
|
: ArrayProperties<T>;
|
||||||
|
|
||||||
|
type CallCallback<T, U> = (path: AstPath<T>, index: number, value: any) => U;
|
||||||
|
type EachCallback<T> = (
|
||||||
|
path: AstPath<ArrayElement<T>>,
|
||||||
|
index: number,
|
||||||
|
value: any,
|
||||||
|
) => void;
|
||||||
|
type MapCallback<T, U> = (
|
||||||
|
path: AstPath<ArrayElement<T>>,
|
||||||
|
index: number,
|
||||||
|
value: any,
|
||||||
|
) => U;
|
||||||
|
|
||||||
|
// https://github.com/prettier/prettier/blob/next/src/common/ast-path.js
|
||||||
|
export class AstPath<T = any> {
|
||||||
|
constructor(value: T);
|
||||||
|
|
||||||
|
get key(): string | null;
|
||||||
|
get index(): number | null;
|
||||||
|
get node(): T;
|
||||||
|
get parent(): T | null;
|
||||||
|
get grandparent(): T | null;
|
||||||
|
get isInArray(): boolean;
|
||||||
|
get siblings(): T[] | null;
|
||||||
|
get next(): T | null;
|
||||||
|
get previous(): T | null;
|
||||||
|
get isFirst(): boolean;
|
||||||
|
get isLast(): boolean;
|
||||||
|
get isRoot(): boolean;
|
||||||
|
get root(): T;
|
||||||
|
get ancestors(): T[];
|
||||||
|
|
||||||
|
stack: T[];
|
||||||
|
|
||||||
|
callParent<U>(callback: (path: this) => U, count?: number): U;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Please use `AstPath#key` or `AstPath#index`
|
||||||
|
*/
|
||||||
|
getName(): PropertyKey | null;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @deprecated Please use `AstPath#node` or `AstPath#siblings`
|
||||||
|
*/
|
||||||
|
getValue(): T;
|
||||||
|
|
||||||
|
getNode(count?: number): T | null;
|
||||||
|
|
||||||
|
getParentNode(count?: number): T | null;
|
||||||
|
|
||||||
|
match(
|
||||||
|
...predicates: Array<
|
||||||
|
(node: any, name: string | null, number: number | null) => boolean
|
||||||
|
>
|
||||||
|
): boolean;
|
||||||
|
|
||||||
|
// For each of the tree walk functions (call, each, and map) this provides 5
|
||||||
|
// strict type signatures, along with a fallback at the end if you end up
|
||||||
|
// calling more than 5 properties deep. This helps a lot with typing because
|
||||||
|
// for the majority of cases you're calling fewer than 5 properties, so the
|
||||||
|
// tree walk functions have a clearer understanding of what you're doing.
|
||||||
|
//
|
||||||
|
// Note that resolving these types is somewhat complicated, and it wasn't
|
||||||
|
// even supported until TypeScript 4.2 (before it would just say that the
|
||||||
|
// type instantiation was excessively deep and possibly infinite).
|
||||||
|
|
||||||
|
call<U>(callback: CallCallback<T, U>): U;
|
||||||
|
call<U, P1 extends CallProperties<T>>(
|
||||||
|
callback: CallCallback<IndexValue<T, P1>, U>,
|
||||||
|
prop1: P1,
|
||||||
|
): U;
|
||||||
|
call<U, P1 extends keyof T, P2 extends CallProperties<T[P1]>>(
|
||||||
|
callback: CallCallback<IndexValue<IndexValue<T, P1>, P2>, U>,
|
||||||
|
prop1: P1,
|
||||||
|
prop2: P2,
|
||||||
|
): U;
|
||||||
|
call<
|
||||||
|
U,
|
||||||
|
P1 extends keyof T,
|
||||||
|
P2 extends CallProperties<T[P1]>,
|
||||||
|
P3 extends CallProperties<IndexValue<T[P1], P2>>,
|
||||||
|
>(
|
||||||
|
callback: CallCallback<
|
||||||
|
IndexValue<IndexValue<IndexValue<T, P1>, P2>, P3>,
|
||||||
|
U
|
||||||
|
>,
|
||||||
|
prop1: P1,
|
||||||
|
prop2: P2,
|
||||||
|
prop3: P3,
|
||||||
|
): U;
|
||||||
|
call<
|
||||||
|
U,
|
||||||
|
P1 extends keyof T,
|
||||||
|
P2 extends CallProperties<T[P1]>,
|
||||||
|
P3 extends CallProperties<IndexValue<T[P1], P2>>,
|
||||||
|
P4 extends CallProperties<IndexValue<IndexValue<T[P1], P2>, P3>>,
|
||||||
|
>(
|
||||||
|
callback: CallCallback<
|
||||||
|
IndexValue<IndexValue<IndexValue<IndexValue<T, P1>, P2>, P3>, P4>,
|
||||||
|
U
|
||||||
|
>,
|
||||||
|
prop1: P1,
|
||||||
|
prop2: P2,
|
||||||
|
prop3: P3,
|
||||||
|
prop4: P4,
|
||||||
|
): U;
|
||||||
|
call<U, P extends PropertyKey>(
|
||||||
|
callback: CallCallback<any, U>,
|
||||||
|
prop1: P,
|
||||||
|
prop2: P,
|
||||||
|
prop3: P,
|
||||||
|
prop4: P,
|
||||||
|
...props: P[]
|
||||||
|
): U;
|
||||||
|
|
||||||
|
each(callback: EachCallback<T>): void;
|
||||||
|
each<P1 extends IterProperties<T>>(
|
||||||
|
callback: EachCallback<IndexValue<T, P1>>,
|
||||||
|
prop1: P1,
|
||||||
|
): void;
|
||||||
|
each<P1 extends keyof T, P2 extends IterProperties<T[P1]>>(
|
||||||
|
callback: EachCallback<IndexValue<IndexValue<T, P1>, P2>>,
|
||||||
|
prop1: P1,
|
||||||
|
prop2: P2,
|
||||||
|
): void;
|
||||||
|
each<
|
||||||
|
P1 extends keyof T,
|
||||||
|
P2 extends IterProperties<T[P1]>,
|
||||||
|
P3 extends IterProperties<IndexValue<T[P1], P2>>,
|
||||||
|
>(
|
||||||
|
callback: EachCallback<IndexValue<IndexValue<IndexValue<T, P1>, P2>, P3>>,
|
||||||
|
prop1: P1,
|
||||||
|
prop2: P2,
|
||||||
|
prop3: P3,
|
||||||
|
): void;
|
||||||
|
each<
|
||||||
|
P1 extends keyof T,
|
||||||
|
P2 extends IterProperties<T[P1]>,
|
||||||
|
P3 extends IterProperties<IndexValue<T[P1], P2>>,
|
||||||
|
P4 extends IterProperties<IndexValue<IndexValue<T[P1], P2>, P3>>,
|
||||||
|
>(
|
||||||
|
callback: EachCallback<
|
||||||
|
IndexValue<IndexValue<IndexValue<IndexValue<T, P1>, P2>, P3>, P4>
|
||||||
|
>,
|
||||||
|
prop1: P1,
|
||||||
|
prop2: P2,
|
||||||
|
prop3: P3,
|
||||||
|
prop4: P4,
|
||||||
|
): void;
|
||||||
|
each(
|
||||||
|
callback: EachCallback<any[]>,
|
||||||
|
prop1: PropertyKey,
|
||||||
|
prop2: PropertyKey,
|
||||||
|
prop3: PropertyKey,
|
||||||
|
prop4: PropertyKey,
|
||||||
|
...props: PropertyKey[]
|
||||||
|
): void;
|
||||||
|
|
||||||
|
map<U>(callback: MapCallback<T, U>): U[];
|
||||||
|
map<U, P1 extends IterProperties<T>>(
|
||||||
|
callback: MapCallback<IndexValue<T, P1>, U>,
|
||||||
|
prop1: P1,
|
||||||
|
): U[];
|
||||||
|
map<U, P1 extends keyof T, P2 extends IterProperties<T[P1]>>(
|
||||||
|
callback: MapCallback<IndexValue<IndexValue<T, P1>, P2>, U>,
|
||||||
|
prop1: P1,
|
||||||
|
prop2: P2,
|
||||||
|
): U[];
|
||||||
|
map<
|
||||||
|
U,
|
||||||
|
P1 extends keyof T,
|
||||||
|
P2 extends IterProperties<T[P1]>,
|
||||||
|
P3 extends IterProperties<IndexValue<T[P1], P2>>,
|
||||||
|
>(
|
||||||
|
callback: MapCallback<IndexValue<IndexValue<IndexValue<T, P1>, P2>, P3>, U>,
|
||||||
|
prop1: P1,
|
||||||
|
prop2: P2,
|
||||||
|
prop3: P3,
|
||||||
|
): U[];
|
||||||
|
map<
|
||||||
|
U,
|
||||||
|
P1 extends keyof T,
|
||||||
|
P2 extends IterProperties<T[P1]>,
|
||||||
|
P3 extends IterProperties<IndexValue<T[P1], P2>>,
|
||||||
|
P4 extends IterProperties<IndexValue<IndexValue<T[P1], P2>, P3>>,
|
||||||
|
>(
|
||||||
|
callback: MapCallback<
|
||||||
|
IndexValue<IndexValue<IndexValue<IndexValue<T, P1>, P2>, P3>, P4>,
|
||||||
|
U
|
||||||
|
>,
|
||||||
|
prop1: P1,
|
||||||
|
prop2: P2,
|
||||||
|
prop3: P3,
|
||||||
|
prop4: P4,
|
||||||
|
): U[];
|
||||||
|
map<U>(
|
||||||
|
callback: MapCallback<any[], U>,
|
||||||
|
prop1: PropertyKey,
|
||||||
|
prop2: PropertyKey,
|
||||||
|
prop3: PropertyKey,
|
||||||
|
prop4: PropertyKey,
|
||||||
|
...props: PropertyKey[]
|
||||||
|
): U[];
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @deprecated `FastPath` was renamed to `AstPath` */
|
||||||
|
export type FastPath<T = any> = AstPath<T>;
|
||||||
|
|
||||||
|
export type BuiltInParser = (text: string, options?: any) => AST;
|
||||||
|
export type BuiltInParserName =
|
||||||
|
| "acorn"
|
||||||
|
| "angular"
|
||||||
|
| "babel-flow"
|
||||||
|
| "babel-ts"
|
||||||
|
| "babel"
|
||||||
|
| "css"
|
||||||
|
| "espree"
|
||||||
|
| "flow"
|
||||||
|
| "glimmer"
|
||||||
|
| "graphql"
|
||||||
|
| "html"
|
||||||
|
| "json-stringify"
|
||||||
|
| "json"
|
||||||
|
| "json5"
|
||||||
|
| "jsonc"
|
||||||
|
| "less"
|
||||||
|
| "lwc"
|
||||||
|
| "markdown"
|
||||||
|
| "mdx"
|
||||||
|
| "meriyah"
|
||||||
|
| "mjml"
|
||||||
|
| "scss"
|
||||||
|
| "typescript"
|
||||||
|
| "vue"
|
||||||
|
| "yaml";
|
||||||
|
export type BuiltInParsers = Record<BuiltInParserName, BuiltInParser>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* For use in `.prettierrc.js`, `.prettierrc.ts`, `.prettierrc.cjs`, `.prettierrc.cts`, `prettierrc.mjs`, `prettierrc.mts`, `prettier.config.js`, `prettier.config.ts`, `prettier.config.cjs`, `prettier.config.cts`, `prettier.config.mjs`, `prettier.config.mts`
|
||||||
|
*/
|
||||||
|
export interface Config extends Options {
|
||||||
|
overrides?: Array<{
|
||||||
|
files: string | string[];
|
||||||
|
excludeFiles?: string | string[];
|
||||||
|
options?: Options;
|
||||||
|
}>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Options extends Partial<RequiredOptions> {}
|
||||||
|
|
||||||
|
export interface RequiredOptions extends doc.printer.Options {
|
||||||
|
/**
|
||||||
|
* Print semicolons at the ends of statements.
|
||||||
|
* @default true
|
||||||
|
*/
|
||||||
|
semi: boolean;
|
||||||
|
/**
|
||||||
|
* Use single quotes instead of double quotes.
|
||||||
|
* @default false
|
||||||
|
*/
|
||||||
|
singleQuote: boolean;
|
||||||
|
/**
|
||||||
|
* Use single quotes in JSX.
|
||||||
|
* @default false
|
||||||
|
*/
|
||||||
|
jsxSingleQuote: boolean;
|
||||||
|
/**
|
||||||
|
* Print trailing commas wherever possible.
|
||||||
|
* @default "all"
|
||||||
|
*/
|
||||||
|
trailingComma: "none" | "es5" | "all";
|
||||||
|
/**
|
||||||
|
* Print spaces between brackets in object literals.
|
||||||
|
* @default true
|
||||||
|
*/
|
||||||
|
bracketSpacing: boolean;
|
||||||
|
/**
|
||||||
|
* How to wrap object literals.
|
||||||
|
* @default "preserve"
|
||||||
|
*/
|
||||||
|
objectWrap: "preserve" | "collapse";
|
||||||
|
/**
|
||||||
|
* Put the `>` of a multi-line HTML (HTML, JSX, Vue, Angular) element at the end of the last line instead of being
|
||||||
|
* alone on the next line (does not apply to self closing elements).
|
||||||
|
* @default false
|
||||||
|
*/
|
||||||
|
bracketSameLine: boolean;
|
||||||
|
/**
|
||||||
|
* Format only a segment of a file.
|
||||||
|
* @default 0
|
||||||
|
*/
|
||||||
|
rangeStart: number;
|
||||||
|
/**
|
||||||
|
* Format only a segment of a file.
|
||||||
|
* @default Number.POSITIVE_INFINITY
|
||||||
|
*/
|
||||||
|
rangeEnd: number;
|
||||||
|
/**
|
||||||
|
* Specify which parser to use.
|
||||||
|
*/
|
||||||
|
parser: LiteralUnion<BuiltInParserName>;
|
||||||
|
/**
|
||||||
|
* Specify the input filepath. This will be used to do parser inference.
|
||||||
|
*/
|
||||||
|
filepath: string;
|
||||||
|
/**
|
||||||
|
* Prettier can restrict itself to only format files that contain a special comment, called a pragma, at the top of the file.
|
||||||
|
* This is very useful when gradually transitioning large, unformatted codebases to prettier.
|
||||||
|
* @default false
|
||||||
|
*/
|
||||||
|
requirePragma: boolean;
|
||||||
|
/**
|
||||||
|
* Prettier can insert a special @format marker at the top of files specifying that
|
||||||
|
* the file has been formatted with prettier. This works well when used in tandem with
|
||||||
|
* the --require-pragma option. If there is already a docblock at the top of
|
||||||
|
* the file then this option will add a newline to it with the @format marker.
|
||||||
|
* @default false
|
||||||
|
*/
|
||||||
|
insertPragma: boolean;
|
||||||
|
/**
|
||||||
|
* Prettier can allow individual files to opt out of formatting if they contain a special comment, called a pragma, at the top of the file.
|
||||||
|
* @default false
|
||||||
|
*/
|
||||||
|
checkIgnorePragma: boolean;
|
||||||
|
/**
|
||||||
|
* By default, Prettier will wrap markdown text as-is since some services use a linebreak-sensitive renderer.
|
||||||
|
* In some cases you may want to rely on editor/viewer soft wrapping instead, so this option allows you to opt out.
|
||||||
|
* @default "preserve"
|
||||||
|
*/
|
||||||
|
proseWrap: "always" | "never" | "preserve";
|
||||||
|
/**
|
||||||
|
* Include parentheses around a sole arrow function parameter.
|
||||||
|
* @default "always"
|
||||||
|
*/
|
||||||
|
arrowParens: "avoid" | "always";
|
||||||
|
/**
|
||||||
|
* Provide ability to support new languages to prettier.
|
||||||
|
*/
|
||||||
|
plugins: Array<string | URL | Plugin>;
|
||||||
|
/**
|
||||||
|
* How to handle whitespaces in HTML.
|
||||||
|
* @default "css"
|
||||||
|
*/
|
||||||
|
htmlWhitespaceSensitivity: "css" | "strict" | "ignore";
|
||||||
|
/**
|
||||||
|
* Which end of line characters to apply.
|
||||||
|
* @default "lf"
|
||||||
|
*/
|
||||||
|
endOfLine: "auto" | "lf" | "crlf" | "cr";
|
||||||
|
/**
|
||||||
|
* Change when properties in objects are quoted.
|
||||||
|
* @default "as-needed"
|
||||||
|
*/
|
||||||
|
quoteProps: "as-needed" | "consistent" | "preserve";
|
||||||
|
/**
|
||||||
|
* Whether or not to indent the code inside <script> and <style> tags in Vue files.
|
||||||
|
* @default false
|
||||||
|
*/
|
||||||
|
vueIndentScriptAndStyle: boolean;
|
||||||
|
/**
|
||||||
|
* Control whether Prettier formats quoted code embedded in the file.
|
||||||
|
* @default "auto"
|
||||||
|
*/
|
||||||
|
embeddedLanguageFormatting: "auto" | "off";
|
||||||
|
/**
|
||||||
|
* Enforce single attribute per line in HTML, Vue and JSX.
|
||||||
|
* @default false
|
||||||
|
*/
|
||||||
|
singleAttributePerLine: boolean;
|
||||||
|
/**
|
||||||
|
* Where to print operators when binary expressions wrap lines.
|
||||||
|
* @default "end"
|
||||||
|
*/
|
||||||
|
experimentalOperatorPosition: "start" | "end";
|
||||||
|
/**
|
||||||
|
* Use curious ternaries, with the question mark after the condition, instead
|
||||||
|
* of on the same line as the consequent.
|
||||||
|
* @default false
|
||||||
|
*/
|
||||||
|
experimentalTernaries: boolean;
|
||||||
|
/**
|
||||||
|
* Put the `>` of a multi-line JSX element at the end of the last line instead of being alone on the next line.
|
||||||
|
* @default false
|
||||||
|
* @deprecated use bracketSameLine instead
|
||||||
|
*/
|
||||||
|
jsxBracketSameLine?: boolean;
|
||||||
|
/**
|
||||||
|
* Arbitrary additional values on an options object are always allowed.
|
||||||
|
*/
|
||||||
|
[_: string]: unknown;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ParserOptions<T = any> extends RequiredOptions {
|
||||||
|
locStart: (node: T) => number;
|
||||||
|
locEnd: (node: T) => number;
|
||||||
|
originalText: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Plugin<T = any> {
|
||||||
|
languages?: SupportLanguage[] | undefined;
|
||||||
|
parsers?: { [parserName: string]: Parser<T> } | undefined;
|
||||||
|
printers?: { [astFormat: string]: Printer<T> } | undefined;
|
||||||
|
options?: SupportOptions | undefined;
|
||||||
|
defaultOptions?: Partial<RequiredOptions> | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Parser<T = any> {
|
||||||
|
parse: (text: string, options: ParserOptions<T>) => T | Promise<T>;
|
||||||
|
astFormat: string;
|
||||||
|
hasPragma?: ((text: string) => boolean) | undefined;
|
||||||
|
hasIgnorePragma?: ((text: string) => boolean) | undefined;
|
||||||
|
locStart: (node: T) => number;
|
||||||
|
locEnd: (node: T) => number;
|
||||||
|
preprocess?:
|
||||||
|
| ((text: string, options: ParserOptions<T>) => string | Promise<string>)
|
||||||
|
| undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface Printer<T = any> {
|
||||||
|
print(
|
||||||
|
path: AstPath<T>,
|
||||||
|
options: ParserOptions<T>,
|
||||||
|
print: (path: AstPath<T>) => Doc,
|
||||||
|
args?: unknown,
|
||||||
|
): Doc;
|
||||||
|
printPrettierIgnored?(
|
||||||
|
path: AstPath<T>,
|
||||||
|
options: ParserOptions<T>,
|
||||||
|
print: (path: AstPath<T>) => Doc,
|
||||||
|
args?: unknown,
|
||||||
|
): Doc;
|
||||||
|
embed?:
|
||||||
|
| ((
|
||||||
|
path: AstPath,
|
||||||
|
options: Options,
|
||||||
|
) =>
|
||||||
|
| ((
|
||||||
|
textToDoc: (text: string, options: Options) => Promise<Doc>,
|
||||||
|
print: (
|
||||||
|
selector?: string | number | Array<string | number> | AstPath,
|
||||||
|
) => Doc,
|
||||||
|
path: AstPath,
|
||||||
|
options: Options,
|
||||||
|
) => Promise<Doc | undefined> | Doc | undefined)
|
||||||
|
| Doc
|
||||||
|
| null)
|
||||||
|
| undefined;
|
||||||
|
preprocess?:
|
||||||
|
| ((ast: T, options: ParserOptions<T>) => T | Promise<T>)
|
||||||
|
| undefined;
|
||||||
|
insertPragma?: (text: string) => string;
|
||||||
|
/**
|
||||||
|
* @returns `null` if you want to remove this node
|
||||||
|
* @returns `void` if you want to use modified `cloned`
|
||||||
|
* @returns anything if you want to replace the node with it
|
||||||
|
*/
|
||||||
|
massageAstNode?:
|
||||||
|
| ((original: any, cloned: any, parent: any) => any)
|
||||||
|
| undefined;
|
||||||
|
hasPrettierIgnore?: ((path: AstPath<T>) => boolean) | undefined;
|
||||||
|
canAttachComment?: ((node: T, ancestors: T[]) => boolean) | undefined;
|
||||||
|
isBlockComment?: ((node: T) => boolean) | undefined;
|
||||||
|
willPrintOwnComments?: ((path: AstPath<T>) => boolean) | undefined;
|
||||||
|
printComment?:
|
||||||
|
| ((commentPath: AstPath<T>, options: ParserOptions<T>) => Doc)
|
||||||
|
| undefined;
|
||||||
|
/**
|
||||||
|
* By default, Prettier searches all object properties (except for a few predefined ones) of each node recursively.
|
||||||
|
* This function can be provided to override that behavior.
|
||||||
|
* @param node The node whose children should be returned.
|
||||||
|
* @param options Current options.
|
||||||
|
* @returns `[]` if the node has no children or `undefined` to fall back on the default behavior.
|
||||||
|
*/
|
||||||
|
getCommentChildNodes?:
|
||||||
|
| ((node: T, options: ParserOptions<T>) => T[] | undefined)
|
||||||
|
| undefined;
|
||||||
|
handleComments?:
|
||||||
|
| {
|
||||||
|
ownLine?:
|
||||||
|
| ((
|
||||||
|
commentNode: any,
|
||||||
|
text: string,
|
||||||
|
options: ParserOptions<T>,
|
||||||
|
ast: T,
|
||||||
|
isLastComment: boolean,
|
||||||
|
) => boolean)
|
||||||
|
| undefined;
|
||||||
|
endOfLine?:
|
||||||
|
| ((
|
||||||
|
commentNode: any,
|
||||||
|
text: string,
|
||||||
|
options: ParserOptions<T>,
|
||||||
|
ast: T,
|
||||||
|
isLastComment: boolean,
|
||||||
|
) => boolean)
|
||||||
|
| undefined;
|
||||||
|
remaining?:
|
||||||
|
| ((
|
||||||
|
commentNode: any,
|
||||||
|
text: string,
|
||||||
|
options: ParserOptions<T>,
|
||||||
|
ast: T,
|
||||||
|
isLastComment: boolean,
|
||||||
|
) => boolean)
|
||||||
|
| undefined;
|
||||||
|
}
|
||||||
|
| undefined;
|
||||||
|
getVisitorKeys?:
|
||||||
|
| ((node: T, nonTraversableKeys: Set<string>) => string[])
|
||||||
|
| undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CursorOptions extends Options {
|
||||||
|
/**
|
||||||
|
* Specify where the cursor is.
|
||||||
|
*/
|
||||||
|
cursorOffset: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CursorResult {
|
||||||
|
formatted: string;
|
||||||
|
cursorOffset: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* `format` is used to format text using Prettier. [Options](https://prettier.io/docs/options) may be provided to override the defaults.
|
||||||
|
*/
|
||||||
|
export function format(source: string, options?: Options): Promise<string>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* `check` checks to see if the file has been formatted with Prettier given those options and returns a `Boolean`.
|
||||||
|
* This is similar to the `--list-different` parameter in the CLI and is useful for running Prettier in CI scenarios.
|
||||||
|
*/
|
||||||
|
export function check(source: string, options?: Options): Promise<boolean>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* `formatWithCursor` both formats the code, and translates a cursor position from unformatted code to formatted code.
|
||||||
|
* This is useful for editor integrations, to prevent the cursor from moving when code is formatted.
|
||||||
|
*
|
||||||
|
* The `cursorOffset` option should be provided, to specify where the cursor is.
|
||||||
|
*/
|
||||||
|
export function formatWithCursor(
|
||||||
|
source: string,
|
||||||
|
options: CursorOptions,
|
||||||
|
): Promise<CursorResult>;
|
||||||
|
|
||||||
|
export interface ResolveConfigOptions {
|
||||||
|
/**
|
||||||
|
* If set to `false`, all caching will be bypassed.
|
||||||
|
*/
|
||||||
|
useCache?: boolean | undefined;
|
||||||
|
/**
|
||||||
|
* Pass directly the path of the config file if you don't wish to search for it.
|
||||||
|
*/
|
||||||
|
config?: string | URL | undefined;
|
||||||
|
/**
|
||||||
|
* If set to `true` and an `.editorconfig` file is in your project,
|
||||||
|
* Prettier will parse it and convert its properties to the corresponding prettier configuration.
|
||||||
|
* This configuration will be overridden by `.prettierrc`, etc. Currently,
|
||||||
|
* the following EditorConfig properties are supported:
|
||||||
|
* - indent_style
|
||||||
|
* - indent_size/tab_width
|
||||||
|
* - max_line_length
|
||||||
|
*/
|
||||||
|
editorconfig?: boolean | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* `resolveConfig` can be used to resolve configuration for a given source file,
|
||||||
|
* passing its path or url as the first argument. The config search will start at
|
||||||
|
* the directory of the file location and continue to search up the directory.
|
||||||
|
*
|
||||||
|
* A promise is returned which will resolve to:
|
||||||
|
*
|
||||||
|
* - An options object, providing a [config file](https://prettier.io/docs/configuration) was found.
|
||||||
|
* - `null`, if no file was found.
|
||||||
|
*
|
||||||
|
* The promise will be rejected if there was an error parsing the configuration file.
|
||||||
|
*/
|
||||||
|
export function resolveConfig(
|
||||||
|
fileUrlOrPath: string | URL,
|
||||||
|
options?: ResolveConfigOptions,
|
||||||
|
): Promise<Options | null>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* `resolveConfigFile` can be used to find the path of the Prettier configuration file,
|
||||||
|
* that will be used when resolving the config (i.e. when calling `resolveConfig`).
|
||||||
|
*
|
||||||
|
* A promise is returned which will resolve to:
|
||||||
|
*
|
||||||
|
* - The path of the configuration file.
|
||||||
|
* - `null`, if no file was found.
|
||||||
|
*
|
||||||
|
* The promise will be rejected if there was an error parsing the configuration file.
|
||||||
|
*/
|
||||||
|
export function resolveConfigFile(
|
||||||
|
fileUrlOrPath?: string | URL,
|
||||||
|
): Promise<string | null>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* As you repeatedly call `resolveConfig`, the file system structure will be cached for performance. This function will clear the cache.
|
||||||
|
* Generally this is only needed for editor integrations that know that the file system has changed since the last format took place.
|
||||||
|
*/
|
||||||
|
export function clearConfigCache(): Promise<void>;
|
||||||
|
|
||||||
|
export interface SupportLanguage {
|
||||||
|
name: string;
|
||||||
|
parsers: BuiltInParserName[] | string[];
|
||||||
|
group?: string | undefined;
|
||||||
|
tmScope?: string | undefined;
|
||||||
|
aceMode?: string | undefined;
|
||||||
|
codemirrorMode?: string | undefined;
|
||||||
|
codemirrorMimeType?: string | undefined;
|
||||||
|
aliases?: string[] | undefined;
|
||||||
|
extensions?: string[] | undefined;
|
||||||
|
filenames?: string[] | undefined;
|
||||||
|
linguistLanguageId?: number | undefined;
|
||||||
|
vscodeLanguageIds?: string[] | undefined;
|
||||||
|
interpreters?: string[] | undefined;
|
||||||
|
isSupported?: ((options: { filepath: string }) => boolean) | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface SupportOptionRange {
|
||||||
|
start: number;
|
||||||
|
end: number;
|
||||||
|
step: number;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type SupportOptionType =
|
||||||
|
| "int"
|
||||||
|
| "string"
|
||||||
|
| "boolean"
|
||||||
|
| "choice"
|
||||||
|
| "path";
|
||||||
|
|
||||||
|
export type CoreCategoryType =
|
||||||
|
| "Config"
|
||||||
|
| "Editor"
|
||||||
|
| "Format"
|
||||||
|
| "Other"
|
||||||
|
| "Output"
|
||||||
|
| "Global"
|
||||||
|
| "Special";
|
||||||
|
|
||||||
|
export interface BaseSupportOption<Type extends SupportOptionType> {
|
||||||
|
readonly name?: string | undefined;
|
||||||
|
/**
|
||||||
|
* Usually you can use {@link CoreCategoryType}
|
||||||
|
*/
|
||||||
|
category: string;
|
||||||
|
/**
|
||||||
|
* The type of the option.
|
||||||
|
*
|
||||||
|
* When passing a type other than the ones listed below, the option is
|
||||||
|
* treated as taking any string as argument, and `--option <${type}>` will
|
||||||
|
* be displayed in --help.
|
||||||
|
*/
|
||||||
|
type: Type;
|
||||||
|
/**
|
||||||
|
* Indicate that the option is deprecated.
|
||||||
|
*
|
||||||
|
* Use a string to add an extra message to --help for the option,
|
||||||
|
* for example to suggest a replacement option.
|
||||||
|
*/
|
||||||
|
deprecated?: true | string | undefined;
|
||||||
|
/**
|
||||||
|
* Description to be displayed in --help. If omitted, the option won't be
|
||||||
|
* shown at all in --help.
|
||||||
|
*/
|
||||||
|
description?: string | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IntSupportOption extends BaseSupportOption<"int"> {
|
||||||
|
default?: number | undefined;
|
||||||
|
array?: false | undefined;
|
||||||
|
range?: SupportOptionRange | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface IntArraySupportOption extends BaseSupportOption<"int"> {
|
||||||
|
default?: Array<{ value: number[] }> | undefined;
|
||||||
|
array: true;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface StringSupportOption extends BaseSupportOption<"string"> {
|
||||||
|
default?: string | undefined;
|
||||||
|
array?: false | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface StringArraySupportOption extends BaseSupportOption<"string"> {
|
||||||
|
default?: Array<{ value: string[] }> | undefined;
|
||||||
|
array: true;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BooleanSupportOption extends BaseSupportOption<"boolean"> {
|
||||||
|
default?: boolean | undefined;
|
||||||
|
array?: false | undefined;
|
||||||
|
description: string;
|
||||||
|
oppositeDescription?: string | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface BooleanArraySupportOption extends BaseSupportOption<"boolean"> {
|
||||||
|
default?: Array<{ value: boolean[] }> | undefined;
|
||||||
|
array: true;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ChoiceSupportOption<
|
||||||
|
Value = any,
|
||||||
|
> extends BaseSupportOption<"choice"> {
|
||||||
|
default?: Value | Array<{ value: Value }> | undefined;
|
||||||
|
description: string;
|
||||||
|
choices: Array<{
|
||||||
|
value: Value;
|
||||||
|
description: string;
|
||||||
|
}>;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PathSupportOption extends BaseSupportOption<"path"> {
|
||||||
|
default?: string | undefined;
|
||||||
|
array?: false | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface PathArraySupportOption extends BaseSupportOption<"path"> {
|
||||||
|
default?: Array<{ value: string[] }> | undefined;
|
||||||
|
array: true;
|
||||||
|
}
|
||||||
|
|
||||||
|
export type SupportOption =
|
||||||
|
| IntSupportOption
|
||||||
|
| IntArraySupportOption
|
||||||
|
| StringSupportOption
|
||||||
|
| StringArraySupportOption
|
||||||
|
| BooleanSupportOption
|
||||||
|
| BooleanArraySupportOption
|
||||||
|
| ChoiceSupportOption
|
||||||
|
| PathSupportOption
|
||||||
|
| PathArraySupportOption;
|
||||||
|
|
||||||
|
export interface SupportOptions extends Record<string, SupportOption> {}
|
||||||
|
|
||||||
|
export interface SupportInfo {
|
||||||
|
languages: SupportLanguage[];
|
||||||
|
options: SupportOption[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface FileInfoOptions {
|
||||||
|
ignorePath?: string | URL | (string | URL)[] | undefined;
|
||||||
|
withNodeModules?: boolean | undefined;
|
||||||
|
plugins?: Array<string | URL | Plugin> | undefined;
|
||||||
|
resolveConfig?: boolean | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface FileInfoResult {
|
||||||
|
ignored: boolean;
|
||||||
|
inferredParser: string | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function getFileInfo(
|
||||||
|
file: string | URL,
|
||||||
|
options?: FileInfoOptions,
|
||||||
|
): Promise<FileInfoResult>;
|
||||||
|
|
||||||
|
export interface SupportInfoOptions {
|
||||||
|
plugins?: Array<string | URL | Plugin> | undefined;
|
||||||
|
showDeprecated?: boolean | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an object representing the parsers, languages and file types Prettier supports for the current version.
|
||||||
|
*/
|
||||||
|
export function getSupportInfo(
|
||||||
|
options?: SupportInfoOptions,
|
||||||
|
): Promise<SupportInfo>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* `version` field in `package.json`
|
||||||
|
*/
|
||||||
|
export const version: string;
|
||||||
|
|
||||||
|
// https://github.com/prettier/prettier/blob/main/src/utilities/public.js
|
||||||
|
export namespace util {
|
||||||
|
interface SkipOptions {
|
||||||
|
backwards?: boolean | undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
type Quote = "'" | '"';
|
||||||
|
|
||||||
|
function getMaxContinuousCount(text: string, searchString: string): number;
|
||||||
|
|
||||||
|
function getStringWidth(text: string): number;
|
||||||
|
|
||||||
|
function getAlignmentSize(
|
||||||
|
text: string,
|
||||||
|
tabWidth: number,
|
||||||
|
startIndex?: number | undefined,
|
||||||
|
): number;
|
||||||
|
|
||||||
|
function getIndentSize(value: string, tabWidth: number): number;
|
||||||
|
|
||||||
|
function skipNewline(
|
||||||
|
text: string,
|
||||||
|
startIndex: number | false,
|
||||||
|
options?: SkipOptions | undefined,
|
||||||
|
): number | false;
|
||||||
|
|
||||||
|
function skipInlineComment(
|
||||||
|
text: string,
|
||||||
|
startIndex: number | false,
|
||||||
|
): number | false;
|
||||||
|
|
||||||
|
function skipTrailingComment(
|
||||||
|
text: string,
|
||||||
|
startIndex: number | false,
|
||||||
|
): number | false;
|
||||||
|
|
||||||
|
function skipTrailingComment(
|
||||||
|
text: string,
|
||||||
|
startIndex: number | false,
|
||||||
|
): number | false;
|
||||||
|
|
||||||
|
function hasNewline(
|
||||||
|
text: string,
|
||||||
|
startIndex: number,
|
||||||
|
options?: SkipOptions | undefined,
|
||||||
|
): boolean;
|
||||||
|
|
||||||
|
function hasNewlineInRange(
|
||||||
|
text: string,
|
||||||
|
startIndex: number,
|
||||||
|
endIndex: number,
|
||||||
|
): boolean;
|
||||||
|
|
||||||
|
function hasSpaces(
|
||||||
|
text: string,
|
||||||
|
startIndex: number,
|
||||||
|
options?: SkipOptions | undefined,
|
||||||
|
): boolean;
|
||||||
|
|
||||||
|
function getNextNonSpaceNonCommentCharacterIndex(
|
||||||
|
text: string,
|
||||||
|
startIndex: number,
|
||||||
|
): number | false;
|
||||||
|
|
||||||
|
function getNextNonSpaceNonCommentCharacter(
|
||||||
|
text: string,
|
||||||
|
startIndex: number,
|
||||||
|
): string;
|
||||||
|
|
||||||
|
function isNextLineEmpty(text: string, startIndex: number): boolean;
|
||||||
|
|
||||||
|
function isPreviousLineEmpty(text: string, startIndex: number): boolean;
|
||||||
|
|
||||||
|
function makeString(
|
||||||
|
rawText: string,
|
||||||
|
enclosingQuote: Quote,
|
||||||
|
unescapeUnnecessaryEscapes?: boolean | undefined,
|
||||||
|
): string;
|
||||||
|
|
||||||
|
function skip(
|
||||||
|
characters: string | RegExp,
|
||||||
|
): (
|
||||||
|
text: string,
|
||||||
|
startIndex: number | false,
|
||||||
|
options?: SkipOptions,
|
||||||
|
) => number | false;
|
||||||
|
|
||||||
|
const skipWhitespace: (
|
||||||
|
text: string,
|
||||||
|
startIndex: number | false,
|
||||||
|
options?: SkipOptions,
|
||||||
|
) => number | false;
|
||||||
|
|
||||||
|
const skipSpaces: (
|
||||||
|
text: string,
|
||||||
|
startIndex: number | false,
|
||||||
|
options?: SkipOptions,
|
||||||
|
) => number | false;
|
||||||
|
|
||||||
|
const skipToLineEnd: (
|
||||||
|
text: string,
|
||||||
|
startIndex: number | false,
|
||||||
|
options?: SkipOptions,
|
||||||
|
) => number | false;
|
||||||
|
|
||||||
|
const skipEverythingButNewLine: (
|
||||||
|
text: string,
|
||||||
|
startIndex: number | false,
|
||||||
|
options?: SkipOptions,
|
||||||
|
) => number | false;
|
||||||
|
|
||||||
|
function addLeadingComment(node: any, comment: any): void;
|
||||||
|
|
||||||
|
function addDanglingComment(node: any, comment: any, marker: any): void;
|
||||||
|
|
||||||
|
function addTrailingComment(node: any, comment: any): void;
|
||||||
|
|
||||||
|
function getPreferredQuote(
|
||||||
|
text: string,
|
||||||
|
preferredQuoteOrPreferSingleQuote: Quote | boolean,
|
||||||
|
): Quote;
|
||||||
|
}
|
||||||
+18793
File diff suppressed because one or more lines are too long
Generated
Vendored
+2841
File diff suppressed because it is too large
Load Diff
Generated
Vendored
+12790
File diff suppressed because one or more lines are too long
+6229
File diff suppressed because it is too large
Load Diff
+203
@@ -0,0 +1,203 @@
|
|||||||
|
{
|
||||||
|
"name": "prettier",
|
||||||
|
"version": "3.7.4",
|
||||||
|
"description": "Prettier is an opinionated code formatter",
|
||||||
|
"bin": "./bin/prettier.cjs",
|
||||||
|
"repository": "prettier/prettier",
|
||||||
|
"funding": "https://github.com/prettier/prettier?sponsor=1",
|
||||||
|
"homepage": "https://prettier.io",
|
||||||
|
"author": "James Long",
|
||||||
|
"license": "MIT",
|
||||||
|
"main": "./index.cjs",
|
||||||
|
"browser": "./standalone.js",
|
||||||
|
"unpkg": "./standalone.js",
|
||||||
|
"exports": {
|
||||||
|
".": {
|
||||||
|
"types": "./index.d.ts",
|
||||||
|
"require": "./index.cjs",
|
||||||
|
"browser": {
|
||||||
|
"import": "./standalone.mjs",
|
||||||
|
"default": "./standalone.js"
|
||||||
|
},
|
||||||
|
"default": "./index.mjs"
|
||||||
|
},
|
||||||
|
"./*": "./*",
|
||||||
|
"./doc": {
|
||||||
|
"types": "./doc.d.ts",
|
||||||
|
"require": "./doc.js",
|
||||||
|
"default": "./doc.mjs"
|
||||||
|
},
|
||||||
|
"./standalone": {
|
||||||
|
"types": "./standalone.d.ts",
|
||||||
|
"require": "./standalone.js",
|
||||||
|
"default": "./standalone.mjs"
|
||||||
|
},
|
||||||
|
"./plugins/estree": {
|
||||||
|
"types": "./plugins/estree.d.ts",
|
||||||
|
"require": "./plugins/estree.js",
|
||||||
|
"default": "./plugins/estree.mjs"
|
||||||
|
},
|
||||||
|
"./plugins/babel": {
|
||||||
|
"types": "./plugins/babel.d.ts",
|
||||||
|
"require": "./plugins/babel.js",
|
||||||
|
"default": "./plugins/babel.mjs"
|
||||||
|
},
|
||||||
|
"./plugins/flow": {
|
||||||
|
"types": "./plugins/flow.d.ts",
|
||||||
|
"require": "./plugins/flow.js",
|
||||||
|
"default": "./plugins/flow.mjs"
|
||||||
|
},
|
||||||
|
"./plugins/typescript": {
|
||||||
|
"types": "./plugins/typescript.d.ts",
|
||||||
|
"require": "./plugins/typescript.js",
|
||||||
|
"default": "./plugins/typescript.mjs"
|
||||||
|
},
|
||||||
|
"./plugins/acorn": {
|
||||||
|
"types": "./plugins/acorn.d.ts",
|
||||||
|
"require": "./plugins/acorn.js",
|
||||||
|
"default": "./plugins/acorn.mjs"
|
||||||
|
},
|
||||||
|
"./plugins/meriyah": {
|
||||||
|
"types": "./plugins/meriyah.d.ts",
|
||||||
|
"require": "./plugins/meriyah.js",
|
||||||
|
"default": "./plugins/meriyah.mjs"
|
||||||
|
},
|
||||||
|
"./plugins/angular": {
|
||||||
|
"types": "./plugins/angular.d.ts",
|
||||||
|
"require": "./plugins/angular.js",
|
||||||
|
"default": "./plugins/angular.mjs"
|
||||||
|
},
|
||||||
|
"./plugins/postcss": {
|
||||||
|
"types": "./plugins/postcss.d.ts",
|
||||||
|
"require": "./plugins/postcss.js",
|
||||||
|
"default": "./plugins/postcss.mjs"
|
||||||
|
},
|
||||||
|
"./plugins/graphql": {
|
||||||
|
"types": "./plugins/graphql.d.ts",
|
||||||
|
"require": "./plugins/graphql.js",
|
||||||
|
"default": "./plugins/graphql.mjs"
|
||||||
|
},
|
||||||
|
"./plugins/markdown": {
|
||||||
|
"types": "./plugins/markdown.d.ts",
|
||||||
|
"require": "./plugins/markdown.js",
|
||||||
|
"default": "./plugins/markdown.mjs"
|
||||||
|
},
|
||||||
|
"./plugins/glimmer": {
|
||||||
|
"types": "./plugins/glimmer.d.ts",
|
||||||
|
"require": "./plugins/glimmer.js",
|
||||||
|
"default": "./plugins/glimmer.mjs"
|
||||||
|
},
|
||||||
|
"./plugins/html": {
|
||||||
|
"types": "./plugins/html.d.ts",
|
||||||
|
"require": "./plugins/html.js",
|
||||||
|
"default": "./plugins/html.mjs"
|
||||||
|
},
|
||||||
|
"./plugins/yaml": {
|
||||||
|
"types": "./plugins/yaml.d.ts",
|
||||||
|
"require": "./plugins/yaml.js",
|
||||||
|
"default": "./plugins/yaml.mjs"
|
||||||
|
},
|
||||||
|
"./esm/standalone.mjs": "./standalone.mjs",
|
||||||
|
"./parser-babel": "./plugins/babel.js",
|
||||||
|
"./parser-babel.js": "./plugins/babel.js",
|
||||||
|
"./esm/parser-babel.mjs": "./plugins/babel.mjs",
|
||||||
|
"./parser-flow": "./plugins/flow.js",
|
||||||
|
"./parser-flow.js": "./plugins/flow.js",
|
||||||
|
"./esm/parser-flow.mjs": "./plugins/flow.mjs",
|
||||||
|
"./parser-typescript": "./plugins/typescript.js",
|
||||||
|
"./parser-typescript.js": "./plugins/typescript.js",
|
||||||
|
"./esm/parser-typescript.mjs": "./plugins/typescript.mjs",
|
||||||
|
"./parser-espree": "./plugins/acorn.js",
|
||||||
|
"./parser-espree.js": "./plugins/acorn.js",
|
||||||
|
"./esm/parser-espree.mjs": "./plugins/acorn.mjs",
|
||||||
|
"./parser-meriyah": "./plugins/meriyah.js",
|
||||||
|
"./parser-meriyah.js": "./plugins/meriyah.js",
|
||||||
|
"./esm/parser-meriyah.mjs": "./plugins/meriyah.mjs",
|
||||||
|
"./parser-angular": "./plugins/angular.js",
|
||||||
|
"./parser-angular.js": "./plugins/angular.js",
|
||||||
|
"./esm/parser-angular.mjs": "./plugins/angular.mjs",
|
||||||
|
"./parser-postcss": "./plugins/postcss.js",
|
||||||
|
"./parser-postcss.js": "./plugins/postcss.js",
|
||||||
|
"./esm/parser-postcss.mjs": "./plugins/postcss.mjs",
|
||||||
|
"./parser-graphql": "./plugins/graphql.js",
|
||||||
|
"./parser-graphql.js": "./plugins/graphql.js",
|
||||||
|
"./esm/parser-graphql.mjs": "./plugins/graphql.mjs",
|
||||||
|
"./parser-markdown": "./plugins/markdown.js",
|
||||||
|
"./parser-markdown.js": "./plugins/markdown.js",
|
||||||
|
"./esm/parser-markdown.mjs": "./plugins/markdown.mjs",
|
||||||
|
"./parser-glimmer": "./plugins/glimmer.js",
|
||||||
|
"./parser-glimmer.js": "./plugins/glimmer.js",
|
||||||
|
"./esm/parser-glimmer.mjs": "./plugins/glimmer.mjs",
|
||||||
|
"./parser-html": "./plugins/html.js",
|
||||||
|
"./parser-html.js": "./plugins/html.js",
|
||||||
|
"./esm/parser-html.mjs": "./plugins/html.mjs",
|
||||||
|
"./parser-yaml": "./plugins/yaml.js",
|
||||||
|
"./parser-yaml.js": "./plugins/yaml.js",
|
||||||
|
"./esm/parser-yaml.mjs": "./plugins/yaml.mjs"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
},
|
||||||
|
"files": [
|
||||||
|
"LICENSE",
|
||||||
|
"README.md",
|
||||||
|
"THIRD-PARTY-NOTICES.md",
|
||||||
|
"bin/prettier.cjs",
|
||||||
|
"doc.d.ts",
|
||||||
|
"doc.js",
|
||||||
|
"doc.mjs",
|
||||||
|
"index.cjs",
|
||||||
|
"index.d.ts",
|
||||||
|
"index.d.ts",
|
||||||
|
"index.mjs",
|
||||||
|
"internal/experimental-cli-worker.mjs",
|
||||||
|
"internal/experimental-cli.mjs",
|
||||||
|
"internal/legacy-cli.mjs",
|
||||||
|
"package.json",
|
||||||
|
"plugins/acorn.d.ts",
|
||||||
|
"plugins/acorn.js",
|
||||||
|
"plugins/acorn.mjs",
|
||||||
|
"plugins/angular.d.ts",
|
||||||
|
"plugins/angular.js",
|
||||||
|
"plugins/angular.mjs",
|
||||||
|
"plugins/babel.d.ts",
|
||||||
|
"plugins/babel.js",
|
||||||
|
"plugins/babel.mjs",
|
||||||
|
"plugins/estree.d.ts",
|
||||||
|
"plugins/estree.js",
|
||||||
|
"plugins/estree.mjs",
|
||||||
|
"plugins/flow.d.ts",
|
||||||
|
"plugins/flow.js",
|
||||||
|
"plugins/flow.mjs",
|
||||||
|
"plugins/glimmer.d.ts",
|
||||||
|
"plugins/glimmer.js",
|
||||||
|
"plugins/glimmer.mjs",
|
||||||
|
"plugins/graphql.d.ts",
|
||||||
|
"plugins/graphql.js",
|
||||||
|
"plugins/graphql.mjs",
|
||||||
|
"plugins/html.d.ts",
|
||||||
|
"plugins/html.js",
|
||||||
|
"plugins/html.mjs",
|
||||||
|
"plugins/markdown.d.ts",
|
||||||
|
"plugins/markdown.js",
|
||||||
|
"plugins/markdown.mjs",
|
||||||
|
"plugins/meriyah.d.ts",
|
||||||
|
"plugins/meriyah.js",
|
||||||
|
"plugins/meriyah.mjs",
|
||||||
|
"plugins/postcss.d.ts",
|
||||||
|
"plugins/postcss.js",
|
||||||
|
"plugins/postcss.mjs",
|
||||||
|
"plugins/typescript.d.ts",
|
||||||
|
"plugins/typescript.js",
|
||||||
|
"plugins/typescript.mjs",
|
||||||
|
"plugins/yaml.d.ts",
|
||||||
|
"plugins/yaml.js",
|
||||||
|
"plugins/yaml.mjs",
|
||||||
|
"standalone.d.ts",
|
||||||
|
"standalone.js",
|
||||||
|
"standalone.mjs"
|
||||||
|
],
|
||||||
|
"preferUnplugged": true,
|
||||||
|
"sideEffects": false,
|
||||||
|
"type": "commonjs"
|
||||||
|
}
|
||||||
+6
@@ -0,0 +1,6 @@
|
|||||||
|
import { Parser } from "../index.js";
|
||||||
|
|
||||||
|
export declare const parsers: {
|
||||||
|
acorn: Parser;
|
||||||
|
espree: Parser;
|
||||||
|
};
|
||||||
+16
File diff suppressed because one or more lines are too long
+16
File diff suppressed because one or more lines are too long
+8
@@ -0,0 +1,8 @@
|
|||||||
|
import { Parser } from "../index.js";
|
||||||
|
|
||||||
|
export declare const parsers: {
|
||||||
|
__ng_action: Parser;
|
||||||
|
__ng_binding: Parser;
|
||||||
|
__ng_directive: Parser;
|
||||||
|
__ng_interpolation: Parser;
|
||||||
|
};
|
||||||
+4
File diff suppressed because one or more lines are too long
+4
File diff suppressed because one or more lines are too long
+18
@@ -0,0 +1,18 @@
|
|||||||
|
import { Parser } from "../index.js";
|
||||||
|
|
||||||
|
export declare const parsers: {
|
||||||
|
__babel_estree: Parser;
|
||||||
|
__js_expression: Parser;
|
||||||
|
__ts_expression: Parser;
|
||||||
|
__vue_event_binding: Parser;
|
||||||
|
__vue_expression: Parser;
|
||||||
|
__vue_ts_event_binding: Parser;
|
||||||
|
__vue_ts_expression: Parser;
|
||||||
|
babel: Parser;
|
||||||
|
"babel-flow": Parser;
|
||||||
|
"babel-ts": Parser;
|
||||||
|
json: Parser;
|
||||||
|
"json-stringify": Parser;
|
||||||
|
json5: Parser;
|
||||||
|
jsonc: Parser;
|
||||||
|
};
|
||||||
+15
File diff suppressed because one or more lines are too long
+15
File diff suppressed because one or more lines are too long
+1
@@ -0,0 +1 @@
|
|||||||
|
export {};
|
||||||
+44
File diff suppressed because one or more lines are too long
+44
File diff suppressed because one or more lines are too long
+5
@@ -0,0 +1,5 @@
|
|||||||
|
import { Parser } from "../index.js";
|
||||||
|
|
||||||
|
export declare const parsers: {
|
||||||
|
flow: Parser;
|
||||||
|
};
|
||||||
+20
File diff suppressed because one or more lines are too long
+20
File diff suppressed because one or more lines are too long
+5
@@ -0,0 +1,5 @@
|
|||||||
|
import { Parser } from "../index.js";
|
||||||
|
|
||||||
|
export declare const parsers: {
|
||||||
|
glimmer: Parser;
|
||||||
|
};
|
||||||
+37
File diff suppressed because one or more lines are too long
+37
File diff suppressed because one or more lines are too long
+5
@@ -0,0 +1,5 @@
|
|||||||
|
import { Parser } from "../index.js";
|
||||||
|
|
||||||
|
export declare const parsers: {
|
||||||
|
graphql: Parser;
|
||||||
|
};
|
||||||
+28
File diff suppressed because one or more lines are too long
+28
File diff suppressed because one or more lines are too long
+9
@@ -0,0 +1,9 @@
|
|||||||
|
import { Parser } from "../index.js";
|
||||||
|
|
||||||
|
export declare const parsers: {
|
||||||
|
angular: Parser;
|
||||||
|
html: Parser;
|
||||||
|
lwc: Parser;
|
||||||
|
mjml: Parser;
|
||||||
|
vue: Parser;
|
||||||
|
};
|
||||||
+24
File diff suppressed because one or more lines are too long
+24
File diff suppressed because one or more lines are too long
+7
@@ -0,0 +1,7 @@
|
|||||||
|
import { Parser } from "../index.js";
|
||||||
|
|
||||||
|
export declare const parsers: {
|
||||||
|
markdown: Parser;
|
||||||
|
mdx: Parser;
|
||||||
|
remark: Parser;
|
||||||
|
};
|
||||||
+62
File diff suppressed because one or more lines are too long
+62
File diff suppressed because one or more lines are too long
+5
@@ -0,0 +1,5 @@
|
|||||||
|
import { Parser } from "../index.js";
|
||||||
|
|
||||||
|
export declare const parsers: {
|
||||||
|
meriyah: Parser;
|
||||||
|
};
|
||||||
+5
File diff suppressed because one or more lines are too long
+5
File diff suppressed because one or more lines are too long
+7
@@ -0,0 +1,7 @@
|
|||||||
|
import { Parser } from "../index.js";
|
||||||
|
|
||||||
|
export declare const parsers: {
|
||||||
|
css: Parser;
|
||||||
|
less: Parser;
|
||||||
|
scss: Parser;
|
||||||
|
};
|
||||||
+61
File diff suppressed because one or more lines are too long
+61
File diff suppressed because one or more lines are too long
+5
@@ -0,0 +1,5 @@
|
|||||||
|
import { Parser } from "../index.js";
|
||||||
|
|
||||||
|
export declare const parsers: {
|
||||||
|
typescript: Parser;
|
||||||
|
};
|
||||||
+21
File diff suppressed because one or more lines are too long
+21
File diff suppressed because one or more lines are too long
+5
@@ -0,0 +1,5 @@
|
|||||||
|
import { Parser } from "../index.js";
|
||||||
|
|
||||||
|
export declare const parsers: {
|
||||||
|
yaml: Parser;
|
||||||
|
};
|
||||||
+159
File diff suppressed because one or more lines are too long
+159
File diff suppressed because one or more lines are too long
+33
@@ -0,0 +1,33 @@
|
|||||||
|
import { CursorOptions, CursorResult, Options, SupportInfo } from "./index.js";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* formatWithCursor both formats the code, and translates a cursor position from unformatted code to formatted code.
|
||||||
|
* This is useful for editor integrations, to prevent the cursor from moving when code is formatted
|
||||||
|
*
|
||||||
|
* The cursorOffset option should be provided, to specify where the cursor is.
|
||||||
|
*
|
||||||
|
* ```js
|
||||||
|
* await prettier.formatWithCursor(" 1", { cursorOffset: 2, parser: "babel" });
|
||||||
|
* ```
|
||||||
|
* `-> { formatted: "1;\n", cursorOffset: 1 }`
|
||||||
|
*/
|
||||||
|
export function formatWithCursor(
|
||||||
|
source: string,
|
||||||
|
options: CursorOptions,
|
||||||
|
): Promise<CursorResult>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* `format` is used to format text using Prettier. [Options](https://prettier.io/docs/options) may be provided to override the defaults.
|
||||||
|
*/
|
||||||
|
export function format(source: string, options?: Options): Promise<string>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* `check` checks to see if the file has been formatted with Prettier given those options and returns a `Boolean`.
|
||||||
|
* This is similar to the `--list-different` parameter in the CLI and is useful for running Prettier in CI scenarios.
|
||||||
|
*/
|
||||||
|
export function check(source: string, options?: Options): Promise<boolean>;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an object representing the parsers, languages and file types Prettier supports for the current version.
|
||||||
|
*/
|
||||||
|
export function getSupportInfo(): Promise<SupportInfo>;
|
||||||
+29
File diff suppressed because one or more lines are too long
+29
File diff suppressed because one or more lines are too long
+27
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"name": "b388654678d519d9",
|
||||||
|
"lockfileVersion": 3,
|
||||||
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"": {
|
||||||
|
"dependencies": {
|
||||||
|
"prettier": "^3.7.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/prettier": {
|
||||||
|
"version": "3.7.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz",
|
||||||
|
"integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==",
|
||||||
|
"license": "MIT",
|
||||||
|
"bin": {
|
||||||
|
"prettier": "bin/prettier.cjs"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"dependencies": {
|
||||||
|
"prettier": "^3.7.4"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -45,7 +45,7 @@ const AskOrganizer = memo<AskOrganizerProps>(
|
|||||||
}) => {
|
}) => {
|
||||||
// Analytics tracking for contact button clicks
|
// Analytics tracking for contact button clicks
|
||||||
const handleContactClick = (
|
const handleContactClick = (
|
||||||
event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>,
|
_event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>,
|
||||||
) => {
|
) => {
|
||||||
// Track contact button interaction
|
// Track contact button interaction
|
||||||
if (onContactClick) {
|
if (onContactClick) {
|
||||||
|
|||||||
+22
-32
@@ -89,47 +89,37 @@ const Button = memo<ButtonProps>(
|
|||||||
: hoverOutlineStyles[size];
|
: hoverOutlineStyles[size];
|
||||||
|
|
||||||
const baseStyles = `inline-flex items-center justify-start box-border ${sizeStyles[size]} rounded-[var(--radius-measures-radius-full)] ${fontStyles[size]} transition-all duration-500 ease-in-out cursor-pointer ${variantStyles[variant]} ${outlineStyles}`;
|
const baseStyles = `inline-flex items-center justify-start box-border ${sizeStyles[size]} rounded-[var(--radius-measures-radius-full)] ${fontStyles[size]} transition-all duration-500 ease-in-out cursor-pointer ${variantStyles[variant]} ${outlineStyles}`;
|
||||||
|
|
||||||
let finalVariant = variant;
|
|
||||||
if (disabled) {
|
|
||||||
finalVariant = "default";
|
|
||||||
}
|
|
||||||
|
|
||||||
const combinedStyles = `${baseStyles} ${className}`;
|
const combinedStyles = `${baseStyles} ${className}`;
|
||||||
|
|
||||||
const accessibilityProps = {
|
const sharedA11y = {
|
||||||
...(ariaLabel && { "aria-label": ariaLabel }),
|
...(ariaLabel && { "aria-label": ariaLabel }),
|
||||||
...(disabled && { "aria-disabled": "true" }),
|
...(disabled && { "aria-disabled": true }),
|
||||||
...(target && { target }),
|
|
||||||
...(rel && { rel }),
|
|
||||||
tabIndex: disabled ? -1 : 0,
|
tabIndex: disabled ? -1 : 0,
|
||||||
...props,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (href && !disabled) {
|
if (href && !disabled) {
|
||||||
return (
|
const anchorProps: React.AnchorHTMLAttributes<HTMLAnchorElement> = {
|
||||||
<a
|
href,
|
||||||
href={href}
|
className: combinedStyles,
|
||||||
className={combinedStyles}
|
onClick,
|
||||||
onClick={onClick}
|
...sharedA11y,
|
||||||
{...accessibilityProps}
|
...(target && { target }),
|
||||||
>
|
...(rel && { rel }),
|
||||||
{children}
|
};
|
||||||
</a>
|
|
||||||
);
|
return <a {...anchorProps}>{children}</a>;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
const buttonProps: React.ButtonHTMLAttributes<HTMLButtonElement> = {
|
||||||
<button
|
type,
|
||||||
type={type}
|
className: combinedStyles,
|
||||||
className={combinedStyles}
|
disabled,
|
||||||
disabled={disabled}
|
onClick,
|
||||||
onClick={onClick}
|
...sharedA11y,
|
||||||
{...accessibilityProps}
|
...props,
|
||||||
>
|
};
|
||||||
{children}
|
|
||||||
</button>
|
return <button {...buttonProps}>{children}</button>;
|
||||||
);
|
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -43,15 +43,9 @@ const Checkbox = memo<CheckboxProps>(
|
|||||||
const isInverse = mode === "inverse";
|
const isInverse = mode === "inverse";
|
||||||
|
|
||||||
// Base tokens (rough placeholders leveraging existing CSS variables)
|
// Base tokens (rough placeholders leveraging existing CSS variables)
|
||||||
const colorSurface = isInverse
|
|
||||||
? "var(--color-surface-inverse-primary)"
|
|
||||||
: "var(--color-surface-default-primary)";
|
|
||||||
const colorContent = isInverse
|
const colorContent = isInverse
|
||||||
? "var(--color-content-inverse-primary)"
|
? "var(--color-content-inverse-primary)"
|
||||||
: "var(--color-content-default-primary)";
|
: "var(--color-content-default-primary)";
|
||||||
const colorBrand = isInverse
|
|
||||||
? "var(--color-content-inverse-brand-primary)"
|
|
||||||
: "var(--color-content-default-brand-primary)";
|
|
||||||
|
|
||||||
// Visual container depending on state
|
// Visual container depending on state
|
||||||
const baseBox = `flex items-center justify-center shrink-0 w-[var(--measures-sizing-024)] h-[var(--measures-sizing-024)] rounded-[var(--measures-radius-medium)] transition-all duration-200 ease-in-out`;
|
const baseBox = `flex items-center justify-center shrink-0 w-[var(--measures-sizing-024)] h-[var(--measures-sizing-024)] rounded-[var(--measures-radius-medium)] transition-all duration-200 ease-in-out`;
|
||||||
@@ -106,8 +100,8 @@ const Checkbox = memo<CheckboxProps>(
|
|||||||
|
|
||||||
const accessibilityProps = {
|
const accessibilityProps = {
|
||||||
role: "checkbox" as const,
|
role: "checkbox" as const,
|
||||||
"aria-checked": checked ? "true" : "false",
|
"aria-checked": checked,
|
||||||
...(disabled && { "aria-disabled": "true", tabIndex: -1 }),
|
...(disabled && { "aria-disabled": true, tabIndex: -1 }),
|
||||||
...(!disabled && { tabIndex: 0 }),
|
...(!disabled && { tabIndex: 0 }),
|
||||||
...(ariaLabel && { "aria-label": ariaLabel }),
|
...(ariaLabel && { "aria-label": ariaLabel }),
|
||||||
...(label && !ariaLabel && { "aria-labelledby": `${checkboxId}-label` }),
|
...(label && !ariaLabel && { "aria-labelledby": `${checkboxId}-label` }),
|
||||||
|
|||||||
@@ -34,7 +34,6 @@ const ContentLockup = memo<ContentLockupProps>(
|
|||||||
subtitle,
|
subtitle,
|
||||||
description,
|
description,
|
||||||
ctaText,
|
ctaText,
|
||||||
ctaHref,
|
|
||||||
buttonClassName = "",
|
buttonClassName = "",
|
||||||
variant = "hero",
|
variant = "hero",
|
||||||
linkText,
|
linkText,
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ interface ContentThumbnailTemplateProps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const ContentThumbnailTemplate = memo<ContentThumbnailTemplateProps>(
|
const ContentThumbnailTemplate = memo<ContentThumbnailTemplateProps>(
|
||||||
({ post, className = "", variant = "vertical", slugOrder }) => {
|
({ post, className = "", variant = "vertical" }) => {
|
||||||
// Get article-specific background image from frontmatter
|
// Get article-specific background image from frontmatter
|
||||||
const getBackgroundImage = (
|
const getBackgroundImage = (
|
||||||
post: BlogPost,
|
post: BlogPost,
|
||||||
|
|||||||
@@ -59,7 +59,19 @@ const Header = memo(() => {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const renderNavigationItems = (size: string) => {
|
type NavSize =
|
||||||
|
| "default"
|
||||||
|
| "xsmall"
|
||||||
|
| "xsmallUseCases"
|
||||||
|
| "home"
|
||||||
|
| "homeMd"
|
||||||
|
| "homeUseCases"
|
||||||
|
| "large"
|
||||||
|
| "largeUseCases"
|
||||||
|
| "homeXlarge"
|
||||||
|
| "xlarge";
|
||||||
|
|
||||||
|
const renderNavigationItems = (size: NavSize) => {
|
||||||
return navigationItems.map((item, index) => (
|
return navigationItems.map((item, index) => (
|
||||||
<MenuBarItem
|
<MenuBarItem
|
||||||
key={index}
|
key={index}
|
||||||
@@ -91,7 +103,7 @@ const Header = memo(() => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const renderLoginButton = (size: string) => {
|
const renderLoginButton = (size: NavSize) => {
|
||||||
return (
|
return (
|
||||||
<MenuBarItem href="#" size={size} ariaLabel="Log in to your account">
|
<MenuBarItem href="#" size={size} ariaLabel="Log in to your account">
|
||||||
Log in
|
Log in
|
||||||
@@ -100,7 +112,7 @@ const Header = memo(() => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const renderCreateRuleButton = (
|
const renderCreateRuleButton = (
|
||||||
buttonSize: string,
|
buttonSize: "xsmall" | "small" | "medium" | "large" | "xlarge",
|
||||||
containerSize: "small" | "medium" | "large" | "xlarge",
|
containerSize: "small" | "medium" | "large" | "xlarge",
|
||||||
avatarSize: "small" | "medium" | "large" | "xlarge",
|
avatarSize: "small" | "medium" | "large" | "xlarge",
|
||||||
) => {
|
) => {
|
||||||
|
|||||||
@@ -67,7 +67,19 @@ const HomeHeader = memo(() => {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const renderNavigationItems = (size: string) => {
|
type NavSize =
|
||||||
|
| "default"
|
||||||
|
| "xsmall"
|
||||||
|
| "xsmallUseCases"
|
||||||
|
| "home"
|
||||||
|
| "homeMd"
|
||||||
|
| "homeUseCases"
|
||||||
|
| "large"
|
||||||
|
| "largeUseCases"
|
||||||
|
| "homeXlarge"
|
||||||
|
| "xlarge";
|
||||||
|
|
||||||
|
const renderNavigationItems = (size: NavSize) => {
|
||||||
return navigationItems.map((item, index) => (
|
return navigationItems.map((item, index) => (
|
||||||
<MenuBarItem
|
<MenuBarItem
|
||||||
key={index}
|
key={index}
|
||||||
@@ -125,7 +137,7 @@ const HomeHeader = memo(() => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
const renderLoginButton = (size: string) => {
|
const renderLoginButton = (size: NavSize) => {
|
||||||
return (
|
return (
|
||||||
<MenuBarItem
|
<MenuBarItem
|
||||||
href="#"
|
href="#"
|
||||||
@@ -139,7 +151,7 @@ const HomeHeader = memo(() => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const renderCreateRuleButton = (
|
const renderCreateRuleButton = (
|
||||||
buttonSize: string,
|
buttonSize: "xsmall" | "small" | "medium" | "large" | "xlarge",
|
||||||
containerSize: "small" | "medium" | "large" | "xlarge",
|
containerSize: "small" | "medium" | "large" | "xlarge",
|
||||||
avatarSize: "small" | "medium" | "large" | "xlarge",
|
avatarSize: "small" | "medium" | "large" | "xlarge",
|
||||||
) => {
|
) => {
|
||||||
|
|||||||
@@ -160,7 +160,7 @@ const MenuBarItem = memo<MenuBarItemProps>(
|
|||||||
|
|
||||||
const accessibilityProps = {
|
const accessibilityProps = {
|
||||||
...(ariaLabel && { "aria-label": ariaLabel }),
|
...(ariaLabel && { "aria-label": ariaLabel }),
|
||||||
...(disabled && { "aria-disabled": "true" }),
|
...(disabled && { "aria-disabled": true }),
|
||||||
role: "menuitem" as const,
|
role: "menuitem" as const,
|
||||||
tabIndex: disabled ? -1 : 0,
|
tabIndex: disabled ? -1 : 0,
|
||||||
...props,
|
...props,
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ interface NumberedCardProps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const NumberedCard = memo<NumberedCardProps>(
|
const NumberedCard = memo<NumberedCardProps>(
|
||||||
({ number, text, iconShape, iconColor }) => {
|
({ number, text, iconShape: _iconShape, iconColor: _iconColor }) => {
|
||||||
return (
|
return (
|
||||||
<div className="bg-[var(--color-surface-inverse-primary)] rounded-[12px] p-5 shadow-lg flex flex-col gap-4 sm:p-8 sm:gap-8 sm:flex-row sm:items-center lg:p-8 lg:gap-0 lg:flex-row lg:items-stretch lg:relative lg:h-[238px]">
|
<div className="bg-[var(--color-surface-inverse-primary)] rounded-[12px] p-5 shadow-lg flex flex-col gap-4 sm:p-8 sm:gap-8 sm:flex-row sm:items-center lg:p-8 lg:gap-0 lg:flex-row lg:items-stretch lg:relative lg:h-[238px]">
|
||||||
{/* Section Number - Top right (lg breakpoint) */}
|
{/* Section Number - Top right (lg breakpoint) */}
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ const QuoteBlock = memo<QuoteBlockProps>(
|
|||||||
type: "missing_props",
|
type: "missing_props",
|
||||||
message: "QuoteBlock requires quote and author props",
|
message: "QuoteBlock requires quote and author props",
|
||||||
quote: !!quote,
|
quote: !!quote,
|
||||||
author: !!author,
|
author,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return null; // Don't render if missing required props
|
return null; // Don't render if missing required props
|
||||||
@@ -184,7 +184,7 @@ const QuoteBlock = memo<QuoteBlockProps>(
|
|||||||
<div className="relative">
|
<div className="relative">
|
||||||
{!imageError ? (
|
{!imageError ? (
|
||||||
<Image
|
<Image
|
||||||
src={avatarSrc}
|
src={currentAvatarSrc}
|
||||||
alt={`Portrait of ${author}`}
|
alt={`Portrait of ${author}`}
|
||||||
width={64}
|
width={64}
|
||||||
height={64}
|
height={64}
|
||||||
|
|||||||
@@ -33,15 +33,9 @@ const RadioButton = ({
|
|||||||
const isInverse = mode === "inverse";
|
const isInverse = mode === "inverse";
|
||||||
|
|
||||||
// Base tokens (using same design tokens as Checkbox)
|
// Base tokens (using same design tokens as Checkbox)
|
||||||
const colorSurface = isInverse
|
|
||||||
? "var(--color-surface-inverse-primary)"
|
|
||||||
: "var(--color-surface-default-primary)";
|
|
||||||
const colorContent = isInverse
|
const colorContent = isInverse
|
||||||
? "var(--color-content-inverse-primary)"
|
? "var(--color-content-inverse-primary)"
|
||||||
: "var(--color-content-default-primary)";
|
: "var(--color-content-default-primary)";
|
||||||
const colorBrand = isInverse
|
|
||||||
? "var(--color-content-inverse-brand-primary)"
|
|
||||||
: "var(--color-content-default-brand-primary)";
|
|
||||||
|
|
||||||
// Visual container depending on state
|
// Visual container depending on state
|
||||||
const baseBox = `flex items-center justify-center shrink-0 w-[var(--measures-sizing-024)] h-[var(--measures-sizing-024)] rounded-[var(--measures-radius-medium)] transition-all duration-200 ease-in-out`;
|
const baseBox = `flex items-center justify-center shrink-0 w-[var(--measures-sizing-024)] h-[var(--measures-sizing-024)] rounded-[var(--measures-radius-medium)] transition-all duration-200 ease-in-out`;
|
||||||
@@ -89,7 +83,7 @@ const RadioButton = ({
|
|||||||
const radioId = id || `radio-${generatedId}`;
|
const radioId = id || `radio-${generatedId}`;
|
||||||
|
|
||||||
const handleToggle = useCallback(
|
const handleToggle = useCallback(
|
||||||
(e: React.MouseEvent | React.KeyboardEvent) => {
|
(_e: React.MouseEvent | React.KeyboardEvent) => {
|
||||||
if (!disabled && onChange && !checked) {
|
if (!disabled && onChange && !checked) {
|
||||||
onChange({ checked: true, value });
|
onChange({ checked: true, value });
|
||||||
}
|
}
|
||||||
@@ -118,8 +112,8 @@ const RadioButton = ({
|
|||||||
}}
|
}}
|
||||||
tabIndex={0}
|
tabIndex={0}
|
||||||
role="radio"
|
role="radio"
|
||||||
aria-checked={checked ? "true" : "false"}
|
aria-checked={checked}
|
||||||
{...(disabled && { "aria-disabled": "true" })}
|
{...(disabled && { "aria-disabled": true })}
|
||||||
{...(ariaLabel && { "aria-label": ariaLabel })}
|
{...(ariaLabel && { "aria-label": ariaLabel })}
|
||||||
{...(label && !ariaLabel && { "aria-labelledby": `${radioId}-label` })}
|
{...(label && !ariaLabel && { "aria-labelledby": `${radioId}-label` })}
|
||||||
id={radioId}
|
id={radioId}
|
||||||
|
|||||||
@@ -52,7 +52,9 @@ const RelatedArticles = memo<RelatedArticlesProps>(
|
|||||||
transform: isMobile
|
transform: isMobile
|
||||||
? `translateX(calc(50% - 130px - ${currentIndex * 260}px))`
|
? `translateX(calc(50% - 130px - ${currentIndex * 260}px))`
|
||||||
: "none",
|
: "none",
|
||||||
scrollBehavior: !isMobile ? "smooth" : "auto",
|
scrollBehavior: (!isMobile
|
||||||
|
? "smooth"
|
||||||
|
: "auto") as React.CSSProperties["scrollBehavior"],
|
||||||
}),
|
}),
|
||||||
[isMobile, currentIndex],
|
[isMobile, currentIndex],
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import React, {
|
|||||||
useEffect,
|
useEffect,
|
||||||
useCallback,
|
useCallback,
|
||||||
memo,
|
memo,
|
||||||
|
useImperativeHandle,
|
||||||
} from "react";
|
} from "react";
|
||||||
import SelectDropdown from "./SelectDropdown";
|
import SelectDropdown from "./SelectDropdown";
|
||||||
import SelectOption from "./SelectOption";
|
import SelectOption from "./SelectOption";
|
||||||
@@ -61,6 +62,11 @@ const Select = forwardRef<HTMLButtonElement, SelectProps>(
|
|||||||
const selectRef = useRef<HTMLButtonElement>(null);
|
const selectRef = useRef<HTMLButtonElement>(null);
|
||||||
const menuRef = useRef<HTMLDivElement>(null);
|
const menuRef = useRef<HTMLDivElement>(null);
|
||||||
|
|
||||||
|
useImperativeHandle(
|
||||||
|
ref,
|
||||||
|
() => selectRef.current as HTMLButtonElement | null,
|
||||||
|
);
|
||||||
|
|
||||||
// Handle click outside to close menu
|
// Handle click outside to close menu
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const handleClickOutside = (event: MouseEvent) => {
|
const handleClickOutside = (event: MouseEvent) => {
|
||||||
@@ -260,11 +266,20 @@ const Select = forwardRef<HTMLButtonElement, SelectProps>(
|
|||||||
|
|
||||||
// Handle children (option elements)
|
// Handle children (option elements)
|
||||||
const selectedOption = React.Children.toArray(children).find(
|
const selectedOption = React.Children.toArray(children).find(
|
||||||
(child) =>
|
(
|
||||||
React.isValidElement(child) && child.props.value === selectedValue,
|
child,
|
||||||
) as
|
): child is React.ReactElement<{
|
||||||
| React.ReactElement<{ value: string; children: React.ReactNode }>
|
value: string;
|
||||||
| undefined;
|
children: React.ReactNode;
|
||||||
|
}> => {
|
||||||
|
if (!React.isValidElement(child)) return false;
|
||||||
|
const props = child.props as {
|
||||||
|
value?: string;
|
||||||
|
children?: React.ReactNode;
|
||||||
|
};
|
||||||
|
return props.value === selectedValue;
|
||||||
|
},
|
||||||
|
);
|
||||||
return selectedOption
|
return selectedOption
|
||||||
? String(selectedOption.props.children)
|
? String(selectedOption.props.children)
|
||||||
: placeholder;
|
: placeholder;
|
||||||
|
|||||||
@@ -60,64 +60,63 @@ const WebVitalsDashboard = memo(() => {
|
|||||||
|
|
||||||
// Set up Web Vitals tracking
|
// Set up Web Vitals tracking
|
||||||
if (typeof window !== "undefined") {
|
if (typeof window !== "undefined") {
|
||||||
import("web-vitals").then(
|
import("web-vitals").then((webVitals) => {
|
||||||
({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
|
const { getCLS, getFID, getFCP, getLCP, getTTFB } = webVitals as any;
|
||||||
// Track Largest Contentful Paint
|
// Track Largest Contentful Paint
|
||||||
getLCP((metric) => {
|
getLCP((metric) => {
|
||||||
setVitals((prev) => ({
|
setVitals((prev) => ({
|
||||||
...prev,
|
...prev,
|
||||||
lcp: {
|
lcp: {
|
||||||
value: Math.round(metric.value),
|
value: Math.round(metric.value),
|
||||||
rating: metric.rating,
|
rating: metric.rating,
|
||||||
},
|
},
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Track First Input Delay
|
// Track First Input Delay
|
||||||
getFID((metric) => {
|
getFID((metric) => {
|
||||||
setVitals((prev) => ({
|
setVitals((prev) => ({
|
||||||
...prev,
|
...prev,
|
||||||
fid: {
|
fid: {
|
||||||
value: Math.round(metric.value),
|
value: Math.round(metric.value),
|
||||||
rating: metric.rating,
|
rating: metric.rating,
|
||||||
},
|
},
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Track Cumulative Layout Shift
|
// Track Cumulative Layout Shift
|
||||||
getCLS((metric) => {
|
getCLS((metric) => {
|
||||||
setVitals((prev) => ({
|
setVitals((prev) => ({
|
||||||
...prev,
|
...prev,
|
||||||
cls: {
|
cls: {
|
||||||
value: Math.round(metric.value * 1000) / 1000,
|
value: Math.round(metric.value * 1000) / 1000,
|
||||||
rating: metric.rating,
|
rating: metric.rating,
|
||||||
},
|
},
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Track First Contentful Paint
|
// Track First Contentful Paint
|
||||||
getFCP((metric) => {
|
getFCP((metric) => {
|
||||||
setVitals((prev) => ({
|
setVitals((prev) => ({
|
||||||
...prev,
|
...prev,
|
||||||
fcp: {
|
fcp: {
|
||||||
value: Math.round(metric.value),
|
value: Math.round(metric.value),
|
||||||
rating: metric.rating,
|
rating: metric.rating,
|
||||||
},
|
},
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Track Time to First Byte
|
// Track Time to First Byte
|
||||||
getTTFB((metric) => {
|
getTTFB((metric) => {
|
||||||
setVitals((prev) => ({
|
setVitals((prev) => ({
|
||||||
...prev,
|
...prev,
|
||||||
ttfb: {
|
ttfb: {
|
||||||
value: Math.round(metric.value),
|
value: Math.round(metric.value),
|
||||||
rating: metric.rating,
|
rating: metric.rating,
|
||||||
},
|
},
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
},
|
});
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
|||||||
@@ -2,8 +2,6 @@ import { Inter, Bricolage_Grotesque, Space_Grotesk } from "next/font/google";
|
|||||||
import type { Metadata } from "next";
|
import type { Metadata } from "next";
|
||||||
import type { ReactNode } from "react";
|
import type { ReactNode } from "react";
|
||||||
import "./globals.css";
|
import "./globals.css";
|
||||||
import Header from "./components/Header";
|
|
||||||
import HomeHeader from "./components/HomeHeader";
|
|
||||||
import Footer from "./components/Footer";
|
import Footer from "./components/Footer";
|
||||||
import ConditionalHeader from "./components/ConditionalHeader";
|
import ConditionalHeader from "./components/ConditionalHeader";
|
||||||
|
|
||||||
|
|||||||
+4
-5
@@ -1,19 +1,18 @@
|
|||||||
import ContentThumbnailTemplate from "../components/ContentThumbnailTemplate";
|
import ContentThumbnailTemplate from "../components/ContentThumbnailTemplate";
|
||||||
import ContentLockup from "../components/ContentLockup";
|
import ContentLockup from "../components/ContentLockup";
|
||||||
import AskOrganizer from "../components/AskOrganizer";
|
import AskOrganizer from "../components/AskOrganizer";
|
||||||
import { getAllBlogPosts, getRecentBlogPosts } from "../../lib/content";
|
import { getAllBlogPosts } from "../../lib/content";
|
||||||
|
|
||||||
export default function LearnPage() {
|
export default function LearnPage() {
|
||||||
// Get real blog posts from the content system
|
// Get real blog posts from the content system
|
||||||
const allPosts = getAllBlogPosts();
|
const allPosts = getAllBlogPosts();
|
||||||
const recentPosts = getRecentBlogPosts(3);
|
|
||||||
|
|
||||||
const contentLockupData = {
|
const contentLockupData = {
|
||||||
title: "Organizing is hard",
|
title: "Organizing is hard",
|
||||||
subtitle:
|
subtitle:
|
||||||
"Find answers to your questions and see how other groups have solved similar challenges.",
|
"Find answers to your questions and see how other groups have solved similar challenges.",
|
||||||
variant: "learn",
|
variant: "learn" as const,
|
||||||
alignment: "left",
|
alignment: "left" as const,
|
||||||
};
|
};
|
||||||
|
|
||||||
const askOrganizerData = {
|
const askOrganizerData = {
|
||||||
@@ -23,7 +22,7 @@ export default function LearnPage() {
|
|||||||
"Our community of organizers is here to help you navigate the challenges of building and maintaining effective community organizations.",
|
"Our community of organizers is here to help you navigate the challenges of building and maintaining effective community organizations.",
|
||||||
buttonText: "Ask an organizer",
|
buttonText: "Ask an organizer",
|
||||||
buttonHref: "/contact",
|
buttonHref: "/contact",
|
||||||
variant: "centered",
|
variant: "centered" as const,
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
+11
-11
@@ -70,7 +70,7 @@ export function getBlogPostFiles(): string[] {
|
|||||||
try {
|
try {
|
||||||
const files = fs.readdirSync(contentDirectory);
|
const files = fs.readdirSync(contentDirectory);
|
||||||
return files.filter(
|
return files.filter(
|
||||||
(file) => file.endsWith(".md") || file.endsWith(".mdx")
|
(file) => file.endsWith(".md") || file.endsWith(".mdx"),
|
||||||
);
|
);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("Error reading blog content directory:", error);
|
console.error("Error reading blog content directory:", error);
|
||||||
@@ -94,7 +94,7 @@ export function parseBlogPost(filePath: string): BlogPost | null {
|
|||||||
if (!validationResult.isValid) {
|
if (!validationResult.isValid) {
|
||||||
console.error(
|
console.error(
|
||||||
`Validation errors for ${filePath}:`,
|
`Validation errors for ${filePath}:`,
|
||||||
validationResult.errors
|
validationResult.errors,
|
||||||
);
|
);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -128,7 +128,7 @@ export function getAllBlogPosts(): BlogPost[] {
|
|||||||
.sort(
|
.sort(
|
||||||
(a, b) =>
|
(a, b) =>
|
||||||
new Date(b.frontmatter.date).getTime() -
|
new Date(b.frontmatter.date).getTime() -
|
||||||
new Date(a.frontmatter.date).getTime()
|
new Date(a.frontmatter.date).getTime(),
|
||||||
); // Sort by date descending
|
); // Sort by date descending
|
||||||
return allPosts;
|
return allPosts;
|
||||||
}
|
}
|
||||||
@@ -153,11 +153,11 @@ export function getBlogPostBySlug(slug: string): BlogPost | null {
|
|||||||
export function getRelatedBlogPosts(
|
export function getRelatedBlogPosts(
|
||||||
currentPostSlug: string,
|
currentPostSlug: string,
|
||||||
relatedSlugs: string[] = [],
|
relatedSlugs: string[] = [],
|
||||||
limit: number = 3
|
limit: number = 3,
|
||||||
): BlogPost[] {
|
): BlogPost[] {
|
||||||
const allPosts = getAllBlogPosts();
|
const allPosts = getAllBlogPosts();
|
||||||
const filteredPosts = allPosts.filter(
|
const filteredPosts = allPosts.filter(
|
||||||
(post) => post.slug !== currentPostSlug
|
(post) => post.slug !== currentPostSlug,
|
||||||
);
|
);
|
||||||
|
|
||||||
let related: BlogPost[] = [];
|
let related: BlogPost[] = [];
|
||||||
@@ -203,7 +203,7 @@ export function getAllTags(): string[] {
|
|||||||
export function getBlogPostsByTag(tag: string): BlogPost[] {
|
export function getBlogPostsByTag(tag: string): BlogPost[] {
|
||||||
const allPosts = getAllBlogPosts();
|
const allPosts = getAllBlogPosts();
|
||||||
return allPosts.filter(
|
return allPosts.filter(
|
||||||
(post) => post.frontmatter.tags && post.frontmatter.tags.includes(tag)
|
(post) => post.frontmatter.tags && post.frontmatter.tags.includes(tag),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -228,7 +228,7 @@ export function searchBlogPosts(query: string, limit: number = 10): BlogPost[] {
|
|||||||
.includes(searchTerm);
|
.includes(searchTerm);
|
||||||
const contentMatch = post.content.toLowerCase().includes(searchTerm);
|
const contentMatch = post.content.toLowerCase().includes(searchTerm);
|
||||||
const tagMatch = post.frontmatter.tags?.some((tag) =>
|
const tagMatch = post.frontmatter.tags?.some((tag) =>
|
||||||
tag.toLowerCase().includes(searchTerm)
|
tag.toLowerCase().includes(searchTerm),
|
||||||
);
|
);
|
||||||
|
|
||||||
return titleMatch || descriptionMatch || contentMatch || tagMatch;
|
return titleMatch || descriptionMatch || contentMatch || tagMatch;
|
||||||
@@ -245,7 +245,7 @@ export function searchBlogPosts(query: string, limit: number = 10): BlogPost[] {
|
|||||||
export function getBlogPostsByAuthor(author: string): BlogPost[] {
|
export function getBlogPostsByAuthor(author: string): BlogPost[] {
|
||||||
const allPosts = getAllBlogPosts();
|
const allPosts = getAllBlogPosts();
|
||||||
return allPosts.filter(
|
return allPosts.filter(
|
||||||
(post) => post.frontmatter.author.toLowerCase() === author.toLowerCase()
|
(post) => post.frontmatter.author.toLowerCase() === author.toLowerCase(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -297,11 +297,11 @@ export function getBlogStats(): BlogStats {
|
|||||||
1,
|
1,
|
||||||
(new Date(allPosts[0].frontmatter.date).getTime() -
|
(new Date(allPosts[0].frontmatter.date).getTime() -
|
||||||
new Date(
|
new Date(
|
||||||
allPosts[allPosts.length - 1].frontmatter.date
|
allPosts[allPosts.length - 1].frontmatter.date,
|
||||||
).getTime()) /
|
).getTime()) /
|
||||||
(1000 * 60 * 60 * 24 * 30)
|
(1000 * 60 * 60 * 24 * 30),
|
||||||
)) *
|
)) *
|
||||||
10
|
10,
|
||||||
) / 10
|
) / 10
|
||||||
: 0,
|
: 0,
|
||||||
};
|
};
|
||||||
|
|||||||
+10
-11
@@ -180,7 +180,6 @@ function markdownToHtml(markdown: string): string {
|
|||||||
if (!markdown) return "";
|
if (!markdown) return "";
|
||||||
|
|
||||||
// Normalize line endings
|
// Normalize line endings
|
||||||
const GAP_TOKEN = "<GAP/>";
|
|
||||||
const src = String(markdown).replace(/\r\n?/g, "\n");
|
const src = String(markdown).replace(/\r\n?/g, "\n");
|
||||||
|
|
||||||
// For 3+ consecutive newlines, keep 2 for the paragraph break and
|
// For 3+ consecutive newlines, keep 2 for the paragraph break and
|
||||||
@@ -195,33 +194,33 @@ function markdownToHtml(markdown: string): string {
|
|||||||
// Headers with IDs
|
// Headers with IDs
|
||||||
.replace(
|
.replace(
|
||||||
/^###### (.*$)/gim,
|
/^###### (.*$)/gim,
|
||||||
(m, t) => `<h6 id="${generateHeadingId(t)}">${t}</h6>`,
|
(_match, t) => `<h6 id="${generateHeadingId(t)}">${t}</h6>`,
|
||||||
)
|
)
|
||||||
.replace(
|
.replace(
|
||||||
/^##### (.*$)/gim,
|
/^##### (.*$)/gim,
|
||||||
(m, t) => `<h5 id="${generateHeadingId(t)}">${t}</h5>`,
|
(_match, t) => `<h5 id="${generateHeadingId(t)}">${t}</h5>`,
|
||||||
)
|
)
|
||||||
.replace(
|
.replace(
|
||||||
/^#### (.*$)/gim,
|
/^#### (.*$)/gim,
|
||||||
(m, t) => `<h4 id="${generateHeadingId(t)}">${t}</h4>`,
|
(_match, t) => `<h4 id="${generateHeadingId(t)}">${t}</h4>`,
|
||||||
)
|
)
|
||||||
.replace(
|
.replace(
|
||||||
/^### (.*$)/gim,
|
/^### (.*$)/gim,
|
||||||
(m, t) => `<h3 id="${generateHeadingId(t)}">${t}</h3>`,
|
(_match, t) => `<h3 id="${generateHeadingId(t)}">${t}</h3>`,
|
||||||
)
|
)
|
||||||
.replace(
|
.replace(
|
||||||
/^## (.*$)/gim,
|
/^## (.*$)/gim,
|
||||||
(m, t) => `<h2 id="${generateHeadingId(t)}">${t}</h2>`,
|
(_match, t) => `<h2 id="${generateHeadingId(t)}">${t}</h2>`,
|
||||||
)
|
)
|
||||||
.replace(
|
.replace(
|
||||||
/^# (.*$)/gim,
|
/^# (.*$)/gim,
|
||||||
(m, t) => `<h1 id="${generateHeadingId(t)}">${t}</h1>`,
|
(_match, t) => `<h1 id="${generateHeadingId(t)}">${t}</h1>`,
|
||||||
)
|
)
|
||||||
|
|
||||||
// Code fences (block) and inline code
|
// Code fences (block) and inline code
|
||||||
.replace(
|
.replace(
|
||||||
/```(\w+)?\n([\s\S]*?)\n```/g,
|
/```(\w+)?\n([\s\S]*?)\n```/g,
|
||||||
(m, lang = "", code) =>
|
(_match, lang = "", code) =>
|
||||||
`<pre><code class="language-${lang}">${code}</code></pre>`,
|
`<pre><code class="language-${lang}">${code}</code></pre>`,
|
||||||
)
|
)
|
||||||
.replace(/`([^`]+)`/g, "<code>$1</code>")
|
.replace(/`([^`]+)`/g, "<code>$1</code>")
|
||||||
@@ -233,12 +232,12 @@ function markdownToHtml(markdown: string): string {
|
|||||||
// Links and images
|
// Links and images
|
||||||
.replace(
|
.replace(
|
||||||
/!\[([^\]]*)\]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,
|
/!\[([^\]]*)\]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,
|
||||||
(m, alt, src, title = "") =>
|
(_match, alt, src, title = "") =>
|
||||||
`<img alt="${alt}" src="${src}"${title ? ` title="${title}"` : ""}>`,
|
`<img alt="${alt}" src="${src}"${title ? ` title="${title}"` : ""}>`,
|
||||||
)
|
)
|
||||||
.replace(
|
.replace(
|
||||||
/\[([^\]]+)\]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,
|
/\[([^\]]+)\]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,
|
||||||
(m, text, href, title = "") =>
|
(_match, text, href, title = "") =>
|
||||||
`<a href="${href}"${title ? ` title="${title}"` : ""}>${text}</a>`,
|
`<a href="${href}"${title ? ` title="${title}"` : ""}>${text}</a>`,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -292,7 +291,7 @@ function markdownToHtml(markdown: string): string {
|
|||||||
// Turn counted GAP tokens into explicit, styleable gap elements
|
// Turn counted GAP tokens into explicit, styleable gap elements
|
||||||
.replace(
|
.replace(
|
||||||
/<GAP:(\d+)\/>/g,
|
/<GAP:(\d+)\/>/g,
|
||||||
(m, n) =>
|
(_match, n) =>
|
||||||
`<div class="md-gap" style="--gap:${Number(
|
`<div class="md-gap" style="--gap:${Number(
|
||||||
n,
|
n,
|
||||||
)}" aria-hidden="true"></div>`,
|
)}" aria-hidden="true"></div>`,
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
time="2025-08-29T08:17:49-06:00" level=info msg="Starting runner daemon"
|
|
||||||
time="2025-08-29T08:17:50-06:00" level=info msg="runner: community-rule-runner-1, with version: v0.2.6, with labels: [macos-latest self-hosted], declare successfully"
|
|
||||||
time="2025-08-29T08:17:50-06:00" level=info msg="task 12 repo is CommunityRule/community-rule https://github.com https://git.medlab.host"
|
|
||||||
time="2025-08-29T08:17:52-06:00" level=info msg="task 13 repo is CommunityRule/community-rule https://github.com https://git.medlab.host"
|
|
||||||
time="2025-08-29T08:17:52-06:00" level=info msg="Parallel tasks (0) below minimum, setting to 1"
|
|
||||||
time="2025-08-29T08:17:54-06:00" level=info msg="task 14 repo is CommunityRule/community-rule https://github.com https://git.medlab.host"
|
|
||||||
time="2025-08-29T08:17:54-06:00" level=info msg="Parallel tasks (0) below minimum, setting to 1"
|
|
||||||
time="2025-08-29T08:17:55-06:00" level=info msg="Parallel tasks (0) below minimum, setting to 1"
|
|
||||||
time="2025-08-29T08:17:56-06:00" level=info msg="task 15 repo is CommunityRule/community-rule https://github.com https://git.medlab.host"
|
|
||||||
time="2025-08-29T08:17:57-06:00" level=info msg="Parallel tasks (0) below minimum, setting to 1"
|
|
||||||
time="2025-08-29T08:17:58-06:00" level=info msg="task 16 repo is CommunityRule/community-rule https://github.com https://git.medlab.host"
|
|
||||||
time="2025-08-29T08:17:58-06:00" level=info msg="Parallel tasks (0) below minimum, setting to 1"
|
|
||||||
time="2025-08-29T08:17:58-06:00" level=info msg="Starting runner daemon"
|
|
||||||
time="2025-08-29T08:17:59-06:00" level=info msg="runner: community-rule-runner-1, with version: v0.2.6, with labels: [macos-latest self-hosted], declare successfully"
|
|
||||||
time="2025-08-29T08:17:59-06:00" level=info msg="task 17 repo is CommunityRule/community-rule https://github.com https://git.medlab.host"
|
|
||||||
time="2025-08-29T08:18:01-06:00" level=info msg="Parallel tasks (0) below minimum, setting to 1"
|
|
||||||
-675
@@ -1,675 +0,0 @@
|
|||||||
[CI Pipeline/e2e (webkit)] [DEBUG] evaluating expression 'success()'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] expression 'success()' evaluated to 'true'
|
|
||||||
[CI Pipeline/e2e (webkit)] ☁ git clone 'https://github.com/actions/checkout' # ref=v4
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] cloning https://github.com/actions/checkout to /Users/Vinod/.cache/act/actions-checkout@v4
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Unable to pull refs/heads/v4: worktree contains unstaged changes
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Cloned https://github.com/actions/checkout to /Users/Vinod/.cache/act/actions-checkout@v4
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Checked out v4
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Read action &{Checkout Checkout a Git repository at a particular version map[clean:{Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching false true} fetch-depth:{Number of commits to fetch. 0 indicates all history for all branches and tags. false 1} fetch-tags:{Whether to fetch tags, even if fetch-depth > 0. false false} filter:{Partially clone against a given filter. Overrides sparse-checkout if set.
|
|
||||||
false } github-server-url:{The base URL for the GitHub instance that you are trying to clone from, will use environment defaults to fetch from the same instance that the workflow is running from unless specified. Example URLs are https://github.com or https://my-ghes-server.example.com false } lfs:{Whether to download Git-LFS files false false} path:{Relative path under $GITHUB_WORKSPACE to place the repository false } persist-credentials:{Whether to configure the token or SSH key with the local git config false true} ref:{The branch, tag or SHA to checkout. When checking out the repository that triggered a workflow, this defaults to the reference or SHA for that event. Otherwise, uses the default branch.
|
|
||||||
false } repository:{Repository name with owner. For example, actions/checkout false ${{ github.repository }}} set-safe-directory:{Add repository path as safe.directory for Git global config by running `git config --global --add safe.directory <path>` false true} show-progress:{Whether to show progress status output when fetching. false true} sparse-checkout:{Do a sparse checkout on given patterns. Each pattern should be separated with new lines.
|
|
||||||
false } sparse-checkout-cone-mode:{Specifies whether to use cone-mode when doing a sparse checkout.
|
|
||||||
false true} ssh-key:{SSH key used to fetch the repository. The SSH key is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the SSH key.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false } ssh-known-hosts:{Known hosts in addition to the user and global host key database. The public SSH keys for a host may be obtained using the utility `ssh-keyscan`. For example, `ssh-keyscan github.com`. The public key for github.com is always implicitly added.
|
|
||||||
false } ssh-strict:{Whether to perform strict host key checking. When true, adds the options `StrictHostKeyChecking=yes` and `CheckHostIP=no` to the SSH command line. Use the input `ssh-known-hosts` to configure additional hosts.
|
|
||||||
false true} ssh-user:{The user to use when connecting to the remote SSH host. By default 'git' is used.
|
|
||||||
false git} submodules:{Whether to checkout submodules: `true` to checkout submodules or `recursive` to recursively checkout submodules.
|
|
||||||
|
|
||||||
When the `ssh-key` input is not provided, SSH URLs beginning with `git@github.com:` are converted to HTTPS.
|
|
||||||
false false} token:{Personal access token (PAT) used to fetch the repository. The PAT is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the PAT.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary. Also when generating a new PAT, select the least scopes necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false ${{ github.token }}}] map[commit:{The commit SHA that was checked out } ref:{The branch, tag or SHA that was checked out }] {node20 map[] dist/index.js always() dist/index.js always() [] []} { }} from 'Unknown'
|
|
||||||
[CI Pipeline/e2e (webkit)] ☁ git clone 'https://github.com/actions/setup-node' # ref=v4
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] cloning https://github.com/actions/setup-node to /Users/Vinod/.cache/act/actions-setup-node@v4
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Unable to pull refs/heads/v4: worktree contains unstaged changes
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Cloned https://github.com/actions/setup-node to /Users/Vinod/.cache/act/actions-setup-node@v4
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Checked out v4
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Read action &{Setup Node.js environment GitHub Setup a Node.js environment by adding problem matchers and optionally downloading and adding it to the PATH. map[always-auth:{Set always-auth in npmrc. false false} architecture:{Target architecture for Node to use. Examples: x86, x64. Will use system architecture by default. false } cache:{Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm. false } cache-dependency-path:{Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies. false } check-latest:{Set this option if you want the action to check for the latest available version that satisfies the version spec. false false} mirror:{Used to specify an alternative mirror to downlooad Node.js binaries from false } mirror-token:{The token used as Authorization header when fetching from the mirror false } node-version:{Version Spec of the version to use. Examples: 12.x, 10.15.1, >=10.15.0. false } node-version-file:{File containing the version Spec of the version to use. Examples: package.json, .nvmrc, .node-version, .tool-versions. false } registry-url:{Optional registry to set up for auth. Will set the registry in a project level .npmrc and .yarnrc file, and set up auth to read in from env.NODE_AUTH_TOKEN. false } scope:{Optional scope for authenticating against scoped registries. Will fall back to the repository owner when using the GitHub Packages registry (https://npm.pkg.github.com/). false } token:{Used to pull node distributions from node-versions. Since there's a default, this is typically not supplied by the user. When running this action on github.com, the default value is sufficient. When running on GHES, you can pass a personal access token for github.com if you are experiencing rate limiting. false ${{ github.server_url == 'https://github.com' && github.token || '' }}}] map[cache-hit:{A boolean value to indicate if a cache was hit. } node-version:{The installed node version. }] {node20 map[] dist/setup/index.js always() dist/cache-save/index.js success() [] []} { }} from 'Unknown'
|
|
||||||
[CI Pipeline/e2e (webkit)] ☁ git clone 'https://github.com/actions/upload-artifact' # ref=v4
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] cloning https://github.com/actions/upload-artifact to /Users/Vinod/.cache/act/actions-upload-artifact@v4
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Cloned https://github.com/actions/upload-artifact to /Users/Vinod/.cache/act/actions-upload-artifact@v4
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] evaluating expression 'success()'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] expression 'success()' evaluated to 'true'
|
|
||||||
[CI Pipeline/visual-regression] ☁ git clone 'https://github.com/actions/checkout' # ref=v4
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] cloning https://github.com/actions/checkout to /Users/Vinod/.cache/act/actions-checkout@v4
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Checked out v4
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Read action &{Upload a Build Artifact GitHub Upload a build artifact that can be used by subsequent workflow steps map[compression-level:{The level of compression for Zlib to be applied to the artifact archive. The value can range from 0 to 9: - 0: No compression - 1: Best speed - 6: Default compression (same as GNU Gzip) - 9: Best compression Higher levels will result in better compression, but will take longer to complete. For large files that are not easily compressed, a value of 0 is recommended for significantly faster uploads.
|
|
||||||
false 6} if-no-files-found:{The desired behavior if no files are found using the provided path.
|
|
||||||
Available Options:
|
|
||||||
warn: Output a warning but do not fail the action
|
|
||||||
error: Fail the action with an error message
|
|
||||||
ignore: Do not output any warnings or errors, the action does not fail
|
|
||||||
false warn} include-hidden-files:{If true, hidden files will be included in the artifact. If false, hidden files will be excluded from the artifact.
|
|
||||||
false false} name:{Artifact name false artifact} overwrite:{If true, an artifact with a matching name will be deleted before a new one is uploaded. If false, the action will fail if an artifact for the given name already exists. Does not fail if the artifact does not exist.
|
|
||||||
false false} path:{A file, directory or wildcard pattern that describes what to upload true } retention-days:{Duration after which artifact will expire in days. 0 means using default retention.
|
|
||||||
Minimum 1 day. Maximum 90 days unless changed from the repository settings page.
|
|
||||||
false }] map[artifact-digest:{SHA-256 digest for the artifact that was just uploaded. Empty if the artifact upload failed.
|
|
||||||
} artifact-id:{A unique identifier for the artifact that was just uploaded. Empty if the artifact upload failed.
|
|
||||||
This ID can be used as input to other APIs to download, delete or get more information about an artifact: https://docs.github.com/en/rest/actions/artifacts
|
|
||||||
} artifact-url:{A download URL for the artifact that was just uploaded. Empty if the artifact upload failed.
|
|
||||||
This download URL only works for requests Authenticated with GitHub. Anonymous downloads will be prompted to first login. If an anonymous download URL is needed than a short time restricted URL can be generated using the download artifact API: https://docs.github.com/en/rest/actions/artifacts#download-an-artifact
|
|
||||||
This URL will be valid for as long as the artifact exists and the workflow run and repository exists. Once an artifact has expired this URL will no longer work. Common uses cases for such a download URL can be adding download links to artifacts in descriptions or comments on pull requests or issues.
|
|
||||||
}] {node20 map[] dist/upload/index.js always() always() [] []} { }} from 'Unknown'
|
|
||||||
[CI Pipeline/e2e (webkit)] 🧪 Matrix: map[browser:webkit]
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:0 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF:v4 GITHUB_ACTION_REPOSITORY:actions/checkout GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/f42616da4b07b25b/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:e2e GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/f42616da4b07b25b/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/f42616da4b07b25b/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] expression '' evaluated to 'true'
|
|
||||||
[CI Pipeline/e2e (webkit)] ⭐ Run Main Checkout code
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] About to run action &{Checkout Checkout a Git repository at a particular version map[clean:{Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching false true} fetch-depth:{Number of commits to fetch. 0 indicates all history for all branches and tags. false 1} fetch-tags:{Whether to fetch tags, even if fetch-depth > 0. false false} filter:{Partially clone against a given filter. Overrides sparse-checkout if set.
|
|
||||||
false } github-server-url:{The base URL for the GitHub instance that you are trying to clone from, will use environment defaults to fetch from the same instance that the workflow is running from unless specified. Example URLs are https://github.com or https://my-ghes-server.example.com false } lfs:{Whether to download Git-LFS files false false} path:{Relative path under $GITHUB_WORKSPACE to place the repository false } persist-credentials:{Whether to configure the token or SSH key with the local git config false true} ref:{The branch, tag or SHA to checkout. When checking out the repository that triggered a workflow, this defaults to the reference or SHA for that event. Otherwise, uses the default branch.
|
|
||||||
false } repository:{Repository name with owner. For example, actions/checkout false ${{ github.repository }}} set-safe-directory:{Add repository path as safe.directory for Git global config by running `git config --global --add safe.directory <path>` false true} show-progress:{Whether to show progress status output when fetching. false true} sparse-checkout:{Do a sparse checkout on given patterns. Each pattern should be separated with new lines.
|
|
||||||
false } sparse-checkout-cone-mode:{Specifies whether to use cone-mode when doing a sparse checkout.
|
|
||||||
false true} ssh-key:{SSH key used to fetch the repository. The SSH key is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the SSH key.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false } ssh-known-hosts:{Known hosts in addition to the user and global host key database. The public SSH keys for a host may be obtained using the utility `ssh-keyscan`. For example, `ssh-keyscan github.com`. The public key for github.com is always implicitly added.
|
|
||||||
false } ssh-strict:{Whether to perform strict host key checking. When true, adds the options `StrictHostKeyChecking=yes` and `CheckHostIP=no` to the SSH command line. Use the input `ssh-known-hosts` to configure additional hosts.
|
|
||||||
false true} ssh-user:{The user to use when connecting to the remote SSH host. By default 'git' is used.
|
|
||||||
false git} submodules:{Whether to checkout submodules: `true` to checkout submodules or `recursive` to recursively checkout submodules.
|
|
||||||
|
|
||||||
When the `ssh-key` input is not provided, SSH URLs beginning with `git@github.com:` are converted to HTTPS.
|
|
||||||
false false} token:{Personal access token (PAT) used to fetch the repository. The PAT is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the PAT.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary. Also when generating a new PAT, select the least scopes necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false ${{ github.token }}}] map[commit:{The commit SHA that was checked out } ref:{The branch, tag or SHA that was checked out }] {node20 map[] dist/index.js always() dist/index.js always() [] []} { }}
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] expression '${{ github.repository }}' rewritten to 'format('{0}', github.repository)'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] evaluating expression 'format('{0}', github.repository)'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] expression 'format('{0}', github.repository)' evaluated to '%!t(string=CommunityRule/community-rule)'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] expression '${{ github.token }}' rewritten to 'format('{0}', github.token)'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] evaluating expression 'format('{0}', github.token)'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] expression 'format('{0}', github.token)' evaluated to '%!t(string=***)'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] type=remote-action actionDir=/Users/Vinod/.cache/act/actions-checkout@v4 actionPath= workdir=/workspace/CommunityRule/community-rule actionCacheDir=/Users/Vinod/.cache/act actionName=actions-checkout@v4 containerActionDir=/Users/Vinod/.cache/act/f42616da4b07b25b/act/actions/actions-checkout@v4
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Removing /Users/Vinod/.cache/act/actions-checkout@v4/.gitignore before docker cp
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] /Users/Vinod/.cache/act/f42616da4b07b25b/act/actions/actions-checkout@v4
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Stripping prefix:/Users/Vinod/.cache/act/actions-checkout@v4/ src:/Users/Vinod/.cache/act/actions-checkout@v4/
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] executing remote job container: [node /Users/Vinod/.cache/act/f42616da4b07b25b/act/actions/actions-checkout@v4/dist/index.js]
|
|
||||||
[CI Pipeline/e2e (webkit)] | Cannot find: node in PATH
|
|
||||||
[CI Pipeline/e2e (webkit)] ❌ Failure - Main Checkout code
|
|
||||||
[CI Pipeline/e2e (webkit)] Cannot find: node in PATH
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:1 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF:v4 GITHUB_ACTION_REPOSITORY:actions/setup-node GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/f42616da4b07b25b/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:e2e GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/f42616da4b07b25b/hostexecutor HOME:/Users/Vinod INPUT_CACHE:npm INPUT_NODE-VERSION:20 ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/f42616da4b07b25b/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Skipping step 'Setup Node.js' due to ''
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:2 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/f42616da4b07b25b/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:e2e GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/f42616da4b07b25b/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/f42616da4b07b25b/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Skipping step 'Install dependencies' due to ''
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:3 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/f42616da4b07b25b/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:e2e GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/f42616da4b07b25b/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/f42616da4b07b25b/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Skipping step 'Install Playwright browsers' due to ''
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:4 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/f42616da4b07b25b/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:e2e GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/f42616da4b07b25b/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/f42616da4b07b25b/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Skipping step 'Build application' due to ''
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:5 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/f42616da4b07b25b/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:e2e GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/f42616da4b07b25b/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/f42616da4b07b25b/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Skipping step 'Start application' due to ''
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:6 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/f42616da4b07b25b/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:e2e GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/f42616da4b07b25b/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/f42616da4b07b25b/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Skipping step 'Wait for application to be ready' due to ''
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:7 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/f42616da4b07b25b/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:e2e GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/f42616da4b07b25b/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/f42616da4b07b25b/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Skipping step 'Run E2E tests' due to ''
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] expression 'playwright-results-${{ matrix.browser }}' rewritten to 'format('playwright-results-{0}', matrix.browser)'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] evaluating expression 'format('playwright-results-{0}', matrix.browser)'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] expression 'format('playwright-results-{0}', matrix.browser)' evaluated to '%!t(string=playwright-results-webkit)'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:8 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF:v4 GITHUB_ACTION_REPOSITORY:actions/upload-artifact GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/f42616da4b07b25b/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:e2e GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/f42616da4b07b25b/hostexecutor HOME:/Users/Vinod INPUT_NAME:playwright-results-webkit INPUT_PATH:test-results/
|
|
||||||
playwright-report/
|
|
||||||
INPUT_RETENTION-DAYS:30 ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/f42616da4b07b25b/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] evaluating expression 'always()'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] expression 'always()' evaluated to 'true'
|
|
||||||
[CI Pipeline/e2e (webkit)] ⭐ Run Main Upload test results
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] About to run action &{Upload a Build Artifact GitHub Upload a build artifact that can be used by subsequent workflow steps map[compression-level:{The level of compression for Zlib to be applied to the artifact archive. The value can range from 0 to 9: - 0: No compression - 1: Best speed - 6: Default compression (same as GNU Gzip) - 9: Best compression Higher levels will result in better compression, but will take longer to complete. For large files that are not easily compressed, a value of 0 is recommended for significantly faster uploads.
|
|
||||||
false 6} if-no-files-found:{The desired behavior if no files are found using the provided path.
|
|
||||||
Available Options:
|
|
||||||
warn: Output a warning but do not fail the action
|
|
||||||
error: Fail the action with an error message
|
|
||||||
ignore: Do not output any warnings or errors, the action does not fail
|
|
||||||
false warn} include-hidden-files:{If true, hidden files will be included in the artifact. If false, hidden files will be excluded from the artifact.
|
|
||||||
false false} name:{Artifact name false artifact} overwrite:{If true, an artifact with a matching name will be deleted before a new one is uploaded. If false, the action will fail if an artifact for the given name already exists. Does not fail if the artifact does not exist.
|
|
||||||
false false} path:{A file, directory or wildcard pattern that describes what to upload true } retention-days:{Duration after which artifact will expire in days. 0 means using default retention.
|
|
||||||
Minimum 1 day. Maximum 90 days unless changed from the repository settings page.
|
|
||||||
false }] map[artifact-digest:{SHA-256 digest for the artifact that was just uploaded. Empty if the artifact upload failed.
|
|
||||||
} artifact-id:{A unique identifier for the artifact that was just uploaded. Empty if the artifact upload failed.
|
|
||||||
This ID can be used as input to other APIs to download, delete or get more information about an artifact: https://docs.github.com/en/rest/actions/artifacts
|
|
||||||
} artifact-url:{A download URL for the artifact that was just uploaded. Empty if the artifact upload failed.
|
|
||||||
This download URL only works for requests Authenticated with GitHub. Anonymous downloads will be prompted to first login. If an anonymous download URL is needed than a short time restricted URL can be generated using the download artifact API: https://docs.github.com/en/rest/actions/artifacts#download-an-artifact
|
|
||||||
This URL will be valid for as long as the artifact exists and the workflow run and repository exists. Once an artifact has expired this URL will no longer work. Common uses cases for such a download URL can be adding download links to artifacts in descriptions or comments on pull requests or issues.
|
|
||||||
}] {node20 map[] dist/upload/index.js always() always() [] []} { }}
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] type=remote-action actionDir=/Users/Vinod/.cache/act/actions-upload-artifact@v4 actionPath= workdir=/workspace/CommunityRule/community-rule actionCacheDir=/Users/Vinod/.cache/act actionName=actions-upload-artifact@v4 containerActionDir=/Users/Vinod/.cache/act/f42616da4b07b25b/act/actions/actions-upload-artifact@v4
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Removing /Users/Vinod/.cache/act/actions-upload-artifact@v4/.gitignore before docker cp
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] /Users/Vinod/.cache/act/f42616da4b07b25b/act/actions/actions-upload-artifact@v4
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] Stripping prefix:/Users/Vinod/.cache/act/actions-upload-artifact@v4/ src:/Users/Vinod/.cache/act/actions-upload-artifact@v4/
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Unable to pull refs/heads/v4: worktree contains unstaged changes
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Cloned https://github.com/actions/checkout to /Users/Vinod/.cache/act/actions-checkout@v4
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Checked out v4
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Read action &{Checkout Checkout a Git repository at a particular version map[clean:{Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching false true} fetch-depth:{Number of commits to fetch. 0 indicates all history for all branches and tags. false 1} fetch-tags:{Whether to fetch tags, even if fetch-depth > 0. false false} filter:{Partially clone against a given filter. Overrides sparse-checkout if set.
|
|
||||||
false } github-server-url:{The base URL for the GitHub instance that you are trying to clone from, will use environment defaults to fetch from the same instance that the workflow is running from unless specified. Example URLs are https://github.com or https://my-ghes-server.example.com false } lfs:{Whether to download Git-LFS files false false} path:{Relative path under $GITHUB_WORKSPACE to place the repository false } persist-credentials:{Whether to configure the token or SSH key with the local git config false true} ref:{The branch, tag or SHA to checkout. When checking out the repository that triggered a workflow, this defaults to the reference or SHA for that event. Otherwise, uses the default branch.
|
|
||||||
false } repository:{Repository name with owner. For example, actions/checkout false ${{ github.repository }}} set-safe-directory:{Add repository path as safe.directory for Git global config by running `git config --global --add safe.directory <path>` false true} show-progress:{Whether to show progress status output when fetching. false true} sparse-checkout:{Do a sparse checkout on given patterns. Each pattern should be separated with new lines.
|
|
||||||
false } sparse-checkout-cone-mode:{Specifies whether to use cone-mode when doing a sparse checkout.
|
|
||||||
false true} ssh-key:{SSH key used to fetch the repository. The SSH key is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the SSH key.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false } ssh-known-hosts:{Known hosts in addition to the user and global host key database. The public SSH keys for a host may be obtained using the utility `ssh-keyscan`. For example, `ssh-keyscan github.com`. The public key for github.com is always implicitly added.
|
|
||||||
false } ssh-strict:{Whether to perform strict host key checking. When true, adds the options `StrictHostKeyChecking=yes` and `CheckHostIP=no` to the SSH command line. Use the input `ssh-known-hosts` to configure additional hosts.
|
|
||||||
false true} ssh-user:{The user to use when connecting to the remote SSH host. By default 'git' is used.
|
|
||||||
false git} submodules:{Whether to checkout submodules: `true` to checkout submodules or `recursive` to recursively checkout submodules.
|
|
||||||
|
|
||||||
When the `ssh-key` input is not provided, SSH URLs beginning with `git@github.com:` are converted to HTTPS.
|
|
||||||
false false} token:{Personal access token (PAT) used to fetch the repository. The PAT is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the PAT.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary. Also when generating a new PAT, select the least scopes necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false ${{ github.token }}}] map[commit:{The commit SHA that was checked out } ref:{The branch, tag or SHA that was checked out }] {node20 map[] dist/index.js always() dist/index.js always() [] []} { }} from 'Unknown'
|
|
||||||
[CI Pipeline/visual-regression] ☁ git clone 'https://github.com/actions/setup-node' # ref=v4
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] cloning https://github.com/actions/setup-node to /Users/Vinod/.cache/act/actions-setup-node@v4
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] executing remote job container: [node /Users/Vinod/.cache/act/f42616da4b07b25b/act/actions/actions-upload-artifact@v4/dist/upload/index.js]
|
|
||||||
[CI Pipeline/e2e (webkit)] | Cannot find: node in PATH
|
|
||||||
[CI Pipeline/e2e (webkit)] ❌ Failure - Main Upload test results
|
|
||||||
[CI Pipeline/e2e (webkit)] Cannot find: node in PATH
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] skipping post step for 'Setup Node.js'; main step was skipped
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:0 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF:v4 GITHUB_ACTION_REPOSITORY:actions/checkout GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_ENV:/Users/Vinod/.cache/act/f42616da4b07b25b/act/workflow/envs.txt GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/f42616da4b07b25b/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:e2e GITHUB_OUTPUT:/Users/Vinod/.cache/act/f42616da4b07b25b/act/workflow/outputcmd.txt GITHUB_PATH:/Users/Vinod/.cache/act/f42616da4b07b25b/act/workflow/pathcmd.txt GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_STATE:/Users/Vinod/.cache/act/f42616da4b07b25b/act/workflow/statecmd.txt GITHUB_STEP_SUMMARY:/Users/Vinod/.cache/act/f42616da4b07b25b/act/workflow/SUMMARY.md GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/f42616da4b07b25b/hostexecutor HOME:/Users/Vinod INPUT_CLEAN:true INPUT_FETCH-DEPTH:1 INPUT_FETCH-TAGS:false INPUT_FILTER: INPUT_GITHUB-SERVER-URL: INPUT_LFS:false INPUT_PATH: INPUT_PERSIST-CREDENTIALS:true INPUT_REF: INPUT_REPOSITORY:CommunityRule/community-rule INPUT_SET-SAFE-DIRECTORY:true INPUT_SHOW-PROGRESS:true INPUT_SPARSE-CHECKOUT: INPUT_SPARSE-CHECKOUT-CONE-MODE:true INPUT_SSH-KEY: INPUT_SSH-KNOWN-HOSTS: INPUT_SSH-STRICT:true INPUT_SSH-USER:git INPUT_SUBMODULES:false INPUT_TOKEN:*** ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/f42616da4b07b25b/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] evaluating expression 'always()'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] expression 'always()' evaluated to 'true'
|
|
||||||
[CI Pipeline/e2e (webkit)] ⭐ Run Post Checkout code
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] run post step for 'Checkout code'
|
|
||||||
[CI Pipeline/e2e (webkit)] [DEBUG] executing remote job container: [node /Users/Vinod/.cache/act/f42616da4b07b25b/act/actions/actions-checkout@v4/dist/index.js]
|
|
||||||
[CI Pipeline/e2e (webkit)] | Cannot find: node in PATH
|
|
||||||
[CI Pipeline/e2e (webkit)] ❌ Failure - Post Checkout code
|
|
||||||
[CI Pipeline/e2e (webkit)] Cleaning up services for job e2e (webkit)
|
|
||||||
[CI Pipeline/e2e (webkit)] Cleaning up container for job e2e (webkit)
|
|
||||||
[CI Pipeline/e2e (webkit)] 🏁 Job failed
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Cloned https://github.com/actions/setup-node to /Users/Vinod/.cache/act/actions-setup-node@v4
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Checked out v4
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Read action &{Setup Node.js environment GitHub Setup a Node.js environment by adding problem matchers and optionally downloading and adding it to the PATH. map[always-auth:{Set always-auth in npmrc. false false} architecture:{Target architecture for Node to use. Examples: x86, x64. Will use system architecture by default. false } cache:{Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm. false } cache-dependency-path:{Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies. false } check-latest:{Set this option if you want the action to check for the latest available version that satisfies the version spec. false false} mirror:{Used to specify an alternative mirror to downlooad Node.js binaries from false } mirror-token:{The token used as Authorization header when fetching from the mirror false } node-version:{Version Spec of the version to use. Examples: 12.x, 10.15.1, >=10.15.0. false } node-version-file:{File containing the version Spec of the version to use. Examples: package.json, .nvmrc, .node-version, .tool-versions. false } registry-url:{Optional registry to set up for auth. Will set the registry in a project level .npmrc and .yarnrc file, and set up auth to read in from env.NODE_AUTH_TOKEN. false } scope:{Optional scope for authenticating against scoped registries. Will fall back to the repository owner when using the GitHub Packages registry (https://npm.pkg.github.com/). false } token:{Used to pull node distributions from node-versions. Since there's a default, this is typically not supplied by the user. When running this action on github.com, the default value is sufficient. When running on GHES, you can pass a personal access token for github.com if you are experiencing rate limiting. false ${{ github.server_url == 'https://github.com' && github.token || '' }}}] map[cache-hit:{A boolean value to indicate if a cache was hit. } node-version:{The installed node version. }] {node20 map[] dist/setup/index.js always() dist/cache-save/index.js success() [] []} { }} from 'Unknown'
|
|
||||||
[CI Pipeline/visual-regression] ☁ git clone 'https://github.com/actions/upload-artifact' # ref=v4
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] cloning https://github.com/actions/upload-artifact to /Users/Vinod/.cache/act/actions-upload-artifact@v4
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Unable to pull refs/heads/v4: worktree contains unstaged changes
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Cloned https://github.com/actions/upload-artifact to /Users/Vinod/.cache/act/actions-upload-artifact@v4
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Checked out v4
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Read action &{Upload a Build Artifact GitHub Upload a build artifact that can be used by subsequent workflow steps map[compression-level:{The level of compression for Zlib to be applied to the artifact archive. The value can range from 0 to 9: - 0: No compression - 1: Best speed - 6: Default compression (same as GNU Gzip) - 9: Best compression Higher levels will result in better compression, but will take longer to complete. For large files that are not easily compressed, a value of 0 is recommended for significantly faster uploads.
|
|
||||||
false 6} if-no-files-found:{The desired behavior if no files are found using the provided path.
|
|
||||||
Available Options:
|
|
||||||
warn: Output a warning but do not fail the action
|
|
||||||
error: Fail the action with an error message
|
|
||||||
ignore: Do not output any warnings or errors, the action does not fail
|
|
||||||
false warn} include-hidden-files:{If true, hidden files will be included in the artifact. If false, hidden files will be excluded from the artifact.
|
|
||||||
false false} name:{Artifact name false artifact} overwrite:{If true, an artifact with a matching name will be deleted before a new one is uploaded. If false, the action will fail if an artifact for the given name already exists. Does not fail if the artifact does not exist.
|
|
||||||
false false} path:{A file, directory or wildcard pattern that describes what to upload true } retention-days:{Duration after which artifact will expire in days. 0 means using default retention.
|
|
||||||
Minimum 1 day. Maximum 90 days unless changed from the repository settings page.
|
|
||||||
false }] map[artifact-digest:{SHA-256 digest for the artifact that was just uploaded. Empty if the artifact upload failed.
|
|
||||||
} artifact-id:{A unique identifier for the artifact that was just uploaded. Empty if the artifact upload failed.
|
|
||||||
This ID can be used as input to other APIs to download, delete or get more information about an artifact: https://docs.github.com/en/rest/actions/artifacts
|
|
||||||
} artifact-url:{A download URL for the artifact that was just uploaded. Empty if the artifact upload failed.
|
|
||||||
This download URL only works for requests Authenticated with GitHub. Anonymous downloads will be prompted to first login. If an anonymous download URL is needed than a short time restricted URL can be generated using the download artifact API: https://docs.github.com/en/rest/actions/artifacts#download-an-artifact
|
|
||||||
This URL will be valid for as long as the artifact exists and the workflow run and repository exists. Once an artifact has expired this URL will no longer work. Common uses cases for such a download URL can be adding download links to artifacts in descriptions or comments on pull requests or issues.
|
|
||||||
}] {node20 map[] dist/upload/index.js always() always() [] []} { }} from 'Unknown'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:0 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF:v4 GITHUB_ACTION_REPOSITORY:actions/checkout GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2746df9b70b8df36/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:visual-regression GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2746df9b70b8df36/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2746df9b70b8df36/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] expression '' evaluated to 'true'
|
|
||||||
[CI Pipeline/visual-regression] ⭐ Run Main Checkout code
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] About to run action &{Checkout Checkout a Git repository at a particular version map[clean:{Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching false true} fetch-depth:{Number of commits to fetch. 0 indicates all history for all branches and tags. false 1} fetch-tags:{Whether to fetch tags, even if fetch-depth > 0. false false} filter:{Partially clone against a given filter. Overrides sparse-checkout if set.
|
|
||||||
false } github-server-url:{The base URL for the GitHub instance that you are trying to clone from, will use environment defaults to fetch from the same instance that the workflow is running from unless specified. Example URLs are https://github.com or https://my-ghes-server.example.com false } lfs:{Whether to download Git-LFS files false false} path:{Relative path under $GITHUB_WORKSPACE to place the repository false } persist-credentials:{Whether to configure the token or SSH key with the local git config false true} ref:{The branch, tag or SHA to checkout. When checking out the repository that triggered a workflow, this defaults to the reference or SHA for that event. Otherwise, uses the default branch.
|
|
||||||
false } repository:{Repository name with owner. For example, actions/checkout false ${{ github.repository }}} set-safe-directory:{Add repository path as safe.directory for Git global config by running `git config --global --add safe.directory <path>` false true} show-progress:{Whether to show progress status output when fetching. false true} sparse-checkout:{Do a sparse checkout on given patterns. Each pattern should be separated with new lines.
|
|
||||||
false } sparse-checkout-cone-mode:{Specifies whether to use cone-mode when doing a sparse checkout.
|
|
||||||
false true} ssh-key:{SSH key used to fetch the repository. The SSH key is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the SSH key.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false } ssh-known-hosts:{Known hosts in addition to the user and global host key database. The public SSH keys for a host may be obtained using the utility `ssh-keyscan`. For example, `ssh-keyscan github.com`. The public key for github.com is always implicitly added.
|
|
||||||
false } ssh-strict:{Whether to perform strict host key checking. When true, adds the options `StrictHostKeyChecking=yes` and `CheckHostIP=no` to the SSH command line. Use the input `ssh-known-hosts` to configure additional hosts.
|
|
||||||
false true} ssh-user:{The user to use when connecting to the remote SSH host. By default 'git' is used.
|
|
||||||
false git} submodules:{Whether to checkout submodules: `true` to checkout submodules or `recursive` to recursively checkout submodules.
|
|
||||||
|
|
||||||
When the `ssh-key` input is not provided, SSH URLs beginning with `git@github.com:` are converted to HTTPS.
|
|
||||||
false false} token:{Personal access token (PAT) used to fetch the repository. The PAT is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the PAT.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary. Also when generating a new PAT, select the least scopes necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false ${{ github.token }}}] map[commit:{The commit SHA that was checked out } ref:{The branch, tag or SHA that was checked out }] {node20 map[] dist/index.js always() dist/index.js always() [] []} { }}
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] expression '${{ github.token }}' rewritten to 'format('{0}', github.token)'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] evaluating expression 'format('{0}', github.token)'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] expression 'format('{0}', github.token)' evaluated to '%!t(string=***)'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] expression '${{ github.repository }}' rewritten to 'format('{0}', github.repository)'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] evaluating expression 'format('{0}', github.repository)'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] expression 'format('{0}', github.repository)' evaluated to '%!t(string=CommunityRule/community-rule)'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] type=remote-action actionDir=/Users/Vinod/.cache/act/actions-checkout@v4 actionPath= workdir=/workspace/CommunityRule/community-rule actionCacheDir=/Users/Vinod/.cache/act actionName=actions-checkout@v4 containerActionDir=/Users/Vinod/.cache/act/2746df9b70b8df36/act/actions/actions-checkout@v4
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Removing /Users/Vinod/.cache/act/actions-checkout@v4/.gitignore before docker cp
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] /Users/Vinod/.cache/act/2746df9b70b8df36/act/actions/actions-checkout@v4
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Stripping prefix:/Users/Vinod/.cache/act/actions-checkout@v4/ src:/Users/Vinod/.cache/act/actions-checkout@v4/
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] executing remote job container: [node /Users/Vinod/.cache/act/2746df9b70b8df36/act/actions/actions-checkout@v4/dist/index.js]
|
|
||||||
[CI Pipeline/visual-regression] | Cannot find: node in PATH
|
|
||||||
[CI Pipeline/visual-regression] ❌ Failure - Main Checkout code
|
|
||||||
[CI Pipeline/visual-regression] Cannot find: node in PATH
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:1 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF:v4 GITHUB_ACTION_REPOSITORY:actions/setup-node GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2746df9b70b8df36/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:visual-regression GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2746df9b70b8df36/hostexecutor HOME:/Users/Vinod INPUT_CACHE:npm INPUT_NODE-VERSION:20 ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2746df9b70b8df36/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Skipping step 'Setup Node.js' due to ''
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:2 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2746df9b70b8df36/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:visual-regression GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2746df9b70b8df36/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2746df9b70b8df36/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Skipping step 'Install dependencies' due to ''
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:3 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2746df9b70b8df36/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:visual-regression GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2746df9b70b8df36/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2746df9b70b8df36/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Skipping step 'Install Playwright browsers' due to ''
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:4 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2746df9b70b8df36/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:visual-regression GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2746df9b70b8df36/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2746df9b70b8df36/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Skipping step 'Build application' due to ''
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:5 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2746df9b70b8df36/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:visual-regression GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2746df9b70b8df36/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2746df9b70b8df36/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Skipping step 'Start application' due to ''
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:6 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2746df9b70b8df36/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:visual-regression GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2746df9b70b8df36/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2746df9b70b8df36/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Skipping step 'Wait for application to be ready' due to ''
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:7 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2746df9b70b8df36/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:visual-regression GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2746df9b70b8df36/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2746df9b70b8df36/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Skipping step 'Run visual regression tests' due to ''
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:8 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF:v4 GITHUB_ACTION_REPOSITORY:actions/upload-artifact GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2746df9b70b8df36/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:visual-regression GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2746df9b70b8df36/hostexecutor HOME:/Users/Vinod INPUT_NAME:visual-regression-results INPUT_PATH:test-results/
|
|
||||||
tests/e2e/visual-regression.spec.ts-snapshots/
|
|
||||||
INPUT_RETENTION-DAYS:30 ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2746df9b70b8df36/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] evaluating expression 'always()'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] expression 'always()' evaluated to 'true'
|
|
||||||
[CI Pipeline/visual-regression] ⭐ Run Main Upload visual regression results
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] About to run action &{Upload a Build Artifact GitHub Upload a build artifact that can be used by subsequent workflow steps map[compression-level:{The level of compression for Zlib to be applied to the artifact archive. The value can range from 0 to 9: - 0: No compression - 1: Best speed - 6: Default compression (same as GNU Gzip) - 9: Best compression Higher levels will result in better compression, but will take longer to complete. For large files that are not easily compressed, a value of 0 is recommended for significantly faster uploads.
|
|
||||||
false 6} if-no-files-found:{The desired behavior if no files are found using the provided path.
|
|
||||||
Available Options:
|
|
||||||
warn: Output a warning but do not fail the action
|
|
||||||
error: Fail the action with an error message
|
|
||||||
ignore: Do not output any warnings or errors, the action does not fail
|
|
||||||
false warn} include-hidden-files:{If true, hidden files will be included in the artifact. If false, hidden files will be excluded from the artifact.
|
|
||||||
false false} name:{Artifact name false artifact} overwrite:{If true, an artifact with a matching name will be deleted before a new one is uploaded. If false, the action will fail if an artifact for the given name already exists. Does not fail if the artifact does not exist.
|
|
||||||
false false} path:{A file, directory or wildcard pattern that describes what to upload true } retention-days:{Duration after which artifact will expire in days. 0 means using default retention.
|
|
||||||
Minimum 1 day. Maximum 90 days unless changed from the repository settings page.
|
|
||||||
false }] map[artifact-digest:{SHA-256 digest for the artifact that was just uploaded. Empty if the artifact upload failed.
|
|
||||||
} artifact-id:{A unique identifier for the artifact that was just uploaded. Empty if the artifact upload failed.
|
|
||||||
This ID can be used as input to other APIs to download, delete or get more information about an artifact: https://docs.github.com/en/rest/actions/artifacts
|
|
||||||
} artifact-url:{A download URL for the artifact that was just uploaded. Empty if the artifact upload failed.
|
|
||||||
This download URL only works for requests Authenticated with GitHub. Anonymous downloads will be prompted to first login. If an anonymous download URL is needed than a short time restricted URL can be generated using the download artifact API: https://docs.github.com/en/rest/actions/artifacts#download-an-artifact
|
|
||||||
This URL will be valid for as long as the artifact exists and the workflow run and repository exists. Once an artifact has expired this URL will no longer work. Common uses cases for such a download URL can be adding download links to artifacts in descriptions or comments on pull requests or issues.
|
|
||||||
}] {node20 map[] dist/upload/index.js always() always() [] []} { }}
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] type=remote-action actionDir=/Users/Vinod/.cache/act/actions-upload-artifact@v4 actionPath= workdir=/workspace/CommunityRule/community-rule actionCacheDir=/Users/Vinod/.cache/act actionName=actions-upload-artifact@v4 containerActionDir=/Users/Vinod/.cache/act/2746df9b70b8df36/act/actions/actions-upload-artifact@v4
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Removing /Users/Vinod/.cache/act/actions-upload-artifact@v4/.gitignore before docker cp
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] /Users/Vinod/.cache/act/2746df9b70b8df36/act/actions/actions-upload-artifact@v4
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] Stripping prefix:/Users/Vinod/.cache/act/actions-upload-artifact@v4/ src:/Users/Vinod/.cache/act/actions-upload-artifact@v4/
|
|
||||||
[CI Pipeline/performance] [DEBUG] evaluating expression 'success()'
|
|
||||||
[CI Pipeline/performance] [DEBUG] expression 'success()' evaluated to 'true'
|
|
||||||
[CI Pipeline/performance] ☁ git clone 'https://github.com/actions/checkout' # ref=v4
|
|
||||||
[CI Pipeline/performance] [DEBUG] cloning https://github.com/actions/checkout to /Users/Vinod/.cache/act/actions-checkout@v4
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] executing remote job container: [node /Users/Vinod/.cache/act/2746df9b70b8df36/act/actions/actions-upload-artifact@v4/dist/upload/index.js]
|
|
||||||
[CI Pipeline/visual-regression] | Cannot find: node in PATH
|
|
||||||
[CI Pipeline/visual-regression] ❌ Failure - Main Upload visual regression results
|
|
||||||
[CI Pipeline/visual-regression] Cannot find: node in PATH
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] skipping post step for 'Setup Node.js'; main step was skipped
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:0 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF:v4 GITHUB_ACTION_REPOSITORY:actions/checkout GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_ENV:/Users/Vinod/.cache/act/2746df9b70b8df36/act/workflow/envs.txt GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2746df9b70b8df36/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:visual-regression GITHUB_OUTPUT:/Users/Vinod/.cache/act/2746df9b70b8df36/act/workflow/outputcmd.txt GITHUB_PATH:/Users/Vinod/.cache/act/2746df9b70b8df36/act/workflow/pathcmd.txt GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_STATE:/Users/Vinod/.cache/act/2746df9b70b8df36/act/workflow/statecmd.txt GITHUB_STEP_SUMMARY:/Users/Vinod/.cache/act/2746df9b70b8df36/act/workflow/SUMMARY.md GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2746df9b70b8df36/hostexecutor HOME:/Users/Vinod INPUT_CLEAN:true INPUT_FETCH-DEPTH:1 INPUT_FETCH-TAGS:false INPUT_FILTER: INPUT_GITHUB-SERVER-URL: INPUT_LFS:false INPUT_PATH: INPUT_PERSIST-CREDENTIALS:true INPUT_REF: INPUT_REPOSITORY:CommunityRule/community-rule INPUT_SET-SAFE-DIRECTORY:true INPUT_SHOW-PROGRESS:true INPUT_SPARSE-CHECKOUT: INPUT_SPARSE-CHECKOUT-CONE-MODE:true INPUT_SSH-KEY: INPUT_SSH-KNOWN-HOSTS: INPUT_SSH-STRICT:true INPUT_SSH-USER:git INPUT_SUBMODULES:false INPUT_TOKEN:*** ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2746df9b70b8df36/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] evaluating expression 'always()'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] expression 'always()' evaluated to 'true'
|
|
||||||
[CI Pipeline/visual-regression] ⭐ Run Post Checkout code
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] run post step for 'Checkout code'
|
|
||||||
[CI Pipeline/visual-regression] [DEBUG] executing remote job container: [node /Users/Vinod/.cache/act/2746df9b70b8df36/act/actions/actions-checkout@v4/dist/index.js]
|
|
||||||
[CI Pipeline/visual-regression] | Cannot find: node in PATH
|
|
||||||
[CI Pipeline/visual-regression] ❌ Failure - Post Checkout code
|
|
||||||
[CI Pipeline/visual-regression] Cleaning up services for job visual-regression
|
|
||||||
[CI Pipeline/visual-regression] Cleaning up container for job visual-regression
|
|
||||||
[CI Pipeline/visual-regression] 🏁 Job failed
|
|
||||||
[CI Pipeline/performance] [DEBUG] Unable to pull refs/heads/v4: worktree contains unstaged changes
|
|
||||||
[CI Pipeline/performance] [DEBUG] Cloned https://github.com/actions/checkout to /Users/Vinod/.cache/act/actions-checkout@v4
|
|
||||||
[CI Pipeline/performance] [DEBUG] Checked out v4
|
|
||||||
[CI Pipeline/performance] [DEBUG] Read action &{Checkout Checkout a Git repository at a particular version map[clean:{Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching false true} fetch-depth:{Number of commits to fetch. 0 indicates all history for all branches and tags. false 1} fetch-tags:{Whether to fetch tags, even if fetch-depth > 0. false false} filter:{Partially clone against a given filter. Overrides sparse-checkout if set.
|
|
||||||
false } github-server-url:{The base URL for the GitHub instance that you are trying to clone from, will use environment defaults to fetch from the same instance that the workflow is running from unless specified. Example URLs are https://github.com or https://my-ghes-server.example.com false } lfs:{Whether to download Git-LFS files false false} path:{Relative path under $GITHUB_WORKSPACE to place the repository false } persist-credentials:{Whether to configure the token or SSH key with the local git config false true} ref:{The branch, tag or SHA to checkout. When checking out the repository that triggered a workflow, this defaults to the reference or SHA for that event. Otherwise, uses the default branch.
|
|
||||||
false } repository:{Repository name with owner. For example, actions/checkout false ${{ github.repository }}} set-safe-directory:{Add repository path as safe.directory for Git global config by running `git config --global --add safe.directory <path>` false true} show-progress:{Whether to show progress status output when fetching. false true} sparse-checkout:{Do a sparse checkout on given patterns. Each pattern should be separated with new lines.
|
|
||||||
false } sparse-checkout-cone-mode:{Specifies whether to use cone-mode when doing a sparse checkout.
|
|
||||||
false true} ssh-key:{SSH key used to fetch the repository. The SSH key is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the SSH key.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false } ssh-known-hosts:{Known hosts in addition to the user and global host key database. The public SSH keys for a host may be obtained using the utility `ssh-keyscan`. For example, `ssh-keyscan github.com`. The public key for github.com is always implicitly added.
|
|
||||||
false } ssh-strict:{Whether to perform strict host key checking. When true, adds the options `StrictHostKeyChecking=yes` and `CheckHostIP=no` to the SSH command line. Use the input `ssh-known-hosts` to configure additional hosts.
|
|
||||||
false true} ssh-user:{The user to use when connecting to the remote SSH host. By default 'git' is used.
|
|
||||||
false git} submodules:{Whether to checkout submodules: `true` to checkout submodules or `recursive` to recursively checkout submodules.
|
|
||||||
|
|
||||||
When the `ssh-key` input is not provided, SSH URLs beginning with `git@github.com:` are converted to HTTPS.
|
|
||||||
false false} token:{Personal access token (PAT) used to fetch the repository. The PAT is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the PAT.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary. Also when generating a new PAT, select the least scopes necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false ${{ github.token }}}] map[commit:{The commit SHA that was checked out } ref:{The branch, tag or SHA that was checked out }] {node20 map[] dist/index.js always() dist/index.js always() [] []} { }} from 'Unknown'
|
|
||||||
[CI Pipeline/performance] ☁ git clone 'https://github.com/actions/setup-node' # ref=v4
|
|
||||||
[CI Pipeline/performance] [DEBUG] cloning https://github.com/actions/setup-node to /Users/Vinod/.cache/act/actions-setup-node@v4
|
|
||||||
[CI Pipeline/performance] [DEBUG] Cloned https://github.com/actions/setup-node to /Users/Vinod/.cache/act/actions-setup-node@v4
|
|
||||||
[CI Pipeline/performance] [DEBUG] Checked out v4
|
|
||||||
[CI Pipeline/performance] [DEBUG] Read action &{Setup Node.js environment GitHub Setup a Node.js environment by adding problem matchers and optionally downloading and adding it to the PATH. map[always-auth:{Set always-auth in npmrc. false false} architecture:{Target architecture for Node to use. Examples: x86, x64. Will use system architecture by default. false } cache:{Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm. false } cache-dependency-path:{Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies. false } check-latest:{Set this option if you want the action to check for the latest available version that satisfies the version spec. false false} mirror:{Used to specify an alternative mirror to downlooad Node.js binaries from false } mirror-token:{The token used as Authorization header when fetching from the mirror false } node-version:{Version Spec of the version to use. Examples: 12.x, 10.15.1, >=10.15.0. false } node-version-file:{File containing the version Spec of the version to use. Examples: package.json, .nvmrc, .node-version, .tool-versions. false } registry-url:{Optional registry to set up for auth. Will set the registry in a project level .npmrc and .yarnrc file, and set up auth to read in from env.NODE_AUTH_TOKEN. false } scope:{Optional scope for authenticating against scoped registries. Will fall back to the repository owner when using the GitHub Packages registry (https://npm.pkg.github.com/). false } token:{Used to pull node distributions from node-versions. Since there's a default, this is typically not supplied by the user. When running this action on github.com, the default value is sufficient. When running on GHES, you can pass a personal access token for github.com if you are experiencing rate limiting. false ${{ github.server_url == 'https://github.com' && github.token || '' }}}] map[cache-hit:{A boolean value to indicate if a cache was hit. } node-version:{The installed node version. }] {node20 map[] dist/setup/index.js always() dist/cache-save/index.js success() [] []} { }} from 'Unknown'
|
|
||||||
[CI Pipeline/performance] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:0 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF:v4 GITHUB_ACTION_REPOSITORY:actions/checkout GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:performance GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/performance] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/performance] [DEBUG] expression '' evaluated to 'true'
|
|
||||||
[CI Pipeline/performance] ⭐ Run Main Checkout code
|
|
||||||
[CI Pipeline/performance] [DEBUG] About to run action &{Checkout Checkout a Git repository at a particular version map[clean:{Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching false true} fetch-depth:{Number of commits to fetch. 0 indicates all history for all branches and tags. false 1} fetch-tags:{Whether to fetch tags, even if fetch-depth > 0. false false} filter:{Partially clone against a given filter. Overrides sparse-checkout if set.
|
|
||||||
false } github-server-url:{The base URL for the GitHub instance that you are trying to clone from, will use environment defaults to fetch from the same instance that the workflow is running from unless specified. Example URLs are https://github.com or https://my-ghes-server.example.com false } lfs:{Whether to download Git-LFS files false false} path:{Relative path under $GITHUB_WORKSPACE to place the repository false } persist-credentials:{Whether to configure the token or SSH key with the local git config false true} ref:{The branch, tag or SHA to checkout. When checking out the repository that triggered a workflow, this defaults to the reference or SHA for that event. Otherwise, uses the default branch.
|
|
||||||
false } repository:{Repository name with owner. For example, actions/checkout false ${{ github.repository }}} set-safe-directory:{Add repository path as safe.directory for Git global config by running `git config --global --add safe.directory <path>` false true} show-progress:{Whether to show progress status output when fetching. false true} sparse-checkout:{Do a sparse checkout on given patterns. Each pattern should be separated with new lines.
|
|
||||||
false } sparse-checkout-cone-mode:{Specifies whether to use cone-mode when doing a sparse checkout.
|
|
||||||
false true} ssh-key:{SSH key used to fetch the repository. The SSH key is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the SSH key.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false } ssh-known-hosts:{Known hosts in addition to the user and global host key database. The public SSH keys for a host may be obtained using the utility `ssh-keyscan`. For example, `ssh-keyscan github.com`. The public key for github.com is always implicitly added.
|
|
||||||
false } ssh-strict:{Whether to perform strict host key checking. When true, adds the options `StrictHostKeyChecking=yes` and `CheckHostIP=no` to the SSH command line. Use the input `ssh-known-hosts` to configure additional hosts.
|
|
||||||
false true} ssh-user:{The user to use when connecting to the remote SSH host. By default 'git' is used.
|
|
||||||
false git} submodules:{Whether to checkout submodules: `true` to checkout submodules or `recursive` to recursively checkout submodules.
|
|
||||||
|
|
||||||
When the `ssh-key` input is not provided, SSH URLs beginning with `git@github.com:` are converted to HTTPS.
|
|
||||||
false false} token:{Personal access token (PAT) used to fetch the repository. The PAT is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the PAT.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary. Also when generating a new PAT, select the least scopes necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false ${{ github.token }}}] map[commit:{The commit SHA that was checked out } ref:{The branch, tag or SHA that was checked out }] {node20 map[] dist/index.js always() dist/index.js always() [] []} { }}
|
|
||||||
[CI Pipeline/performance] [DEBUG] expression '${{ github.repository }}' rewritten to 'format('{0}', github.repository)'
|
|
||||||
[CI Pipeline/performance] [DEBUG] evaluating expression 'format('{0}', github.repository)'
|
|
||||||
[CI Pipeline/performance] [DEBUG] expression 'format('{0}', github.repository)' evaluated to '%!t(string=CommunityRule/community-rule)'
|
|
||||||
[CI Pipeline/performance] [DEBUG] expression '${{ github.token }}' rewritten to 'format('{0}', github.token)'
|
|
||||||
[CI Pipeline/performance] [DEBUG] evaluating expression 'format('{0}', github.token)'
|
|
||||||
[CI Pipeline/performance] [DEBUG] expression 'format('{0}', github.token)' evaluated to '%!t(string=***)'
|
|
||||||
[CI Pipeline/performance] [DEBUG] type=remote-action actionDir=/Users/Vinod/.cache/act/actions-checkout@v4 actionPath= workdir=/workspace/CommunityRule/community-rule actionCacheDir=/Users/Vinod/.cache/act actionName=actions-checkout@v4 containerActionDir=/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/act/actions/actions-checkout@v4
|
|
||||||
[CI Pipeline/performance] [DEBUG] Removing /Users/Vinod/.cache/act/actions-checkout@v4/.gitignore before docker cp
|
|
||||||
[CI Pipeline/performance] [DEBUG] /Users/Vinod/.cache/act/2f6e97e8bd8dbf97/act/actions/actions-checkout@v4
|
|
||||||
[CI Pipeline/performance] [DEBUG] Stripping prefix:/Users/Vinod/.cache/act/actions-checkout@v4/ src:/Users/Vinod/.cache/act/actions-checkout@v4/
|
|
||||||
[CI Pipeline/performance] [DEBUG] executing remote job container: [node /Users/Vinod/.cache/act/2f6e97e8bd8dbf97/act/actions/actions-checkout@v4/dist/index.js]
|
|
||||||
[CI Pipeline/performance] | Cannot find: node in PATH
|
|
||||||
[CI Pipeline/performance] ❌ Failure - Main Checkout code
|
|
||||||
[CI Pipeline/performance] Cannot find: node in PATH
|
|
||||||
[CI Pipeline/performance] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:1 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF:v4 GITHUB_ACTION_REPOSITORY:actions/setup-node GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:performance GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/hostexecutor HOME:/Users/Vinod INPUT_CACHE:npm INPUT_NODE-VERSION:20 ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/performance] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/performance] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/performance] [DEBUG] Skipping step 'Setup Node.js' due to ''
|
|
||||||
[CI Pipeline/performance] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:2 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:performance GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/performance] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/performance] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/performance] [DEBUG] Skipping step 'Install dependencies' due to ''
|
|
||||||
[CI Pipeline/performance] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:3 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:performance GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/performance] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/performance] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/performance] [DEBUG] Skipping step 'Build application' due to ''
|
|
||||||
[CI Pipeline/performance] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:4 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:performance GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/performance] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/performance] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/performance] [DEBUG] Skipping step 'Start application' due to ''
|
|
||||||
[CI Pipeline/performance] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:5 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:performance GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/performance] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/performance] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/performance] [DEBUG] Skipping step 'Wait for application to be ready' due to ''
|
|
||||||
[CI Pipeline/performance] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:6 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:performance GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/performance] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/performance] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/performance] [DEBUG] Skipping step 'Run Lighthouse CI' due to ''
|
|
||||||
[CI Pipeline/performance] [DEBUG] skipping post step for 'Setup Node.js'; main step was skipped
|
|
||||||
[CI Pipeline/performance] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:0 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF:v4 GITHUB_ACTION_REPOSITORY:actions/checkout GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_ENV:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/act/workflow/envs.txt GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:performance GITHUB_OUTPUT:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/act/workflow/outputcmd.txt GITHUB_PATH:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/act/workflow/pathcmd.txt GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_STATE:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/act/workflow/statecmd.txt GITHUB_STEP_SUMMARY:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/act/workflow/SUMMARY.md GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/hostexecutor HOME:/Users/Vinod INPUT_CLEAN:true INPUT_FETCH-DEPTH:1 INPUT_FETCH-TAGS:false INPUT_FILTER: INPUT_GITHUB-SERVER-URL: INPUT_LFS:false INPUT_PATH: INPUT_PERSIST-CREDENTIALS:true INPUT_REF: INPUT_REPOSITORY:CommunityRule/community-rule INPUT_SET-SAFE-DIRECTORY:true INPUT_SHOW-PROGRESS:true INPUT_SPARSE-CHECKOUT: INPUT_SPARSE-CHECKOUT-CONE-MODE:true INPUT_SSH-KEY: INPUT_SSH-KNOWN-HOSTS: INPUT_SSH-STRICT:true INPUT_SSH-USER:git INPUT_SUBMODULES:false INPUT_TOKEN:*** ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/2f6e97e8bd8dbf97/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/performance] [DEBUG] evaluating expression 'always()'
|
|
||||||
[CI Pipeline/performance] [DEBUG] expression 'always()' evaluated to 'true'
|
|
||||||
[CI Pipeline/performance] ⭐ Run Post Checkout code
|
|
||||||
[CI Pipeline/performance] [DEBUG] run post step for 'Checkout code'
|
|
||||||
[CI Pipeline/performance] [DEBUG] executing remote job container: [node /Users/Vinod/.cache/act/2f6e97e8bd8dbf97/act/actions/actions-checkout@v4/dist/index.js]
|
|
||||||
[CI Pipeline/performance] | Cannot find: node in PATH
|
|
||||||
[CI Pipeline/performance] ❌ Failure - Post Checkout code
|
|
||||||
[CI Pipeline/performance] Cleaning up services for job performance
|
|
||||||
[CI Pipeline/performance] Cleaning up container for job performance
|
|
||||||
[CI Pipeline/performance] 🏁 Job failed
|
|
||||||
[CI Pipeline/storybook] [DEBUG] evaluating expression 'success()'
|
|
||||||
[CI Pipeline/storybook] [DEBUG] expression 'success()' evaluated to 'true'
|
|
||||||
[CI Pipeline/storybook] ☁ git clone 'https://github.com/actions/checkout' # ref=v4
|
|
||||||
[CI Pipeline/storybook] [DEBUG] cloning https://github.com/actions/checkout to /Users/Vinod/.cache/act/actions-checkout@v4
|
|
||||||
[CI Pipeline/storybook] [DEBUG] Unable to pull refs/heads/v4: worktree contains unstaged changes
|
|
||||||
[CI Pipeline/storybook] [DEBUG] Cloned https://github.com/actions/checkout to /Users/Vinod/.cache/act/actions-checkout@v4
|
|
||||||
[CI Pipeline/storybook] [DEBUG] Checked out v4
|
|
||||||
[CI Pipeline/storybook] [DEBUG] Read action &{Checkout Checkout a Git repository at a particular version map[clean:{Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching false true} fetch-depth:{Number of commits to fetch. 0 indicates all history for all branches and tags. false 1} fetch-tags:{Whether to fetch tags, even if fetch-depth > 0. false false} filter:{Partially clone against a given filter. Overrides sparse-checkout if set.
|
|
||||||
false } github-server-url:{The base URL for the GitHub instance that you are trying to clone from, will use environment defaults to fetch from the same instance that the workflow is running from unless specified. Example URLs are https://github.com or https://my-ghes-server.example.com false } lfs:{Whether to download Git-LFS files false false} path:{Relative path under $GITHUB_WORKSPACE to place the repository false } persist-credentials:{Whether to configure the token or SSH key with the local git config false true} ref:{The branch, tag or SHA to checkout. When checking out the repository that triggered a workflow, this defaults to the reference or SHA for that event. Otherwise, uses the default branch.
|
|
||||||
false } repository:{Repository name with owner. For example, actions/checkout false ${{ github.repository }}} set-safe-directory:{Add repository path as safe.directory for Git global config by running `git config --global --add safe.directory <path>` false true} show-progress:{Whether to show progress status output when fetching. false true} sparse-checkout:{Do a sparse checkout on given patterns. Each pattern should be separated with new lines.
|
|
||||||
false } sparse-checkout-cone-mode:{Specifies whether to use cone-mode when doing a sparse checkout.
|
|
||||||
false true} ssh-key:{SSH key used to fetch the repository. The SSH key is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the SSH key.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false } ssh-known-hosts:{Known hosts in addition to the user and global host key database. The public SSH keys for a host may be obtained using the utility `ssh-keyscan`. For example, `ssh-keyscan github.com`. The public key for github.com is always implicitly added.
|
|
||||||
false } ssh-strict:{Whether to perform strict host key checking. When true, adds the options `StrictHostKeyChecking=yes` and `CheckHostIP=no` to the SSH command line. Use the input `ssh-known-hosts` to configure additional hosts.
|
|
||||||
false true} ssh-user:{The user to use when connecting to the remote SSH host. By default 'git' is used.
|
|
||||||
false git} submodules:{Whether to checkout submodules: `true` to checkout submodules or `recursive` to recursively checkout submodules.
|
|
||||||
|
|
||||||
When the `ssh-key` input is not provided, SSH URLs beginning with `git@github.com:` are converted to HTTPS.
|
|
||||||
false false} token:{Personal access token (PAT) used to fetch the repository. The PAT is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the PAT.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary. Also when generating a new PAT, select the least scopes necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false ${{ github.token }}}] map[commit:{The commit SHA that was checked out } ref:{The branch, tag or SHA that was checked out }] {node20 map[] dist/index.js always() dist/index.js always() [] []} { }} from 'Unknown'
|
|
||||||
[CI Pipeline/storybook] ☁ git clone 'https://github.com/actions/setup-node' # ref=v4
|
|
||||||
[CI Pipeline/storybook] [DEBUG] cloning https://github.com/actions/setup-node to /Users/Vinod/.cache/act/actions-setup-node@v4
|
|
||||||
[CI Pipeline/storybook] [DEBUG] Cloned https://github.com/actions/setup-node to /Users/Vinod/.cache/act/actions-setup-node@v4
|
|
||||||
[CI Pipeline/storybook] [DEBUG] Checked out v4
|
|
||||||
[CI Pipeline/storybook] [DEBUG] Read action &{Setup Node.js environment GitHub Setup a Node.js environment by adding problem matchers and optionally downloading and adding it to the PATH. map[always-auth:{Set always-auth in npmrc. false false} architecture:{Target architecture for Node to use. Examples: x86, x64. Will use system architecture by default. false } cache:{Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm. false } cache-dependency-path:{Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies. false } check-latest:{Set this option if you want the action to check for the latest available version that satisfies the version spec. false false} mirror:{Used to specify an alternative mirror to downlooad Node.js binaries from false } mirror-token:{The token used as Authorization header when fetching from the mirror false } node-version:{Version Spec of the version to use. Examples: 12.x, 10.15.1, >=10.15.0. false } node-version-file:{File containing the version Spec of the version to use. Examples: package.json, .nvmrc, .node-version, .tool-versions. false } registry-url:{Optional registry to set up for auth. Will set the registry in a project level .npmrc and .yarnrc file, and set up auth to read in from env.NODE_AUTH_TOKEN. false } scope:{Optional scope for authenticating against scoped registries. Will fall back to the repository owner when using the GitHub Packages registry (https://npm.pkg.github.com/). false } token:{Used to pull node distributions from node-versions. Since there's a default, this is typically not supplied by the user. When running this action on github.com, the default value is sufficient. When running on GHES, you can pass a personal access token for github.com if you are experiencing rate limiting. false ${{ github.server_url == 'https://github.com' && github.token || '' }}}] map[cache-hit:{A boolean value to indicate if a cache was hit. } node-version:{The installed node version. }] {node20 map[] dist/setup/index.js always() dist/cache-save/index.js success() [] []} { }} from 'Unknown'
|
|
||||||
[CI Pipeline/storybook] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:0 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF:v4 GITHUB_ACTION_REPOSITORY:actions/checkout GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:storybook GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/storybook] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/storybook] [DEBUG] expression '' evaluated to 'true'
|
|
||||||
[CI Pipeline/storybook] ⭐ Run Main Checkout code
|
|
||||||
[CI Pipeline/storybook] [DEBUG] About to run action &{Checkout Checkout a Git repository at a particular version map[clean:{Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching false true} fetch-depth:{Number of commits to fetch. 0 indicates all history for all branches and tags. false 1} fetch-tags:{Whether to fetch tags, even if fetch-depth > 0. false false} filter:{Partially clone against a given filter. Overrides sparse-checkout if set.
|
|
||||||
false } github-server-url:{The base URL for the GitHub instance that you are trying to clone from, will use environment defaults to fetch from the same instance that the workflow is running from unless specified. Example URLs are https://github.com or https://my-ghes-server.example.com false } lfs:{Whether to download Git-LFS files false false} path:{Relative path under $GITHUB_WORKSPACE to place the repository false } persist-credentials:{Whether to configure the token or SSH key with the local git config false true} ref:{The branch, tag or SHA to checkout. When checking out the repository that triggered a workflow, this defaults to the reference or SHA for that event. Otherwise, uses the default branch.
|
|
||||||
false } repository:{Repository name with owner. For example, actions/checkout false ${{ github.repository }}} set-safe-directory:{Add repository path as safe.directory for Git global config by running `git config --global --add safe.directory <path>` false true} show-progress:{Whether to show progress status output when fetching. false true} sparse-checkout:{Do a sparse checkout on given patterns. Each pattern should be separated with new lines.
|
|
||||||
false } sparse-checkout-cone-mode:{Specifies whether to use cone-mode when doing a sparse checkout.
|
|
||||||
false true} ssh-key:{SSH key used to fetch the repository. The SSH key is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the SSH key.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false } ssh-known-hosts:{Known hosts in addition to the user and global host key database. The public SSH keys for a host may be obtained using the utility `ssh-keyscan`. For example, `ssh-keyscan github.com`. The public key for github.com is always implicitly added.
|
|
||||||
false } ssh-strict:{Whether to perform strict host key checking. When true, adds the options `StrictHostKeyChecking=yes` and `CheckHostIP=no` to the SSH command line. Use the input `ssh-known-hosts` to configure additional hosts.
|
|
||||||
false true} ssh-user:{The user to use when connecting to the remote SSH host. By default 'git' is used.
|
|
||||||
false git} submodules:{Whether to checkout submodules: `true` to checkout submodules or `recursive` to recursively checkout submodules.
|
|
||||||
|
|
||||||
When the `ssh-key` input is not provided, SSH URLs beginning with `git@github.com:` are converted to HTTPS.
|
|
||||||
false false} token:{Personal access token (PAT) used to fetch the repository. The PAT is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the PAT.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary. Also when generating a new PAT, select the least scopes necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false ${{ github.token }}}] map[commit:{The commit SHA that was checked out } ref:{The branch, tag or SHA that was checked out }] {node20 map[] dist/index.js always() dist/index.js always() [] []} { }}
|
|
||||||
[CI Pipeline/storybook] [DEBUG] expression '${{ github.repository }}' rewritten to 'format('{0}', github.repository)'
|
|
||||||
[CI Pipeline/storybook] [DEBUG] evaluating expression 'format('{0}', github.repository)'
|
|
||||||
[CI Pipeline/storybook] [DEBUG] expression 'format('{0}', github.repository)' evaluated to '%!t(string=CommunityRule/community-rule)'
|
|
||||||
[CI Pipeline/storybook] [DEBUG] expression '${{ github.token }}' rewritten to 'format('{0}', github.token)'
|
|
||||||
[CI Pipeline/storybook] [DEBUG] evaluating expression 'format('{0}', github.token)'
|
|
||||||
[CI Pipeline/storybook] [DEBUG] expression 'format('{0}', github.token)' evaluated to '%!t(string=***)'
|
|
||||||
[CI Pipeline/storybook] [DEBUG] type=remote-action actionDir=/Users/Vinod/.cache/act/actions-checkout@v4 actionPath= workdir=/workspace/CommunityRule/community-rule actionCacheDir=/Users/Vinod/.cache/act actionName=actions-checkout@v4 containerActionDir=/Users/Vinod/.cache/act/eaaa7b6f837dcf49/act/actions/actions-checkout@v4
|
|
||||||
[CI Pipeline/storybook] [DEBUG] Removing /Users/Vinod/.cache/act/actions-checkout@v4/.gitignore before docker cp
|
|
||||||
[CI Pipeline/storybook] [DEBUG] /Users/Vinod/.cache/act/eaaa7b6f837dcf49/act/actions/actions-checkout@v4
|
|
||||||
[CI Pipeline/storybook] [DEBUG] Stripping prefix:/Users/Vinod/.cache/act/actions-checkout@v4/ src:/Users/Vinod/.cache/act/actions-checkout@v4/
|
|
||||||
[CI Pipeline/storybook] [DEBUG] executing remote job container: [node /Users/Vinod/.cache/act/eaaa7b6f837dcf49/act/actions/actions-checkout@v4/dist/index.js]
|
|
||||||
[CI Pipeline/storybook] | Cannot find: node in PATH
|
|
||||||
[CI Pipeline/storybook] ❌ Failure - Main Checkout code
|
|
||||||
[CI Pipeline/storybook] Cannot find: node in PATH
|
|
||||||
[CI Pipeline/storybook] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:1 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF:v4 GITHUB_ACTION_REPOSITORY:actions/setup-node GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:storybook GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/hostexecutor HOME:/Users/Vinod INPUT_CACHE:npm INPUT_NODE-VERSION:20 ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/storybook] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/storybook] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/storybook] [DEBUG] Skipping step 'Setup Node.js' due to ''
|
|
||||||
[CI Pipeline/storybook] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:2 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:storybook GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/storybook] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/storybook] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/storybook] [DEBUG] Skipping step 'Install dependencies' due to ''
|
|
||||||
[CI Pipeline/storybook] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:3 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:storybook GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/storybook] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/storybook] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/storybook] [DEBUG] Skipping step 'Build Storybook' due to ''
|
|
||||||
[CI Pipeline/storybook] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:4 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:storybook GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/storybook] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/storybook] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/storybook] [DEBUG] Skipping step 'Run Storybook tests' due to ''
|
|
||||||
[CI Pipeline/storybook] [DEBUG] skipping post step for 'Setup Node.js'; main step was skipped
|
|
||||||
[CI Pipeline/storybook] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50511/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:0 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF:v4 GITHUB_ACTION_REPOSITORY:actions/checkout GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_ENV:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/act/workflow/envs.txt GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:storybook GITHUB_OUTPUT:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/act/workflow/outputcmd.txt GITHUB_PATH:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/act/workflow/pathcmd.txt GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_STATE:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/act/workflow/statecmd.txt GITHUB_STEP_SUMMARY:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/act/workflow/SUMMARY.md GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/hostexecutor HOME:/Users/Vinod INPUT_CLEAN:true INPUT_FETCH-DEPTH:1 INPUT_FETCH-TAGS:false INPUT_FILTER: INPUT_GITHUB-SERVER-URL: INPUT_LFS:false INPUT_PATH: INPUT_PERSIST-CREDENTIALS:true INPUT_REF: INPUT_REPOSITORY:CommunityRule/community-rule INPUT_SET-SAFE-DIRECTORY:true INPUT_SHOW-PROGRESS:true INPUT_SPARSE-CHECKOUT: INPUT_SPARSE-CHECKOUT-CONE-MODE:true INPUT_SSH-KEY: INPUT_SSH-KNOWN-HOSTS: INPUT_SSH-STRICT:true INPUT_SSH-USER:git INPUT_SUBMODULES:false INPUT_TOKEN:*** ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/eaaa7b6f837dcf49/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/storybook] [DEBUG] evaluating expression 'always()'
|
|
||||||
[CI Pipeline/storybook] [DEBUG] expression 'always()' evaluated to 'true'
|
|
||||||
[CI Pipeline/storybook] ⭐ Run Post Checkout code
|
|
||||||
[CI Pipeline/storybook] [DEBUG] run post step for 'Checkout code'
|
|
||||||
[CI Pipeline/storybook] [DEBUG] executing remote job container: [node /Users/Vinod/.cache/act/eaaa7b6f837dcf49/act/actions/actions-checkout@v4/dist/index.js]
|
|
||||||
[CI Pipeline/storybook] | Cannot find: node in PATH
|
|
||||||
[CI Pipeline/storybook] ❌ Failure - Post Checkout code
|
|
||||||
[CI Pipeline/storybook] Cleaning up services for job storybook
|
|
||||||
[CI Pipeline/storybook] Cleaning up container for job storybook
|
|
||||||
[CI Pipeline/storybook] 🏁 Job failed
|
|
||||||
[CI Pipeline/lint] [DEBUG] evaluating expression 'success()'
|
|
||||||
[CI Pipeline/lint] [DEBUG] expression 'success()' evaluated to 'true'
|
|
||||||
[CI Pipeline/lint] ☁ git clone 'https://github.com/actions/checkout' # ref=v4
|
|
||||||
[CI Pipeline/lint] [DEBUG] cloning https://github.com/actions/checkout to /Users/Vinod/.cache/act/actions-checkout@v4
|
|
||||||
[CI Pipeline/lint] [DEBUG] Unable to pull refs/heads/v4: worktree contains unstaged changes
|
|
||||||
[CI Pipeline/lint] [DEBUG] Cloned https://github.com/actions/checkout to /Users/Vinod/.cache/act/actions-checkout@v4
|
|
||||||
[CI Pipeline/lint] [DEBUG] Checked out v4
|
|
||||||
[CI Pipeline/lint] [DEBUG] Read action &{Checkout Checkout a Git repository at a particular version map[clean:{Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching false true} fetch-depth:{Number of commits to fetch. 0 indicates all history for all branches and tags. false 1} fetch-tags:{Whether to fetch tags, even if fetch-depth > 0. false false} filter:{Partially clone against a given filter. Overrides sparse-checkout if set.
|
|
||||||
false } github-server-url:{The base URL for the GitHub instance that you are trying to clone from, will use environment defaults to fetch from the same instance that the workflow is running from unless specified. Example URLs are https://github.com or https://my-ghes-server.example.com false } lfs:{Whether to download Git-LFS files false false} path:{Relative path under $GITHUB_WORKSPACE to place the repository false } persist-credentials:{Whether to configure the token or SSH key with the local git config false true} ref:{The branch, tag or SHA to checkout. When checking out the repository that triggered a workflow, this defaults to the reference or SHA for that event. Otherwise, uses the default branch.
|
|
||||||
false } repository:{Repository name with owner. For example, actions/checkout false ${{ github.repository }}} set-safe-directory:{Add repository path as safe.directory for Git global config by running `git config --global --add safe.directory <path>` false true} show-progress:{Whether to show progress status output when fetching. false true} sparse-checkout:{Do a sparse checkout on given patterns. Each pattern should be separated with new lines.
|
|
||||||
false } sparse-checkout-cone-mode:{Specifies whether to use cone-mode when doing a sparse checkout.
|
|
||||||
false true} ssh-key:{SSH key used to fetch the repository. The SSH key is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the SSH key.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false } ssh-known-hosts:{Known hosts in addition to the user and global host key database. The public SSH keys for a host may be obtained using the utility `ssh-keyscan`. For example, `ssh-keyscan github.com`. The public key for github.com is always implicitly added.
|
|
||||||
false } ssh-strict:{Whether to perform strict host key checking. When true, adds the options `StrictHostKeyChecking=yes` and `CheckHostIP=no` to the SSH command line. Use the input `ssh-known-hosts` to configure additional hosts.
|
|
||||||
false true} ssh-user:{The user to use when connecting to the remote SSH host. By default 'git' is used.
|
|
||||||
false git} submodules:{Whether to checkout submodules: `true` to checkout submodules or `recursive` to recursively checkout submodules.
|
|
||||||
|
|
||||||
When the `ssh-key` input is not provided, SSH URLs beginning with `git@github.com:` are converted to HTTPS.
|
|
||||||
false false} token:{Personal access token (PAT) used to fetch the repository. The PAT is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the PAT.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary. Also when generating a new PAT, select the least scopes necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false ${{ github.token }}}] map[commit:{The commit SHA that was checked out } ref:{The branch, tag or SHA that was checked out }] {node20 map[] dist/index.js always() dist/index.js always() [] []} { }} from 'Unknown'
|
|
||||||
[CI Pipeline/lint] context canceled
|
|
||||||
[CI Pipeline/lint] [DEBUG] skipping post step for 'Setup Node.js'; step was not executed
|
|
||||||
[CI Pipeline/lint] [DEBUG] skipping post step for 'Checkout code'; step was not executed
|
|
||||||
[CI Pipeline/lint] Cleaning up services for job lint
|
|
||||||
[CI Pipeline/lint] Cleaning up container for job lint
|
|
||||||
[CI Pipeline/lint] 🏁 Job succeeded
|
|
||||||
[CI Pipeline/build] [DEBUG] evaluating expression 'success()'
|
|
||||||
[CI Pipeline/build] [DEBUG] expression 'success()' evaluated to 'true'
|
|
||||||
[CI Pipeline/build] ☁ git clone 'https://github.com/actions/checkout' # ref=v4
|
|
||||||
[CI Pipeline/build] [DEBUG] cloning https://github.com/actions/checkout to /Users/Vinod/.cache/act/actions-checkout@v4
|
|
||||||
[CI Pipeline/build] [DEBUG] Cloned https://github.com/actions/checkout to /Users/Vinod/.cache/act/actions-checkout@v4
|
|
||||||
[CI Pipeline/build] [DEBUG] Checked out v4
|
|
||||||
[CI Pipeline/build] [DEBUG] Read action &{Checkout Checkout a Git repository at a particular version map[clean:{Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching false true} fetch-depth:{Number of commits to fetch. 0 indicates all history for all branches and tags. false 1} fetch-tags:{Whether to fetch tags, even if fetch-depth > 0. false false} filter:{Partially clone against a given filter. Overrides sparse-checkout if set.
|
|
||||||
false } github-server-url:{The base URL for the GitHub instance that you are trying to clone from, will use environment defaults to fetch from the same instance that the workflow is running from unless specified. Example URLs are https://github.com or https://my-ghes-server.example.com false } lfs:{Whether to download Git-LFS files false false} path:{Relative path under $GITHUB_WORKSPACE to place the repository false } persist-credentials:{Whether to configure the token or SSH key with the local git config false true} ref:{The branch, tag or SHA to checkout. When checking out the repository that triggered a workflow, this defaults to the reference or SHA for that event. Otherwise, uses the default branch.
|
|
||||||
false } repository:{Repository name with owner. For example, actions/checkout false ${{ github.repository }}} set-safe-directory:{Add repository path as safe.directory for Git global config by running `git config --global --add safe.directory <path>` false true} show-progress:{Whether to show progress status output when fetching. false true} sparse-checkout:{Do a sparse checkout on given patterns. Each pattern should be separated with new lines.
|
|
||||||
false } sparse-checkout-cone-mode:{Specifies whether to use cone-mode when doing a sparse checkout.
|
|
||||||
false true} ssh-key:{SSH key used to fetch the repository. The SSH key is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the SSH key.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false } ssh-known-hosts:{Known hosts in addition to the user and global host key database. The public SSH keys for a host may be obtained using the utility `ssh-keyscan`. For example, `ssh-keyscan github.com`. The public key for github.com is always implicitly added.
|
|
||||||
false } ssh-strict:{Whether to perform strict host key checking. When true, adds the options `StrictHostKeyChecking=yes` and `CheckHostIP=no` to the SSH command line. Use the input `ssh-known-hosts` to configure additional hosts.
|
|
||||||
false true} ssh-user:{The user to use when connecting to the remote SSH host. By default 'git' is used.
|
|
||||||
false git} submodules:{Whether to checkout submodules: `true` to checkout submodules or `recursive` to recursively checkout submodules.
|
|
||||||
|
|
||||||
When the `ssh-key` input is not provided, SSH URLs beginning with `git@github.com:` are converted to HTTPS.
|
|
||||||
false false} token:{Personal access token (PAT) used to fetch the repository. The PAT is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the PAT.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary. Also when generating a new PAT, select the least scopes necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false ${{ github.token }}}] map[commit:{The commit SHA that was checked out } ref:{The branch, tag or SHA that was checked out }] {node20 map[] dist/index.js always() dist/index.js always() [] []} { }} from 'Unknown'
|
|
||||||
[CI Pipeline/build] ☁ git clone 'https://github.com/actions/setup-node' # ref=v4
|
|
||||||
[CI Pipeline/build] [DEBUG] cloning https://github.com/actions/setup-node to /Users/Vinod/.cache/act/actions-setup-node@v4
|
|
||||||
[CI Pipeline/build] [DEBUG] Cloned https://github.com/actions/setup-node to /Users/Vinod/.cache/act/actions-setup-node@v4
|
|
||||||
[CI Pipeline/build] [DEBUG] Checked out v4
|
|
||||||
[CI Pipeline/build] [DEBUG] Read action &{Setup Node.js environment GitHub Setup a Node.js environment by adding problem matchers and optionally downloading and adding it to the PATH. map[always-auth:{Set always-auth in npmrc. false false} architecture:{Target architecture for Node to use. Examples: x86, x64. Will use system architecture by default. false } cache:{Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm. false } cache-dependency-path:{Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies. false } check-latest:{Set this option if you want the action to check for the latest available version that satisfies the version spec. false false} mirror:{Used to specify an alternative mirror to downlooad Node.js binaries from false } mirror-token:{The token used as Authorization header when fetching from the mirror false } node-version:{Version Spec of the version to use. Examples: 12.x, 10.15.1, >=10.15.0. false } node-version-file:{File containing the version Spec of the version to use. Examples: package.json, .nvmrc, .node-version, .tool-versions. false } registry-url:{Optional registry to set up for auth. Will set the registry in a project level .npmrc and .yarnrc file, and set up auth to read in from env.NODE_AUTH_TOKEN. false } scope:{Optional scope for authenticating against scoped registries. Will fall back to the repository owner when using the GitHub Packages registry (https://npm.pkg.github.com/). false } token:{Used to pull node distributions from node-versions. Since there's a default, this is typically not supplied by the user. When running this action on github.com, the default value is sufficient. When running on GHES, you can pass a personal access token for github.com if you are experiencing rate limiting. false ${{ github.server_url == 'https://github.com' && github.token || '' }}}] map[cache-hit:{A boolean value to indicate if a cache was hit. } node-version:{The installed node version. }] {node20 map[] dist/setup/index.js always() dist/cache-save/index.js success() [] []} { }} from 'Unknown'
|
|
||||||
[CI Pipeline/build] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50541/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:0 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF:v4 GITHUB_ACTION_REPOSITORY:actions/checkout GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/bae0e73dbed73bd8/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:build GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/bae0e73dbed73bd8/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/bae0e73dbed73bd8/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/build] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/build] [DEBUG] expression '' evaluated to 'true'
|
|
||||||
[CI Pipeline/build] ⭐ Run Main Checkout code
|
|
||||||
[CI Pipeline/build] [DEBUG] About to run action &{Checkout Checkout a Git repository at a particular version map[clean:{Whether to execute `git clean -ffdx && git reset --hard HEAD` before fetching false true} fetch-depth:{Number of commits to fetch. 0 indicates all history for all branches and tags. false 1} fetch-tags:{Whether to fetch tags, even if fetch-depth > 0. false false} filter:{Partially clone against a given filter. Overrides sparse-checkout if set.
|
|
||||||
false } github-server-url:{The base URL for the GitHub instance that you are trying to clone from, will use environment defaults to fetch from the same instance that the workflow is running from unless specified. Example URLs are https://github.com or https://my-ghes-server.example.com false } lfs:{Whether to download Git-LFS files false false} path:{Relative path under $GITHUB_WORKSPACE to place the repository false } persist-credentials:{Whether to configure the token or SSH key with the local git config false true} ref:{The branch, tag or SHA to checkout. When checking out the repository that triggered a workflow, this defaults to the reference or SHA for that event. Otherwise, uses the default branch.
|
|
||||||
false } repository:{Repository name with owner. For example, actions/checkout false ${{ github.repository }}} set-safe-directory:{Add repository path as safe.directory for Git global config by running `git config --global --add safe.directory <path>` false true} show-progress:{Whether to show progress status output when fetching. false true} sparse-checkout:{Do a sparse checkout on given patterns. Each pattern should be separated with new lines.
|
|
||||||
false } sparse-checkout-cone-mode:{Specifies whether to use cone-mode when doing a sparse checkout.
|
|
||||||
false true} ssh-key:{SSH key used to fetch the repository. The SSH key is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the SSH key.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false } ssh-known-hosts:{Known hosts in addition to the user and global host key database. The public SSH keys for a host may be obtained using the utility `ssh-keyscan`. For example, `ssh-keyscan github.com`. The public key for github.com is always implicitly added.
|
|
||||||
false } ssh-strict:{Whether to perform strict host key checking. When true, adds the options `StrictHostKeyChecking=yes` and `CheckHostIP=no` to the SSH command line. Use the input `ssh-known-hosts` to configure additional hosts.
|
|
||||||
false true} ssh-user:{The user to use when connecting to the remote SSH host. By default 'git' is used.
|
|
||||||
false git} submodules:{Whether to checkout submodules: `true` to checkout submodules or `recursive` to recursively checkout submodules.
|
|
||||||
|
|
||||||
When the `ssh-key` input is not provided, SSH URLs beginning with `git@github.com:` are converted to HTTPS.
|
|
||||||
false false} token:{Personal access token (PAT) used to fetch the repository. The PAT is configured with the local git config, which enables your scripts to run authenticated git commands. The post-job step removes the PAT.
|
|
||||||
|
|
||||||
We recommend using a service account with the least permissions necessary. Also when generating a new PAT, select the least scopes necessary.
|
|
||||||
|
|
||||||
[Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
|
|
||||||
false ${{ github.token }}}] map[commit:{The commit SHA that was checked out } ref:{The branch, tag or SHA that was checked out }] {node20 map[] dist/index.js always() dist/index.js always() [] []} { }}
|
|
||||||
[CI Pipeline/build] [DEBUG] expression '${{ github.repository }}' rewritten to 'format('{0}', github.repository)'
|
|
||||||
[CI Pipeline/build] [DEBUG] evaluating expression 'format('{0}', github.repository)'
|
|
||||||
[CI Pipeline/build] [DEBUG] expression 'format('{0}', github.repository)' evaluated to '%!t(string=CommunityRule/community-rule)'
|
|
||||||
[CI Pipeline/build] [DEBUG] expression '${{ github.token }}' rewritten to 'format('{0}', github.token)'
|
|
||||||
[CI Pipeline/build] [DEBUG] evaluating expression 'format('{0}', github.token)'
|
|
||||||
[CI Pipeline/build] [DEBUG] expression 'format('{0}', github.token)' evaluated to '%!t(string=***)'
|
|
||||||
[CI Pipeline/build] [DEBUG] type=remote-action actionDir=/Users/Vinod/.cache/act/actions-checkout@v4 actionPath= workdir=/workspace/CommunityRule/community-rule actionCacheDir=/Users/Vinod/.cache/act actionName=actions-checkout@v4 containerActionDir=/Users/Vinod/.cache/act/bae0e73dbed73bd8/act/actions/actions-checkout@v4
|
|
||||||
[CI Pipeline/build] [DEBUG] Removing /Users/Vinod/.cache/act/actions-checkout@v4/.gitignore before docker cp
|
|
||||||
[CI Pipeline/build] [DEBUG] /Users/Vinod/.cache/act/bae0e73dbed73bd8/act/actions/actions-checkout@v4
|
|
||||||
[CI Pipeline/build] [DEBUG] Stripping prefix:/Users/Vinod/.cache/act/actions-checkout@v4/ src:/Users/Vinod/.cache/act/actions-checkout@v4/
|
|
||||||
[CI Pipeline/build] [DEBUG] executing remote job container: [node /Users/Vinod/.cache/act/bae0e73dbed73bd8/act/actions/actions-checkout@v4/dist/index.js]
|
|
||||||
[CI Pipeline/build] | Cannot find: node in PATH
|
|
||||||
[CI Pipeline/build] ❌ Failure - Main Checkout code
|
|
||||||
[CI Pipeline/build] Cannot find: node in PATH
|
|
||||||
[CI Pipeline/build] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50541/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:1 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF:v4 GITHUB_ACTION_REPOSITORY:actions/setup-node GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/bae0e73dbed73bd8/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:build GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/bae0e73dbed73bd8/hostexecutor HOME:/Users/Vinod INPUT_CACHE:npm INPUT_NODE-VERSION:20 ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/bae0e73dbed73bd8/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/build] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/build] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/build] [DEBUG] Skipping step 'Setup Node.js' due to ''
|
|
||||||
[CI Pipeline/build] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50541/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:2 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/bae0e73dbed73bd8/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:build GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/bae0e73dbed73bd8/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/bae0e73dbed73bd8/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/build] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/build] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/build] [DEBUG] Skipping step 'Install dependencies' due to ''
|
|
||||||
[CI Pipeline/build] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50541/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:3 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/bae0e73dbed73bd8/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:build GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/bae0e73dbed73bd8/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/bae0e73dbed73bd8/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/build] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/build] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/build] [DEBUG] Skipping step 'Build application' due to ''
|
|
||||||
[CI Pipeline/build] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50541/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:4 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF: GITHUB_ACTION_REPOSITORY: GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/bae0e73dbed73bd8/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:build GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/bae0e73dbed73bd8/hostexecutor HOME:/Users/Vinod ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/bae0e73dbed73bd8/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/build] [DEBUG] evaluating expression ''
|
|
||||||
[CI Pipeline/build] [DEBUG] expression '' evaluated to 'false'
|
|
||||||
[CI Pipeline/build] [DEBUG] Skipping step 'Build Storybook' due to ''
|
|
||||||
[CI Pipeline/build] [DEBUG] skipping post step for 'Setup Node.js'; main step was skipped
|
|
||||||
[CI Pipeline/build] [DEBUG] setupEnv => map[ACT:true ACTIONS_CACHE_URL:http://192.168.1.3:50541/ ACTIONS_RUNTIME_TOKEN:*** ACTIONS_RUNTIME_URL:https://git.medlab.host/api/actions_pipeline/ CI:true GITEA_ACTIONS:true GITEA_ACTIONS_RUNNER_VERSION:v0.2.6 GITHUB_ACTION:0 GITHUB_ACTIONS:true GITHUB_ACTION_PATH: GITHUB_ACTION_REF:v4 GITHUB_ACTION_REPOSITORY:actions/checkout GITHUB_ACTOR:an.di GITHUB_API_URL:https://git.medlab.host/api/v1 GITHUB_BASE_REF: GITHUB_ENV:/Users/Vinod/.cache/act/bae0e73dbed73bd8/act/workflow/envs.txt GITHUB_EVENT_NAME:push GITHUB_EVENT_PATH:/Users/Vinod/.cache/act/bae0e73dbed73bd8/act/workflow/event.json GITHUB_GRAPHQL_URL: GITHUB_HEAD_REF: GITHUB_JOB:build GITHUB_OUTPUT:/Users/Vinod/.cache/act/bae0e73dbed73bd8/act/workflow/outputcmd.txt GITHUB_PATH:/Users/Vinod/.cache/act/bae0e73dbed73bd8/act/workflow/pathcmd.txt GITHUB_REF:refs/heads/adilallo/enhancement/TestingFramework GITHUB_REF_NAME:adilallo/enhancement/TestingFramework GITHUB_REF_TYPE:branch GITHUB_REPOSITORY:CommunityRule/community-rule GITHUB_REPOSITORY_OWNER:CommunityRule GITHUB_RETENTION_DAYS: GITHUB_RUN_ID:13 GITHUB_RUN_NUMBER:1 GITHUB_SERVER_URL:https://git.medlab.host GITHUB_SHA:dec2757f88b843da25faf219cb03491d3ef8cd4d GITHUB_STATE:/Users/Vinod/.cache/act/bae0e73dbed73bd8/act/workflow/statecmd.txt GITHUB_STEP_SUMMARY:/Users/Vinod/.cache/act/bae0e73dbed73bd8/act/workflow/SUMMARY.md GITHUB_TOKEN:*** GITHUB_WORKFLOW:CI Pipeline GITHUB_WORKSPACE:/Users/Vinod/.cache/act/bae0e73dbed73bd8/hostexecutor HOME:/Users/Vinod INPUT_CLEAN:true INPUT_FETCH-DEPTH:1 INPUT_FETCH-TAGS:false INPUT_FILTER: INPUT_GITHUB-SERVER-URL: INPUT_LFS:false INPUT_PATH: INPUT_PERSIST-CREDENTIALS:true INPUT_REF: INPUT_REPOSITORY:CommunityRule/community-rule INPUT_SET-SAFE-DIRECTORY:true INPUT_SHOW-PROGRESS:true INPUT_SPARSE-CHECKOUT: INPUT_SPARSE-CHECKOUT-CONE-MODE:true INPUT_SSH-KEY: INPUT_SSH-KNOWN-HOSTS: INPUT_SSH-STRICT:true INPUT_SSH-USER:git INPUT_SUBMODULES:false INPUT_TOKEN:*** ImageOS:macoslatest LOGNAME:Vinod PATH:/usr/bin:/bin:/usr/sbin:/sbin RUNNER_ARCH:amd64 RUNNER_OS:macOS RUNNER_PERFLOG:/dev/null RUNNER_TEMP:/Users/Vinod/.cache/act/bae0e73dbed73bd8/tmp RUNNER_TOOL_CACHE:/Users/Vinod/.cache/act/tool_cache RUNNER_TRACKING_ID: SHELL:/bin/bash SSH_AUTH_SOCK:/private/tmp/com.apple.launchd.TR6IO7q3CL/Listeners TMPDIR:/var/folders/zh/1tz9wdyd7zd5qr_x789vr2s00000gn/T/ USER:Vinod XPC_FLAGS:0x0 XPC_SERVICE_NAME:com.gitea.act-runner]
|
|
||||||
[CI Pipeline/build] [DEBUG] evaluating expression 'always()'
|
|
||||||
[CI Pipeline/build] [DEBUG] expression 'always()' evaluated to 'true'
|
|
||||||
[CI Pipeline/build] ⭐ Run Post Checkout code
|
|
||||||
[CI Pipeline/build] [DEBUG] run post step for 'Checkout code'
|
|
||||||
[CI Pipeline/build] [DEBUG] executing remote job container: [node /Users/Vinod/.cache/act/bae0e73dbed73bd8/act/actions/actions-checkout@v4/dist/index.js]
|
|
||||||
[CI Pipeline/build] | Cannot find: node in PATH
|
|
||||||
[CI Pipeline/build] ❌ Failure - Post Checkout code
|
|
||||||
[CI Pipeline/build] Cleaning up services for job build
|
|
||||||
[CI Pipeline/build] Cleaning up container for job build
|
|
||||||
[CI Pipeline/build] 🏁 Job failed
|
|
||||||
@@ -1,5 +1,4 @@
|
|||||||
import { test, expect } from "@playwright/test";
|
import { test, expect } from "@playwright/test";
|
||||||
import { AxeBuilder } from "@axe-core/playwright";
|
|
||||||
|
|
||||||
test.describe("Accessibility Testing", () => {
|
test.describe("Accessibility Testing", () => {
|
||||||
test.beforeEach(async ({ page }) => {
|
test.beforeEach(async ({ page }) => {
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
import { AxeBuilder } from "@axe-core/playwright";
|
import { AxeBuilder } from "@axe-core/playwright";
|
||||||
|
|
||||||
export async function runA11y(page, options = {}) {
|
export async function runA11y(page, _options = {}) {
|
||||||
const results = await new AxeBuilder({ page })
|
const results = await new AxeBuilder({ page })
|
||||||
.withTags(["wcag2a", "wcag2aa"])
|
.withTags(["wcag2a", "wcag2aa"])
|
||||||
.analyze();
|
.analyze();
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { test, expect } from "@playwright/test";
|
import { test, expect } from "@playwright/test";
|
||||||
import { runA11y } from "./axe";
|
|
||||||
|
|
||||||
test.describe("Homepage", () => {
|
test.describe("Homepage", () => {
|
||||||
test.beforeEach(async ({ page }) => {
|
test.beforeEach(async ({ page }) => {
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ test.describe("Performance Monitoring", () => {
|
|||||||
performanceMonitor.setBaselines(BASELINE_METRICS);
|
performanceMonitor.setBaselines(BASELINE_METRICS);
|
||||||
});
|
});
|
||||||
|
|
||||||
test("homepage load performance", async ({ page }) => {
|
test("homepage load performance", async ({ page: _page }) => {
|
||||||
const result = await performanceMonitor.measurePageLoad("/");
|
const result = await performanceMonitor.measurePageLoad("/");
|
||||||
|
|
||||||
// Assert page load time is within budget
|
// Assert page load time is within budget
|
||||||
@@ -83,43 +83,57 @@ test.describe("Performance Monitoring", () => {
|
|||||||
await page.waitForLoadState("networkidle");
|
await page.waitForLoadState("networkidle");
|
||||||
|
|
||||||
// Get Core Web Vitals with timeout
|
// Get Core Web Vitals with timeout
|
||||||
const coreWebVitals = await page.evaluate(() => {
|
const coreWebVitals = (await page.evaluate(() => {
|
||||||
return new Promise((resolve) => {
|
return new Promise<{ lcp: number; fid: number; cls: number }>(
|
||||||
const timeout = setTimeout(() => {
|
(resolve) => {
|
||||||
observer.disconnect();
|
const timeout = setTimeout(() => {
|
||||||
resolve({ lcp: 0, fid: 0, cls: 0 }); // Default values if timeout
|
|
||||||
}, 10000); // 10 second timeout
|
|
||||||
|
|
||||||
const observer = new PerformanceObserver((list) => {
|
|
||||||
const entries = list.getEntries();
|
|
||||||
const metrics: any = {};
|
|
||||||
|
|
||||||
for (const entry of entries) {
|
|
||||||
if (entry.name === "LCP") {
|
|
||||||
metrics.lcp = entry.startTime;
|
|
||||||
} else if (entry.name === "FID") {
|
|
||||||
metrics.fid = entry.processingStart - entry.startTime;
|
|
||||||
} else if (entry.name === "CLS") {
|
|
||||||
metrics.cls = entry.value;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Object.keys(metrics).length === 3) {
|
|
||||||
clearTimeout(timeout);
|
|
||||||
observer.disconnect();
|
observer.disconnect();
|
||||||
resolve(metrics);
|
resolve({ lcp: 0, fid: 0, cls: 0 }); // Default values if timeout
|
||||||
}
|
}, 10000); // 10 second timeout
|
||||||
});
|
|
||||||
|
|
||||||
observer.observe({
|
const observer = new PerformanceObserver((list) => {
|
||||||
entryTypes: [
|
const entries = list.getEntries();
|
||||||
"largest-contentful-paint",
|
const metrics: { lcp?: number; fid?: number; cls?: number } = {};
|
||||||
"first-input",
|
|
||||||
"layout-shift",
|
for (const entry of entries) {
|
||||||
],
|
const e = entry as any;
|
||||||
});
|
if (
|
||||||
});
|
e.name === "LCP" ||
|
||||||
});
|
e.entryType === "largest-contentful-paint"
|
||||||
|
) {
|
||||||
|
metrics.lcp = e.startTime ?? 0;
|
||||||
|
} else if (e.name === "FID" || e.entryType === "first-input") {
|
||||||
|
metrics.fid = (e.processingStart ?? 0) - (e.startTime ?? 0);
|
||||||
|
} else if (e.name === "CLS" || e.entryType === "layout-shift") {
|
||||||
|
metrics.cls = e.value ?? 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
metrics.lcp !== undefined &&
|
||||||
|
metrics.fid !== undefined &&
|
||||||
|
metrics.cls !== undefined
|
||||||
|
) {
|
||||||
|
clearTimeout(timeout);
|
||||||
|
observer.disconnect();
|
||||||
|
resolve({
|
||||||
|
lcp: metrics.lcp,
|
||||||
|
fid: metrics.fid,
|
||||||
|
cls: metrics.cls,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
observer.observe({
|
||||||
|
entryTypes: [
|
||||||
|
"largest-contentful-paint",
|
||||||
|
"first-input",
|
||||||
|
"layout-shift",
|
||||||
|
],
|
||||||
|
});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
})) as { lcp: number; fid: number; cls: number };
|
||||||
|
|
||||||
// Assert Core Web Vitals are within acceptable ranges
|
// Assert Core Web Vitals are within acceptable ranges
|
||||||
expect(coreWebVitals.lcp).toBeLessThan(
|
expect(coreWebVitals.lcp).toBeLessThan(
|
||||||
@@ -251,7 +265,7 @@ test.describe("Performance Monitoring", () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
test("network request performance", async ({ page }) => {
|
test("network request performance", async ({ page }) => {
|
||||||
const requests = await performanceMonitor.monitorNetworkRequests();
|
await performanceMonitor.monitorNetworkRequests();
|
||||||
|
|
||||||
await page.goto("/");
|
await page.goto("/");
|
||||||
await page.waitForLoadState("networkidle");
|
await page.waitForLoadState("networkidle");
|
||||||
@@ -327,7 +341,7 @@ test.describe("Performance Monitoring", () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
const result = await performanceMonitor.measurePageLoad("/");
|
await performanceMonitor.measurePageLoad("/");
|
||||||
|
|
||||||
// This should trigger a performance regression warning
|
// This should trigger a performance regression warning
|
||||||
const summary = performanceMonitor.getSummary();
|
const summary = performanceMonitor.getSummary();
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ describe("Layout Integration", () => {
|
|||||||
<div>
|
<div>
|
||||||
<Header />
|
<Header />
|
||||||
<Footer />
|
<Footer />
|
||||||
</div>
|
</div>,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Check that CommunityRule branding appears in both header and footer
|
// Check that CommunityRule branding appears in both header and footer
|
||||||
@@ -30,19 +30,21 @@ describe("Layout Integration", () => {
|
|||||||
<div>
|
<div>
|
||||||
<Header />
|
<Header />
|
||||||
<Footer />
|
<Footer />
|
||||||
</div>
|
</div>,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Header navigation items
|
// Header navigation items
|
||||||
expect(
|
expect(
|
||||||
screen.getAllByRole("menuitem", { name: "Navigate to Use cases page" })
|
screen.getAllByRole("menuitem", { name: "Navigate to Use cases page" })
|
||||||
.length
|
.length,
|
||||||
).toBeGreaterThan(0);
|
).toBeGreaterThan(0);
|
||||||
expect(
|
expect(
|
||||||
screen.getAllByRole("menuitem", { name: "Navigate to Learn page" }).length
|
screen.getAllByRole("menuitem", { name: "Navigate to Learn page" })
|
||||||
|
.length,
|
||||||
).toBeGreaterThan(0);
|
).toBeGreaterThan(0);
|
||||||
expect(
|
expect(
|
||||||
screen.getAllByRole("menuitem", { name: "Navigate to About page" }).length
|
screen.getAllByRole("menuitem", { name: "Navigate to About page" })
|
||||||
|
.length,
|
||||||
).toBeGreaterThan(0);
|
).toBeGreaterThan(0);
|
||||||
|
|
||||||
// Footer navigation items (should be present in footer as well)
|
// Footer navigation items (should be present in footer as well)
|
||||||
@@ -96,23 +98,23 @@ describe("Layout Integration", () => {
|
|||||||
// Contact information
|
// Contact information
|
||||||
expect(screen.getByText("medlab@colorado.edu")).toBeInTheDocument();
|
expect(screen.getByText("medlab@colorado.edu")).toBeInTheDocument();
|
||||||
expect(
|
expect(
|
||||||
screen.getByRole("link", { name: "medlab@colorado.edu" })
|
screen.getByRole("link", { name: "medlab@colorado.edu" }),
|
||||||
).toHaveAttribute("href", "mailto:medlab@colorado.edu");
|
).toHaveAttribute("href", "mailto:medlab@colorado.edu");
|
||||||
|
|
||||||
// Social media links
|
// Social media links
|
||||||
expect(
|
expect(
|
||||||
screen.getByRole("link", { name: "Follow us on Bluesky" })
|
screen.getByRole("link", { name: "Follow us on Bluesky" }),
|
||||||
).toBeInTheDocument();
|
).toBeInTheDocument();
|
||||||
expect(
|
expect(
|
||||||
screen.getByRole("link", { name: "Follow us on GitLab" })
|
screen.getByRole("link", { name: "Follow us on GitLab" }),
|
||||||
).toBeInTheDocument();
|
).toBeInTheDocument();
|
||||||
|
|
||||||
// Legal links
|
// Legal links
|
||||||
expect(
|
expect(
|
||||||
screen.getByRole("link", { name: "Privacy Policy" })
|
screen.getByRole("link", { name: "Privacy Policy" }),
|
||||||
).toBeInTheDocument();
|
).toBeInTheDocument();
|
||||||
expect(
|
expect(
|
||||||
screen.getByRole("link", { name: "Terms of Service" })
|
screen.getByRole("link", { name: "Terms of Service" }),
|
||||||
).toBeInTheDocument();
|
).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -138,7 +140,7 @@ describe("Layout Integration", () => {
|
|||||||
<div>
|
<div>
|
||||||
<Header />
|
<Header />
|
||||||
<Footer />
|
<Footer />
|
||||||
</div>
|
</div>,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Header should have banner role
|
// Header should have banner role
|
||||||
@@ -159,7 +161,7 @@ describe("Layout Integration", () => {
|
|||||||
<div>
|
<div>
|
||||||
<Header />
|
<Header />
|
||||||
<Footer />
|
<Footer />
|
||||||
</div>
|
</div>,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Header should have responsive navigation elements
|
// Header should have responsive navigation elements
|
||||||
@@ -176,7 +178,7 @@ describe("Layout Integration", () => {
|
|||||||
<div>
|
<div>
|
||||||
<Header />
|
<Header />
|
||||||
<Footer />
|
<Footer />
|
||||||
</div>
|
</div>,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Get all interactive elements
|
// Get all interactive elements
|
||||||
@@ -199,7 +201,7 @@ describe("Layout Integration", () => {
|
|||||||
<div>
|
<div>
|
||||||
<Header />
|
<Header />
|
||||||
<Footer />
|
<Footer />
|
||||||
</div>
|
</div>,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Header provides main navigation
|
// Header provides main navigation
|
||||||
@@ -219,7 +221,7 @@ describe("Layout Integration", () => {
|
|||||||
<div>
|
<div>
|
||||||
<Header />
|
<Header />
|
||||||
<Footer />
|
<Footer />
|
||||||
</div>
|
</div>,
|
||||||
);
|
);
|
||||||
|
|
||||||
// Main navigation in header
|
// Main navigation in header
|
||||||
@@ -232,13 +234,13 @@ describe("Layout Integration", () => {
|
|||||||
(link) =>
|
(link) =>
|
||||||
link.textContent?.includes("Use cases") ||
|
link.textContent?.includes("Use cases") ||
|
||||||
link.textContent?.includes("Learn") ||
|
link.textContent?.includes("Learn") ||
|
||||||
link.textContent?.includes("About")
|
link.textContent?.includes("About"),
|
||||||
);
|
);
|
||||||
expect(navigationLinks.length).toBeGreaterThan(0);
|
expect(navigationLinks.length).toBeGreaterThan(0);
|
||||||
|
|
||||||
// Contact information in footer
|
// Contact information in footer
|
||||||
expect(
|
expect(
|
||||||
screen.getByRole("link", { name: "medlab@colorado.edu" })
|
screen.getByRole("link", { name: "medlab@colorado.edu" }),
|
||||||
).toBeInTheDocument();
|
).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
+15
-15
@@ -27,7 +27,7 @@ describe("Footer", () => {
|
|||||||
expect(schemaData.email).toBe("medlab@colorado.edu");
|
expect(schemaData.email).toBe("medlab@colorado.edu");
|
||||||
expect(schemaData.url).toBe("https://communityrule.com");
|
expect(schemaData.url).toBe("https://communityrule.com");
|
||||||
expect(schemaData.sameAs).toContain(
|
expect(schemaData.sameAs).toContain(
|
||||||
"https://bsky.app/profile/medlabboulder"
|
"https://bsky.app/profile/medlabboulder",
|
||||||
);
|
);
|
||||||
expect(schemaData.sameAs).toContain("https://gitlab.com/medlabboulder");
|
expect(schemaData.sameAs).toContain("https://gitlab.com/medlabboulder");
|
||||||
});
|
});
|
||||||
@@ -36,7 +36,7 @@ describe("Footer", () => {
|
|||||||
render(<Footer />);
|
render(<Footer />);
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
screen.getAllByText("Media Economies Design Lab").length
|
screen.getAllByText("Media Economies Design Lab").length,
|
||||||
).toBeGreaterThan(0);
|
).toBeGreaterThan(0);
|
||||||
|
|
||||||
const emailLinks = screen.getAllByRole("link", {
|
const emailLinks = screen.getAllByRole("link", {
|
||||||
@@ -86,13 +86,13 @@ describe("Footer", () => {
|
|||||||
render(<Footer />);
|
render(<Footer />);
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
screen.getAllByRole("link", { name: "Use cases" }).length
|
screen.getAllByRole("link", { name: "Use cases" }).length,
|
||||||
).toBeGreaterThan(0);
|
).toBeGreaterThan(0);
|
||||||
expect(
|
expect(
|
||||||
screen.getAllByRole("link", { name: "Learn" }).length
|
screen.getAllByRole("link", { name: "Learn" }).length,
|
||||||
).toBeGreaterThan(0);
|
).toBeGreaterThan(0);
|
||||||
expect(
|
expect(
|
||||||
screen.getAllByRole("link", { name: "About" }).length
|
screen.getAllByRole("link", { name: "About" }).length,
|
||||||
).toBeGreaterThan(0);
|
).toBeGreaterThan(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -100,13 +100,13 @@ describe("Footer", () => {
|
|||||||
render(<Footer />);
|
render(<Footer />);
|
||||||
|
|
||||||
expect(
|
expect(
|
||||||
screen.getAllByRole("link", { name: "Privacy Policy" }).length
|
screen.getAllByRole("link", { name: "Privacy Policy" }).length,
|
||||||
).toBeGreaterThan(0);
|
).toBeGreaterThan(0);
|
||||||
expect(
|
expect(
|
||||||
screen.getAllByRole("link", { name: "Terms of Service" }).length
|
screen.getAllByRole("link", { name: "Terms of Service" }).length,
|
||||||
).toBeGreaterThan(0);
|
).toBeGreaterThan(0);
|
||||||
expect(
|
expect(
|
||||||
screen.getAllByRole("link", { name: "Cookies Settings" }).length
|
screen.getAllByRole("link", { name: "Cookies Settings" }).length,
|
||||||
).toBeGreaterThan(0);
|
).toBeGreaterThan(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -114,7 +114,7 @@ describe("Footer", () => {
|
|||||||
render(<Footer />);
|
render(<Footer />);
|
||||||
|
|
||||||
expect(screen.getAllByText("© All right reserved").length).toBeGreaterThan(
|
expect(screen.getAllByText("© All right reserved").length).toBeGreaterThan(
|
||||||
0
|
0,
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -123,7 +123,7 @@ describe("Footer", () => {
|
|||||||
|
|
||||||
// Check that logo containers exist for different breakpoints
|
// Check that logo containers exist for different breakpoints
|
||||||
const logoContainers = document.querySelectorAll(
|
const logoContainers = document.querySelectorAll(
|
||||||
'[class*="block sm:hidden"], [class*="hidden sm:block lg:hidden"], [class*="hidden lg:block"]'
|
'[class*="block sm:hidden"], [class*="hidden sm:block lg:hidden"], [class*="hidden lg:block"]',
|
||||||
);
|
);
|
||||||
expect(logoContainers.length).toBeGreaterThan(0);
|
expect(logoContainers.length).toBeGreaterThan(0);
|
||||||
});
|
});
|
||||||
@@ -147,7 +147,7 @@ describe("Footer", () => {
|
|||||||
|
|
||||||
// The Separator component should be rendered (it uses a div with border, not hr)
|
// The Separator component should be rendered (it uses a div with border, not hr)
|
||||||
const separator = document.querySelector(
|
const separator = document.querySelector(
|
||||||
".bg-\\[var\\(--border-color-default-secondary\\)\\]"
|
".bg-\\[var\\(--border-color-default-secondary\\)\\]",
|
||||||
);
|
);
|
||||||
expect(separator).toBeInTheDocument();
|
expect(separator).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
@@ -263,10 +263,10 @@ describe("Footer", () => {
|
|||||||
expect(emailLink).toHaveClass("focus:ring-2");
|
expect(emailLink).toHaveClass("focus:ring-2");
|
||||||
expect(emailLink).toHaveClass("focus:ring-offset-2");
|
expect(emailLink).toHaveClass("focus:ring-offset-2");
|
||||||
expect(emailLink).toHaveClass(
|
expect(emailLink).toHaveClass(
|
||||||
"focus:ring-[var(--color-content-default-primary)]"
|
"focus:ring-[var(--color-content-default-primary)]",
|
||||||
);
|
);
|
||||||
expect(emailLink).toHaveClass(
|
expect(emailLink).toHaveClass(
|
||||||
"focus:ring-offset-[var(--color-surface-default-primary)]"
|
"focus:ring-offset-[var(--color-surface-default-primary)]",
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -276,10 +276,10 @@ describe("Footer", () => {
|
|||||||
expect(link).toHaveClass("focus:ring-2");
|
expect(link).toHaveClass("focus:ring-2");
|
||||||
expect(link).toHaveClass("focus:ring-offset-2");
|
expect(link).toHaveClass("focus:ring-offset-2");
|
||||||
expect(link).toHaveClass(
|
expect(link).toHaveClass(
|
||||||
"focus:ring-[var(--color-content-default-primary)]"
|
"focus:ring-[var(--color-content-default-primary)]",
|
||||||
);
|
);
|
||||||
expect(link).toHaveClass(
|
expect(link).toHaveClass(
|
||||||
"focus:ring-offset-[var(--color-surface-default-primary)]"
|
"focus:ring-offset-[var(--color-surface-default-primary)]",
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user