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

This commit is contained in:
adilallo
2025-12-11 09:05:18 -07:00
parent 92a3337aeb
commit c7e3048c09
92 changed files with 53556 additions and 915 deletions
@@ -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}}}
@@ -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
View File
@@ -0,0 +1 @@
../prettier/bin/prettier.cjs
+22
View File
@@ -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
View File
@@ -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
View File
@@ -0,0 +1,104 @@
[![Prettier Banner](https://unpkg.com/prettier-logo@1.0.3/images/prettier-banner-light.svg)](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_ → [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
```md
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
```
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md).
File diff suppressed because it is too large Load Diff
+80
View File
@@ -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
View File
@@ -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;
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+968
View File
@@ -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;
}
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
+203
View File
@@ -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"
}
@@ -0,0 +1,6 @@
import { Parser } from "../index.js";
export declare const parsers: {
acorn: Parser;
espree: Parser;
};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -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;
};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -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;
};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
export {};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,5 @@
import { Parser } from "../index.js";
export declare const parsers: {
flow: Parser;
};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,5 @@
import { Parser } from "../index.js";
export declare const parsers: {
glimmer: Parser;
};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,5 @@
import { Parser } from "../index.js";
export declare const parsers: {
graphql: Parser;
};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,9 @@
import { Parser } from "../index.js";
export declare const parsers: {
angular: Parser;
html: Parser;
lwc: Parser;
mjml: Parser;
vue: Parser;
};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,7 @@
import { Parser } from "../index.js";
export declare const parsers: {
markdown: Parser;
mdx: Parser;
remark: Parser;
};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,5 @@
import { Parser } from "../index.js";
export declare const parsers: {
meriyah: Parser;
};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,7 @@
import { Parser } from "../index.js";
export declare const parsers: {
css: Parser;
less: Parser;
scss: Parser;
};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,5 @@
import { Parser } from "../index.js";
export declare const parsers: {
typescript: Parser;
};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,5 @@
import { Parser } from "../index.js";
export declare const parsers: {
yaml: Parser;
};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+33
View File
@@ -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>;
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+27
View File
@@ -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"
}
}
+1 -1
View File
@@ -45,7 +45,7 @@ const AskOrganizer = memo<AskOrganizerProps>(
}) => {
// Analytics tracking for contact button clicks
const handleContactClick = (
event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>,
_event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>,
) => {
// Track contact button interaction
if (onContactClick) {
+22 -32
View File
@@ -89,47 +89,37 @@ const Button = memo<ButtonProps>(
: 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}`;
let finalVariant = variant;
if (disabled) {
finalVariant = "default";
}
const combinedStyles = `${baseStyles} ${className}`;
const accessibilityProps = {
const sharedA11y = {
...(ariaLabel && { "aria-label": ariaLabel }),
...(disabled && { "aria-disabled": "true" }),
...(target && { target }),
...(rel && { rel }),
...(disabled && { "aria-disabled": true }),
tabIndex: disabled ? -1 : 0,
...props,
};
if (href && !disabled) {
return (
<a
href={href}
className={combinedStyles}
onClick={onClick}
{...accessibilityProps}
>
{children}
</a>
);
const anchorProps: React.AnchorHTMLAttributes<HTMLAnchorElement> = {
href,
className: combinedStyles,
onClick,
...sharedA11y,
...(target && { target }),
...(rel && { rel }),
};
return <a {...anchorProps}>{children}</a>;
}
return (
<button
type={type}
className={combinedStyles}
disabled={disabled}
onClick={onClick}
{...accessibilityProps}
>
{children}
</button>
);
const buttonProps: React.ButtonHTMLAttributes<HTMLButtonElement> = {
type,
className: combinedStyles,
disabled,
onClick,
...sharedA11y,
...props,
};
return <button {...buttonProps}>{children}</button>;
},
);
+2 -8
View File
@@ -43,15 +43,9 @@ const Checkbox = memo<CheckboxProps>(
const isInverse = mode === "inverse";
// Base tokens (rough placeholders leveraging existing CSS variables)
const colorSurface = isInverse
? "var(--color-surface-inverse-primary)"
: "var(--color-surface-default-primary)";
const colorContent = isInverse
? "var(--color-content-inverse-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
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 = {
role: "checkbox" as const,
"aria-checked": checked ? "true" : "false",
...(disabled && { "aria-disabled": "true", tabIndex: -1 }),
"aria-checked": checked,
...(disabled && { "aria-disabled": true, tabIndex: -1 }),
...(!disabled && { tabIndex: 0 }),
...(ariaLabel && { "aria-label": ariaLabel }),
...(label && !ariaLabel && { "aria-labelledby": `${checkboxId}-label` }),
-1
View File
@@ -34,7 +34,6 @@ const ContentLockup = memo<ContentLockupProps>(
subtitle,
description,
ctaText,
ctaHref,
buttonClassName = "",
variant = "hero",
linkText,
+1 -1
View File
@@ -18,7 +18,7 @@ interface ContentThumbnailTemplateProps {
}
const ContentThumbnailTemplate = memo<ContentThumbnailTemplateProps>(
({ post, className = "", variant = "vertical", slugOrder }) => {
({ post, className = "", variant = "vertical" }) => {
// Get article-specific background image from frontmatter
const getBackgroundImage = (
post: BlogPost,
+15 -3
View File
@@ -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) => (
<MenuBarItem
key={index}
@@ -91,7 +103,7 @@ const Header = memo(() => {
);
};
const renderLoginButton = (size: string) => {
const renderLoginButton = (size: NavSize) => {
return (
<MenuBarItem href="#" size={size} ariaLabel="Log in to your account">
Log in
@@ -100,7 +112,7 @@ const Header = memo(() => {
};
const renderCreateRuleButton = (
buttonSize: string,
buttonSize: "xsmall" | "small" | "medium" | "large" | "xlarge",
containerSize: "small" | "medium" | "large" | "xlarge",
avatarSize: "small" | "medium" | "large" | "xlarge",
) => {
+15 -3
View File
@@ -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) => (
<MenuBarItem
key={index}
@@ -125,7 +137,7 @@ const HomeHeader = memo(() => {
);
};
const renderLoginButton = (size: string) => {
const renderLoginButton = (size: NavSize) => {
return (
<MenuBarItem
href="#"
@@ -139,7 +151,7 @@ const HomeHeader = memo(() => {
};
const renderCreateRuleButton = (
buttonSize: string,
buttonSize: "xsmall" | "small" | "medium" | "large" | "xlarge",
containerSize: "small" | "medium" | "large" | "xlarge",
avatarSize: "small" | "medium" | "large" | "xlarge",
) => {
+1 -1
View File
@@ -160,7 +160,7 @@ const MenuBarItem = memo<MenuBarItemProps>(
const accessibilityProps = {
...(ariaLabel && { "aria-label": ariaLabel }),
...(disabled && { "aria-disabled": "true" }),
...(disabled && { "aria-disabled": true }),
role: "menuitem" as const,
tabIndex: disabled ? -1 : 0,
...props,
+1 -1
View File
@@ -11,7 +11,7 @@ interface NumberedCardProps {
}
const NumberedCard = memo<NumberedCardProps>(
({ number, text, iconShape, iconColor }) => {
({ number, text, iconShape: _iconShape, iconColor: _iconColor }) => {
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]">
{/* Section Number - Top right (lg breakpoint) */}
+2 -2
View File
@@ -141,7 +141,7 @@ const QuoteBlock = memo<QuoteBlockProps>(
type: "missing_props",
message: "QuoteBlock requires quote and author props",
quote: !!quote,
author: !!author,
author,
});
}
return null; // Don't render if missing required props
@@ -184,7 +184,7 @@ const QuoteBlock = memo<QuoteBlockProps>(
<div className="relative">
{!imageError ? (
<Image
src={avatarSrc}
src={currentAvatarSrc}
alt={`Portrait of ${author}`}
width={64}
height={64}
+3 -9
View File
@@ -33,15 +33,9 @@ const RadioButton = ({
const isInverse = mode === "inverse";
// Base tokens (using same design tokens as Checkbox)
const colorSurface = isInverse
? "var(--color-surface-inverse-primary)"
: "var(--color-surface-default-primary)";
const colorContent = isInverse
? "var(--color-content-inverse-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
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 handleToggle = useCallback(
(e: React.MouseEvent | React.KeyboardEvent) => {
(_e: React.MouseEvent | React.KeyboardEvent) => {
if (!disabled && onChange && !checked) {
onChange({ checked: true, value });
}
@@ -118,8 +112,8 @@ const RadioButton = ({
}}
tabIndex={0}
role="radio"
aria-checked={checked ? "true" : "false"}
{...(disabled && { "aria-disabled": "true" })}
aria-checked={checked}
{...(disabled && { "aria-disabled": true })}
{...(ariaLabel && { "aria-label": ariaLabel })}
{...(label && !ariaLabel && { "aria-labelledby": `${radioId}-label` })}
id={radioId}
+3 -1
View File
@@ -52,7 +52,9 @@ const RelatedArticles = memo<RelatedArticlesProps>(
transform: isMobile
? `translateX(calc(50% - 130px - ${currentIndex * 260}px))`
: "none",
scrollBehavior: !isMobile ? "smooth" : "auto",
scrollBehavior: (!isMobile
? "smooth"
: "auto") as React.CSSProperties["scrollBehavior"],
}),
[isMobile, currentIndex],
);
+20 -5
View File
@@ -8,6 +8,7 @@ import React, {
useEffect,
useCallback,
memo,
useImperativeHandle,
} from "react";
import SelectDropdown from "./SelectDropdown";
import SelectOption from "./SelectOption";
@@ -61,6 +62,11 @@ const Select = forwardRef<HTMLButtonElement, SelectProps>(
const selectRef = useRef<HTMLButtonElement>(null);
const menuRef = useRef<HTMLDivElement>(null);
useImperativeHandle(
ref,
() => selectRef.current as HTMLButtonElement | null,
);
// Handle click outside to close menu
useEffect(() => {
const handleClickOutside = (event: MouseEvent) => {
@@ -260,11 +266,20 @@ const Select = forwardRef<HTMLButtonElement, SelectProps>(
// Handle children (option elements)
const selectedOption = React.Children.toArray(children).find(
(child) =>
React.isValidElement(child) && child.props.value === selectedValue,
) as
| React.ReactElement<{ value: string; children: React.ReactNode }>
| undefined;
(
child,
): child is React.ReactElement<{
value: string;
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
? String(selectedOption.props.children)
: placeholder;
+53 -54
View File
@@ -60,64 +60,63 @@ const WebVitalsDashboard = memo(() => {
// Set up Web Vitals tracking
if (typeof window !== "undefined") {
import("web-vitals").then(
({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
// Track Largest Contentful Paint
getLCP((metric) => {
setVitals((prev) => ({
...prev,
lcp: {
value: Math.round(metric.value),
rating: metric.rating,
},
}));
});
import("web-vitals").then((webVitals) => {
const { getCLS, getFID, getFCP, getLCP, getTTFB } = webVitals as any;
// Track Largest Contentful Paint
getLCP((metric) => {
setVitals((prev) => ({
...prev,
lcp: {
value: Math.round(metric.value),
rating: metric.rating,
},
}));
});
// Track First Input Delay
getFID((metric) => {
setVitals((prev) => ({
...prev,
fid: {
value: Math.round(metric.value),
rating: metric.rating,
},
}));
});
// Track First Input Delay
getFID((metric) => {
setVitals((prev) => ({
...prev,
fid: {
value: Math.round(metric.value),
rating: metric.rating,
},
}));
});
// Track Cumulative Layout Shift
getCLS((metric) => {
setVitals((prev) => ({
...prev,
cls: {
value: Math.round(metric.value * 1000) / 1000,
rating: metric.rating,
},
}));
});
// Track Cumulative Layout Shift
getCLS((metric) => {
setVitals((prev) => ({
...prev,
cls: {
value: Math.round(metric.value * 1000) / 1000,
rating: metric.rating,
},
}));
});
// Track First Contentful Paint
getFCP((metric) => {
setVitals((prev) => ({
...prev,
fcp: {
value: Math.round(metric.value),
rating: metric.rating,
},
}));
});
// Track First Contentful Paint
getFCP((metric) => {
setVitals((prev) => ({
...prev,
fcp: {
value: Math.round(metric.value),
rating: metric.rating,
},
}));
});
// Track Time to First Byte
getTTFB((metric) => {
setVitals((prev) => ({
...prev,
ttfb: {
value: Math.round(metric.value),
rating: metric.rating,
},
}));
});
},
);
// Track Time to First Byte
getTTFB((metric) => {
setVitals((prev) => ({
...prev,
ttfb: {
value: Math.round(metric.value),
rating: metric.rating,
},
}));
});
});
}
}, []);
-2
View File
@@ -2,8 +2,6 @@ import { Inter, Bricolage_Grotesque, Space_Grotesk } from "next/font/google";
import type { Metadata } from "next";
import type { ReactNode } from "react";
import "./globals.css";
import Header from "./components/Header";
import HomeHeader from "./components/HomeHeader";
import Footer from "./components/Footer";
import ConditionalHeader from "./components/ConditionalHeader";
+4 -5
View File
@@ -1,19 +1,18 @@
import ContentThumbnailTemplate from "../components/ContentThumbnailTemplate";
import ContentLockup from "../components/ContentLockup";
import AskOrganizer from "../components/AskOrganizer";
import { getAllBlogPosts, getRecentBlogPosts } from "../../lib/content";
import { getAllBlogPosts } from "../../lib/content";
export default function LearnPage() {
// Get real blog posts from the content system
const allPosts = getAllBlogPosts();
const recentPosts = getRecentBlogPosts(3);
const contentLockupData = {
title: "Organizing is hard",
subtitle:
"Find answers to your questions and see how other groups have solved similar challenges.",
variant: "learn",
alignment: "left",
variant: "learn" as const,
alignment: "left" as const,
};
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.",
buttonText: "Ask an organizer",
buttonHref: "/contact",
variant: "centered",
variant: "centered" as const,
};
return (
+11 -11
View File
@@ -70,7 +70,7 @@ export function getBlogPostFiles(): string[] {
try {
const files = fs.readdirSync(contentDirectory);
return files.filter(
(file) => file.endsWith(".md") || file.endsWith(".mdx")
(file) => file.endsWith(".md") || file.endsWith(".mdx"),
);
} catch (error) {
console.error("Error reading blog content directory:", error);
@@ -94,7 +94,7 @@ export function parseBlogPost(filePath: string): BlogPost | null {
if (!validationResult.isValid) {
console.error(
`Validation errors for ${filePath}:`,
validationResult.errors
validationResult.errors,
);
return null;
}
@@ -128,7 +128,7 @@ export function getAllBlogPosts(): BlogPost[] {
.sort(
(a, b) =>
new Date(b.frontmatter.date).getTime() -
new Date(a.frontmatter.date).getTime()
new Date(a.frontmatter.date).getTime(),
); // Sort by date descending
return allPosts;
}
@@ -153,11 +153,11 @@ export function getBlogPostBySlug(slug: string): BlogPost | null {
export function getRelatedBlogPosts(
currentPostSlug: string,
relatedSlugs: string[] = [],
limit: number = 3
limit: number = 3,
): BlogPost[] {
const allPosts = getAllBlogPosts();
const filteredPosts = allPosts.filter(
(post) => post.slug !== currentPostSlug
(post) => post.slug !== currentPostSlug,
);
let related: BlogPost[] = [];
@@ -203,7 +203,7 @@ export function getAllTags(): string[] {
export function getBlogPostsByTag(tag: string): BlogPost[] {
const allPosts = getAllBlogPosts();
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);
const contentMatch = post.content.toLowerCase().includes(searchTerm);
const tagMatch = post.frontmatter.tags?.some((tag) =>
tag.toLowerCase().includes(searchTerm)
tag.toLowerCase().includes(searchTerm),
);
return titleMatch || descriptionMatch || contentMatch || tagMatch;
@@ -245,7 +245,7 @@ export function searchBlogPosts(query: string, limit: number = 10): BlogPost[] {
export function getBlogPostsByAuthor(author: string): BlogPost[] {
const allPosts = getAllBlogPosts();
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,
(new Date(allPosts[0].frontmatter.date).getTime() -
new Date(
allPosts[allPosts.length - 1].frontmatter.date
allPosts[allPosts.length - 1].frontmatter.date,
).getTime()) /
(1000 * 60 * 60 * 24 * 30)
(1000 * 60 * 60 * 24 * 30),
)) *
10
10,
) / 10
: 0,
};
+10 -11
View File
@@ -180,7 +180,6 @@ function markdownToHtml(markdown: string): string {
if (!markdown) return "";
// Normalize line endings
const GAP_TOKEN = "<GAP/>";
const src = String(markdown).replace(/\r\n?/g, "\n");
// For 3+ consecutive newlines, keep 2 for the paragraph break and
@@ -195,33 +194,33 @@ function markdownToHtml(markdown: string): string {
// Headers with IDs
.replace(
/^###### (.*$)/gim,
(m, t) => `<h6 id="${generateHeadingId(t)}">${t}</h6>`,
(_match, t) => `<h6 id="${generateHeadingId(t)}">${t}</h6>`,
)
.replace(
/^##### (.*$)/gim,
(m, t) => `<h5 id="${generateHeadingId(t)}">${t}</h5>`,
(_match, t) => `<h5 id="${generateHeadingId(t)}">${t}</h5>`,
)
.replace(
/^#### (.*$)/gim,
(m, t) => `<h4 id="${generateHeadingId(t)}">${t}</h4>`,
(_match, t) => `<h4 id="${generateHeadingId(t)}">${t}</h4>`,
)
.replace(
/^### (.*$)/gim,
(m, t) => `<h3 id="${generateHeadingId(t)}">${t}</h3>`,
(_match, t) => `<h3 id="${generateHeadingId(t)}">${t}</h3>`,
)
.replace(
/^## (.*$)/gim,
(m, t) => `<h2 id="${generateHeadingId(t)}">${t}</h2>`,
(_match, t) => `<h2 id="${generateHeadingId(t)}">${t}</h2>`,
)
.replace(
/^# (.*$)/gim,
(m, t) => `<h1 id="${generateHeadingId(t)}">${t}</h1>`,
(_match, t) => `<h1 id="${generateHeadingId(t)}">${t}</h1>`,
)
// Code fences (block) and inline code
.replace(
/```(\w+)?\n([\s\S]*?)\n```/g,
(m, lang = "", code) =>
(_match, lang = "", code) =>
`<pre><code class="language-${lang}">${code}</code></pre>`,
)
.replace(/`([^`]+)`/g, "<code>$1</code>")
@@ -233,12 +232,12 @@ function markdownToHtml(markdown: string): string {
// Links and images
.replace(
/!\[([^\]]*)\]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,
(m, alt, src, title = "") =>
(_match, alt, src, title = "") =>
`<img alt="${alt}" src="${src}"${title ? ` title="${title}"` : ""}>`,
)
.replace(
/\[([^\]]+)\]\(([^)\s]+)(?:\s+"([^"]+)")?\)/g,
(m, text, href, title = "") =>
(_match, text, href, title = "") =>
`<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
.replace(
/<GAP:(\d+)\/>/g,
(m, n) =>
(_match, n) =>
`<div class="md-gap" style="--gap:${Number(
n,
)}" aria-hidden="true"></div>`,
-16
View File
@@ -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
View File
@@ -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 { AxeBuilder } from "@axe-core/playwright";
test.describe("Accessibility Testing", () => {
test.beforeEach(async ({ page }) => {
+1 -1
View File
@@ -1,6 +1,6 @@
import { AxeBuilder } from "@axe-core/playwright";
export async function runA11y(page, options = {}) {
export async function runA11y(page, _options = {}) {
const results = await new AxeBuilder({ page })
.withTags(["wcag2a", "wcag2aa"])
.analyze();
-1
View File
@@ -1,5 +1,4 @@
import { test, expect } from "@playwright/test";
import { runA11y } from "./axe";
test.describe("Homepage", () => {
test.beforeEach(async ({ page }) => {
+52 -38
View File
@@ -58,7 +58,7 @@ test.describe("Performance Monitoring", () => {
performanceMonitor.setBaselines(BASELINE_METRICS);
});
test("homepage load performance", async ({ page }) => {
test("homepage load performance", async ({ page: _page }) => {
const result = await performanceMonitor.measurePageLoad("/");
// Assert page load time is within budget
@@ -83,43 +83,57 @@ test.describe("Performance Monitoring", () => {
await page.waitForLoadState("networkidle");
// Get Core Web Vitals with timeout
const coreWebVitals = await page.evaluate(() => {
return new Promise((resolve) => {
const timeout = setTimeout(() => {
observer.disconnect();
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);
const coreWebVitals = (await page.evaluate(() => {
return new Promise<{ lcp: number; fid: number; cls: number }>(
(resolve) => {
const timeout = setTimeout(() => {
observer.disconnect();
resolve(metrics);
}
});
resolve({ lcp: 0, fid: 0, cls: 0 }); // Default values if timeout
}, 10000); // 10 second timeout
observer.observe({
entryTypes: [
"largest-contentful-paint",
"first-input",
"layout-shift",
],
});
});
});
const observer = new PerformanceObserver((list) => {
const entries = list.getEntries();
const metrics: { lcp?: number; fid?: number; cls?: number } = {};
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
expect(coreWebVitals.lcp).toBeLessThan(
@@ -251,7 +265,7 @@ test.describe("Performance Monitoring", () => {
});
test("network request performance", async ({ page }) => {
const requests = await performanceMonitor.monitorNetworkRequests();
await performanceMonitor.monitorNetworkRequests();
await page.goto("/");
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
const summary = performanceMonitor.getSummary();
+19 -17
View File
@@ -14,7 +14,7 @@ describe("Layout Integration", () => {
<div>
<Header />
<Footer />
</div>
</div>,
);
// Check that CommunityRule branding appears in both header and footer
@@ -30,19 +30,21 @@ describe("Layout Integration", () => {
<div>
<Header />
<Footer />
</div>
</div>,
);
// Header navigation items
expect(
screen.getAllByRole("menuitem", { name: "Navigate to Use cases page" })
.length
.length,
).toBeGreaterThan(0);
expect(
screen.getAllByRole("menuitem", { name: "Navigate to Learn page" }).length
screen.getAllByRole("menuitem", { name: "Navigate to Learn page" })
.length,
).toBeGreaterThan(0);
expect(
screen.getAllByRole("menuitem", { name: "Navigate to About page" }).length
screen.getAllByRole("menuitem", { name: "Navigate to About page" })
.length,
).toBeGreaterThan(0);
// Footer navigation items (should be present in footer as well)
@@ -96,23 +98,23 @@ describe("Layout Integration", () => {
// Contact information
expect(screen.getByText("medlab@colorado.edu")).toBeInTheDocument();
expect(
screen.getByRole("link", { name: "medlab@colorado.edu" })
screen.getByRole("link", { name: "medlab@colorado.edu" }),
).toHaveAttribute("href", "mailto:medlab@colorado.edu");
// Social media links
expect(
screen.getByRole("link", { name: "Follow us on Bluesky" })
screen.getByRole("link", { name: "Follow us on Bluesky" }),
).toBeInTheDocument();
expect(
screen.getByRole("link", { name: "Follow us on GitLab" })
screen.getByRole("link", { name: "Follow us on GitLab" }),
).toBeInTheDocument();
// Legal links
expect(
screen.getByRole("link", { name: "Privacy Policy" })
screen.getByRole("link", { name: "Privacy Policy" }),
).toBeInTheDocument();
expect(
screen.getByRole("link", { name: "Terms of Service" })
screen.getByRole("link", { name: "Terms of Service" }),
).toBeInTheDocument();
});
@@ -138,7 +140,7 @@ describe("Layout Integration", () => {
<div>
<Header />
<Footer />
</div>
</div>,
);
// Header should have banner role
@@ -159,7 +161,7 @@ describe("Layout Integration", () => {
<div>
<Header />
<Footer />
</div>
</div>,
);
// Header should have responsive navigation elements
@@ -176,7 +178,7 @@ describe("Layout Integration", () => {
<div>
<Header />
<Footer />
</div>
</div>,
);
// Get all interactive elements
@@ -199,7 +201,7 @@ describe("Layout Integration", () => {
<div>
<Header />
<Footer />
</div>
</div>,
);
// Header provides main navigation
@@ -219,7 +221,7 @@ describe("Layout Integration", () => {
<div>
<Header />
<Footer />
</div>
</div>,
);
// Main navigation in header
@@ -232,13 +234,13 @@ describe("Layout Integration", () => {
(link) =>
link.textContent?.includes("Use cases") ||
link.textContent?.includes("Learn") ||
link.textContent?.includes("About")
link.textContent?.includes("About"),
);
expect(navigationLinks.length).toBeGreaterThan(0);
// Contact information in footer
expect(
screen.getByRole("link", { name: "medlab@colorado.edu" })
screen.getByRole("link", { name: "medlab@colorado.edu" }),
).toBeInTheDocument();
});
});
+15 -15
View File
@@ -27,7 +27,7 @@ describe("Footer", () => {
expect(schemaData.email).toBe("medlab@colorado.edu");
expect(schemaData.url).toBe("https://communityrule.com");
expect(schemaData.sameAs).toContain(
"https://bsky.app/profile/medlabboulder"
"https://bsky.app/profile/medlabboulder",
);
expect(schemaData.sameAs).toContain("https://gitlab.com/medlabboulder");
});
@@ -36,7 +36,7 @@ describe("Footer", () => {
render(<Footer />);
expect(
screen.getAllByText("Media Economies Design Lab").length
screen.getAllByText("Media Economies Design Lab").length,
).toBeGreaterThan(0);
const emailLinks = screen.getAllByRole("link", {
@@ -86,13 +86,13 @@ describe("Footer", () => {
render(<Footer />);
expect(
screen.getAllByRole("link", { name: "Use cases" }).length
screen.getAllByRole("link", { name: "Use cases" }).length,
).toBeGreaterThan(0);
expect(
screen.getAllByRole("link", { name: "Learn" }).length
screen.getAllByRole("link", { name: "Learn" }).length,
).toBeGreaterThan(0);
expect(
screen.getAllByRole("link", { name: "About" }).length
screen.getAllByRole("link", { name: "About" }).length,
).toBeGreaterThan(0);
});
@@ -100,13 +100,13 @@ describe("Footer", () => {
render(<Footer />);
expect(
screen.getAllByRole("link", { name: "Privacy Policy" }).length
screen.getAllByRole("link", { name: "Privacy Policy" }).length,
).toBeGreaterThan(0);
expect(
screen.getAllByRole("link", { name: "Terms of Service" }).length
screen.getAllByRole("link", { name: "Terms of Service" }).length,
).toBeGreaterThan(0);
expect(
screen.getAllByRole("link", { name: "Cookies Settings" }).length
screen.getAllByRole("link", { name: "Cookies Settings" }).length,
).toBeGreaterThan(0);
});
@@ -114,7 +114,7 @@ describe("Footer", () => {
render(<Footer />);
expect(screen.getAllByText("© All right reserved").length).toBeGreaterThan(
0
0,
);
});
@@ -123,7 +123,7 @@ describe("Footer", () => {
// Check that logo containers exist for different breakpoints
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);
});
@@ -147,7 +147,7 @@ describe("Footer", () => {
// The Separator component should be rendered (it uses a div with border, not hr)
const separator = document.querySelector(
".bg-\\[var\\(--border-color-default-secondary\\)\\]"
".bg-\\[var\\(--border-color-default-secondary\\)\\]",
);
expect(separator).toBeInTheDocument();
});
@@ -263,10 +263,10 @@ describe("Footer", () => {
expect(emailLink).toHaveClass("focus:ring-2");
expect(emailLink).toHaveClass("focus:ring-offset-2");
expect(emailLink).toHaveClass(
"focus:ring-[var(--color-content-default-primary)]"
"focus:ring-[var(--color-content-default-primary)]",
);
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-offset-2");
expect(link).toHaveClass(
"focus:ring-[var(--color-content-default-primary)]"
"focus:ring-[var(--color-content-default-primary)]",
);
expect(link).toHaveClass(
"focus:ring-offset-[var(--color-surface-default-primary)]"
"focus:ring-offset-[var(--color-surface-default-primary)]",
);
});
});