Skip to content

Commit f28e44c

Browse files
committed
feat: Added code of shell runner & git client
0 parents  commit f28e44c

33 files changed

+7121
-0
lines changed

.github/workflows/tests.yml

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
branches: [ "main" ]
6+
pull_request:
7+
branches: [ "main" ]
8+
9+
jobs:
10+
eslint:
11+
runs-on: ubuntu-22.04
12+
13+
strategy:
14+
matrix:
15+
node-version: [ 20.x, 22.x ]
16+
17+
steps:
18+
- name: Using branch ${{ github.ref }} for repository ${{ github.repository }}.
19+
uses: actions/checkout@v4
20+
21+
- name: Use Node.js ${{ matrix.node-version }}
22+
uses: actions/setup-node@v4
23+
with:
24+
node-version: ${{ matrix.node-version }}
25+
26+
- name: Yarn configuration
27+
run: |
28+
make .yarnrc.yml
29+
echo "enableGlobalCache: false" >> .yarnrc.yml
30+
31+
- name: Cache dependencies
32+
id: cache-deps
33+
uses: actions/cache@v4
34+
with:
35+
path: .yarn
36+
key: ${{ runner.OS }}-node-${{ matrix.node-version }}-yarn-${{ hashFiles('**/yarn.lock') }}
37+
restore-keys: |
38+
${{ runner.OS }}-node-${{ matrix.node-version }}-yarn-
39+
40+
- name: Install dependencies
41+
run: |
42+
yarn install
43+
44+
- name: Run eslint
45+
run: |
46+
yarn eslint
47+
48+
tests:
49+
needs: eslint
50+
51+
runs-on: ubuntu-22.04
52+
53+
strategy:
54+
matrix:
55+
node-version: [ 20.x, 22.x ]
56+
57+
steps:
58+
- name: Using branch ${{ github.ref }} for repository ${{ github.repository }}.
59+
uses: actions/checkout@v4
60+
61+
- name: Use Node.js ${{ matrix.node-version }}
62+
uses: actions/setup-node@v4
63+
with:
64+
node-version: ${{ matrix.node-version }}
65+
66+
- name: Yarn configuration
67+
run: |
68+
make .yarnrc.yml
69+
echo "enableGlobalCache: false" >> .yarnrc.yml
70+
71+
- name: Cache dependencies
72+
id: cache-deps
73+
uses: actions/cache@v4
74+
with:
75+
path: .yarn
76+
key: ${{ runner.OS }}-node-${{ matrix.node-version }}-yarn-${{ hashFiles('**/yarn.lock') }}
77+
restore-keys: |
78+
${{ runner.OS }}-node-${{ matrix.node-version }}-yarn-
79+
80+
- name: Install dependencies
81+
run: |
82+
yarn install
83+
84+
- name: Run tests
85+
run: |
86+
yarn test:coverage
87+
88+
- name: Upload coverage to GitHub Artifacts
89+
uses: actions/upload-artifact@v4
90+
with:
91+
name: coverage-${{ matrix.node-version }}
92+
path: coverage/
93+
94+
- name: Upload coverage reports to Codecov
95+
uses: codecov/codecov-action@v4
96+
with:
97+
token: ${{ secrets.CODECOV_TOKEN }}
98+
file: ./coverage/lcov.info

.gitignore

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
.fleet
2+
.idea
3+
.vscode
4+
.yarn/*
5+
!.yarn/patches
6+
!.yarn/plugins
7+
!.yarn/releases
8+
!.yarn/sdks
9+
!.yarn/versions
10+
coverage
11+
dist
12+
node_modules
13+
14+
.npmrc
15+
.pnp.cjs
16+
.pnp.loader.mjs
17+
.yarnrc.yml

.versionrc.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
{
2+
"types": [
3+
{ "type": "feat", "section": "Features" },
4+
{ "type": "perf", "section": "Performance" },
5+
{ "type": "fix", "section": "Fixes" },
6+
{ "type": "docs", "section": "Documentation" },
7+
{ "type": "chore", "hidden": true },
8+
{ "type": "style", "hidden": true },
9+
{ "type": "refactor", "hidden": true },
10+
{ "type": "test", "hidden": true }
11+
]
12+
}

.yarn/releases/yarn-4.6.0.cjs

Lines changed: 934 additions & 0 deletions
Large diffs are not rendered by default.

.yarn/sdks/integrations.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# This file is automatically generated by @yarnpkg/sdks.
2+
# Manual changes might be lost!
3+

.yarn/sdks/typescript/bin/tsc

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/usr/bin/env node
2+
3+
const {existsSync} = require(`fs`);
4+
const {createRequire, register} = require(`module`);
5+
const {resolve} = require(`path`);
6+
const {pathToFileURL} = require(`url`);
7+
8+
const relPnpApiPath = "../../../../.pnp.cjs";
9+
10+
const absPnpApiPath = resolve(__dirname, relPnpApiPath);
11+
const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`);
12+
const absRequire = createRequire(absPnpApiPath);
13+
14+
const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
15+
const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);
16+
17+
if (existsSync(absPnpApiPath)) {
18+
if (!process.versions.pnp) {
19+
// Setup the environment to be able to require typescript/bin/tsc
20+
require(absPnpApiPath).setup();
21+
if (isPnpLoaderEnabled && register) {
22+
register(pathToFileURL(absPnpLoaderPath));
23+
}
24+
}
25+
}
26+
27+
const wrapWithUserWrapper = existsSync(absUserWrapperPath)
28+
? exports => absRequire(absUserWrapperPath)(exports)
29+
: exports => exports;
30+
31+
// Defer to the real typescript/bin/tsc your application uses
32+
module.exports = wrapWithUserWrapper(absRequire(`typescript/bin/tsc`));

.yarn/sdks/typescript/bin/tsserver

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/usr/bin/env node
2+
3+
const {existsSync} = require(`fs`);
4+
const {createRequire, register} = require(`module`);
5+
const {resolve} = require(`path`);
6+
const {pathToFileURL} = require(`url`);
7+
8+
const relPnpApiPath = "../../../../.pnp.cjs";
9+
10+
const absPnpApiPath = resolve(__dirname, relPnpApiPath);
11+
const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`);
12+
const absRequire = createRequire(absPnpApiPath);
13+
14+
const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
15+
const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);
16+
17+
if (existsSync(absPnpApiPath)) {
18+
if (!process.versions.pnp) {
19+
// Setup the environment to be able to require typescript/bin/tsserver
20+
require(absPnpApiPath).setup();
21+
if (isPnpLoaderEnabled && register) {
22+
register(pathToFileURL(absPnpLoaderPath));
23+
}
24+
}
25+
}
26+
27+
const wrapWithUserWrapper = existsSync(absUserWrapperPath)
28+
? exports => absRequire(absUserWrapperPath)(exports)
29+
: exports => exports;
30+
31+
// Defer to the real typescript/bin/tsserver your application uses
32+
module.exports = wrapWithUserWrapper(absRequire(`typescript/bin/tsserver`));

.yarn/sdks/typescript/lib/tsc.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
#!/usr/bin/env node
2+
3+
const {existsSync} = require(`fs`);
4+
const {createRequire, register} = require(`module`);
5+
const {resolve} = require(`path`);
6+
const {pathToFileURL} = require(`url`);
7+
8+
const relPnpApiPath = "../../../../.pnp.cjs";
9+
10+
const absPnpApiPath = resolve(__dirname, relPnpApiPath);
11+
const absUserWrapperPath = resolve(__dirname, `./sdk.user.cjs`);
12+
const absRequire = createRequire(absPnpApiPath);
13+
14+
const absPnpLoaderPath = resolve(absPnpApiPath, `../.pnp.loader.mjs`);
15+
const isPnpLoaderEnabled = existsSync(absPnpLoaderPath);
16+
17+
if (existsSync(absPnpApiPath)) {
18+
if (!process.versions.pnp) {
19+
// Setup the environment to be able to require typescript/lib/tsc.js
20+
require(absPnpApiPath).setup();
21+
if (isPnpLoaderEnabled && register) {
22+
register(pathToFileURL(absPnpLoaderPath));
23+
}
24+
}
25+
}
26+
27+
const wrapWithUserWrapper = existsSync(absUserWrapperPath)
28+
? exports => absRequire(absUserWrapperPath)(exports)
29+
: exports => exports;
30+
31+
// Defer to the real typescript/lib/tsc.js your application uses
32+
module.exports = wrapWithUserWrapper(absRequire(`typescript/lib/tsc.js`));

0 commit comments

Comments
 (0)