envilder 0.2.3 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +66 -66
- package/.gitconfig +2 -2
- package/.github/dependabot.yml +39 -39
- package/.github/pull_request_template.md +20 -20
- package/.github/workflows/codeql-analysis.yml +49 -49
- package/.github/workflows/coverage-report.yml +73 -73
- package/.github/workflows/publish.yml +78 -0
- package/.github/workflows/unit-tests.yml +51 -48
- package/LICENSE +21 -21
- package/README.md +144 -95
- package/biome.json +2 -11
- package/package.json +19 -20
- package/src/cli/cliRunner.ts +10 -3
- package/src/index.ts +36 -5
- package/tests/cli/cliRunner.test.ts +16 -2
- package/tests/index.test.ts +27 -20
- package/tests/sample/autogenerated.env +1 -0
- package/vitest.config.js +12 -12
- package/lib/cli/cliRunner.d.ts +0 -3
- package/lib/cli/cliRunner.d.ts.map +0 -1
- package/lib/cli/cliRunner.js +0 -33
- package/lib/cli/cliRunner.js.map +0 -1
- package/lib/index.d.ts +0 -2
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js +0 -86
- package/lib/index.js.map +0 -1
- /package/tests/sample/{param_map.json → param-map.json} +0 -0
package/.gitattributes
CHANGED
|
@@ -1,67 +1,67 @@
|
|
|
1
|
-
###############################################################################
|
|
2
|
-
# Set default behavior to automatically normalize line endings.
|
|
3
|
-
###############################################################################
|
|
4
|
-
* text=auto
|
|
5
|
-
|
|
6
|
-
# Explicitly declare text files you want to always be normalized and converted
|
|
7
|
-
# to native line endings on checkout.
|
|
8
|
-
*.sh text eol=lf
|
|
9
|
-
|
|
10
|
-
###############################################################################
|
|
11
|
-
# Set default behavior for command prompt diff.
|
|
12
|
-
#
|
|
13
|
-
# This is need for earlier builds of msysgit that does not have it on by
|
|
14
|
-
# default for csharp files.
|
|
15
|
-
# Note: This is only used by command line
|
|
16
|
-
###############################################################################
|
|
17
|
-
#*.cs diff=csharp
|
|
18
|
-
|
|
19
|
-
###############################################################################
|
|
20
|
-
# Set the merge driver for project and solution files
|
|
21
|
-
#
|
|
22
|
-
# Merging from the command prompt will add diff markers to the files if there
|
|
23
|
-
# are conflicts (Merging from VS is not affected by the settings below, in VS
|
|
24
|
-
# the diff markers are never inserted). Diff markers may cause the following
|
|
25
|
-
# file extensions to fail to load in VS. An alternative would be to treat
|
|
26
|
-
# these files as binary and thus will always conflict and require user
|
|
27
|
-
# intervention with every merge. To do so, just uncomment the entries below
|
|
28
|
-
###############################################################################
|
|
29
|
-
#*.sln merge=binary
|
|
30
|
-
#*.csproj merge=binary
|
|
31
|
-
#*.vbproj merge=binary
|
|
32
|
-
#*.vcxproj merge=binary
|
|
33
|
-
#*.vcproj merge=binary
|
|
34
|
-
#*.dbproj merge=binary
|
|
35
|
-
#*.fsproj merge=binary
|
|
36
|
-
#*.lsproj merge=binary
|
|
37
|
-
#*.wixproj merge=binary
|
|
38
|
-
#*.modelproj merge=binary
|
|
39
|
-
#*.sqlproj merge=binary
|
|
40
|
-
#*.wwaproj merge=binary
|
|
41
|
-
|
|
42
|
-
###############################################################################
|
|
43
|
-
# behavior for image files
|
|
44
|
-
#
|
|
45
|
-
# image files are treated as binary by default.
|
|
46
|
-
###############################################################################
|
|
47
|
-
#*.jpg binary
|
|
48
|
-
#*.png binary
|
|
49
|
-
#*.gif binary
|
|
50
|
-
|
|
51
|
-
###############################################################################
|
|
52
|
-
# diff behavior for common document formats
|
|
53
|
-
#
|
|
54
|
-
# Convert binary document formats to text before diffing them. This feature
|
|
55
|
-
# is only available from the command line. Turn it on by uncommenting the
|
|
56
|
-
# entries below.
|
|
57
|
-
###############################################################################
|
|
58
|
-
#*.doc diff=astextplain
|
|
59
|
-
#*.DOC diff=astextplain
|
|
60
|
-
#*.docx diff=astextplain
|
|
61
|
-
#*.DOCX diff=astextplain
|
|
62
|
-
#*.dot diff=astextplain
|
|
63
|
-
#*.DOT diff=astextplain
|
|
64
|
-
#*.pdf diff=astextplain
|
|
65
|
-
#*.PDF diff=astextplain
|
|
66
|
-
#*.rtf diff=astextplain
|
|
1
|
+
###############################################################################
|
|
2
|
+
# Set default behavior to automatically normalize line endings.
|
|
3
|
+
###############################################################################
|
|
4
|
+
* text=auto
|
|
5
|
+
|
|
6
|
+
# Explicitly declare text files you want to always be normalized and converted
|
|
7
|
+
# to native line endings on checkout.
|
|
8
|
+
*.sh text eol=lf
|
|
9
|
+
|
|
10
|
+
###############################################################################
|
|
11
|
+
# Set default behavior for command prompt diff.
|
|
12
|
+
#
|
|
13
|
+
# This is need for earlier builds of msysgit that does not have it on by
|
|
14
|
+
# default for csharp files.
|
|
15
|
+
# Note: This is only used by command line
|
|
16
|
+
###############################################################################
|
|
17
|
+
#*.cs diff=csharp
|
|
18
|
+
|
|
19
|
+
###############################################################################
|
|
20
|
+
# Set the merge driver for project and solution files
|
|
21
|
+
#
|
|
22
|
+
# Merging from the command prompt will add diff markers to the files if there
|
|
23
|
+
# are conflicts (Merging from VS is not affected by the settings below, in VS
|
|
24
|
+
# the diff markers are never inserted). Diff markers may cause the following
|
|
25
|
+
# file extensions to fail to load in VS. An alternative would be to treat
|
|
26
|
+
# these files as binary and thus will always conflict and require user
|
|
27
|
+
# intervention with every merge. To do so, just uncomment the entries below
|
|
28
|
+
###############################################################################
|
|
29
|
+
#*.sln merge=binary
|
|
30
|
+
#*.csproj merge=binary
|
|
31
|
+
#*.vbproj merge=binary
|
|
32
|
+
#*.vcxproj merge=binary
|
|
33
|
+
#*.vcproj merge=binary
|
|
34
|
+
#*.dbproj merge=binary
|
|
35
|
+
#*.fsproj merge=binary
|
|
36
|
+
#*.lsproj merge=binary
|
|
37
|
+
#*.wixproj merge=binary
|
|
38
|
+
#*.modelproj merge=binary
|
|
39
|
+
#*.sqlproj merge=binary
|
|
40
|
+
#*.wwaproj merge=binary
|
|
41
|
+
|
|
42
|
+
###############################################################################
|
|
43
|
+
# behavior for image files
|
|
44
|
+
#
|
|
45
|
+
# image files are treated as binary by default.
|
|
46
|
+
###############################################################################
|
|
47
|
+
#*.jpg binary
|
|
48
|
+
#*.png binary
|
|
49
|
+
#*.gif binary
|
|
50
|
+
|
|
51
|
+
###############################################################################
|
|
52
|
+
# diff behavior for common document formats
|
|
53
|
+
#
|
|
54
|
+
# Convert binary document formats to text before diffing them. This feature
|
|
55
|
+
# is only available from the command line. Turn it on by uncommenting the
|
|
56
|
+
# entries below.
|
|
57
|
+
###############################################################################
|
|
58
|
+
#*.doc diff=astextplain
|
|
59
|
+
#*.DOC diff=astextplain
|
|
60
|
+
#*.docx diff=astextplain
|
|
61
|
+
#*.DOCX diff=astextplain
|
|
62
|
+
#*.dot diff=astextplain
|
|
63
|
+
#*.DOT diff=astextplain
|
|
64
|
+
#*.pdf diff=astextplain
|
|
65
|
+
#*.PDF diff=astextplain
|
|
66
|
+
#*.rtf diff=astextplain
|
|
67
67
|
#*.RTF diff=astextplain
|
package/.gitconfig
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
[core]
|
|
2
|
-
longpaths = true
|
|
1
|
+
[core]
|
|
2
|
+
longpaths = true
|
package/.github/dependabot.yml
CHANGED
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
# To get started with Dependabot version updates, you'll need to specify which
|
|
2
|
-
# package ecosystems to update and where the package manifests are located.
|
|
3
|
-
# Please see the documentation for all configuration options:
|
|
4
|
-
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
|
5
|
-
|
|
6
|
-
version: 2
|
|
7
|
-
updates:
|
|
8
|
-
- package-ecosystem: npm
|
|
9
|
-
directory: "/"
|
|
10
|
-
pull-request-branch-name:
|
|
11
|
-
separator: "/"
|
|
12
|
-
schedule:
|
|
13
|
-
interval: monthly
|
|
14
|
-
day: monday
|
|
15
|
-
time: "10:00"
|
|
16
|
-
timezone: Europe/Madrid
|
|
17
|
-
labels:
|
|
18
|
-
- "npm"
|
|
19
|
-
- "dependencies"
|
|
20
|
-
reviewers:
|
|
21
|
-
- macalbert
|
|
22
|
-
assignees:
|
|
23
|
-
- macalbert
|
|
24
|
-
|
|
25
|
-
- package-ecosystem: github-actions
|
|
26
|
-
directory: "/"
|
|
27
|
-
pull-request-branch-name:
|
|
28
|
-
separator: "/"
|
|
29
|
-
schedule:
|
|
30
|
-
interval: monthly
|
|
31
|
-
day: monday
|
|
32
|
-
time: "10:00"
|
|
33
|
-
timezone: Europe/Madrid
|
|
34
|
-
labels:
|
|
35
|
-
- "github-actions"
|
|
36
|
-
- "dependencies"
|
|
37
|
-
reviewers:
|
|
38
|
-
- macalbert
|
|
39
|
-
assignees:
|
|
1
|
+
# To get started with Dependabot version updates, you'll need to specify which
|
|
2
|
+
# package ecosystems to update and where the package manifests are located.
|
|
3
|
+
# Please see the documentation for all configuration options:
|
|
4
|
+
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
|
5
|
+
|
|
6
|
+
version: 2
|
|
7
|
+
updates:
|
|
8
|
+
- package-ecosystem: npm
|
|
9
|
+
directory: "/"
|
|
10
|
+
pull-request-branch-name:
|
|
11
|
+
separator: "/"
|
|
12
|
+
schedule:
|
|
13
|
+
interval: monthly
|
|
14
|
+
day: monday
|
|
15
|
+
time: "10:00"
|
|
16
|
+
timezone: Europe/Madrid
|
|
17
|
+
labels:
|
|
18
|
+
- "npm"
|
|
19
|
+
- "dependencies"
|
|
20
|
+
reviewers:
|
|
21
|
+
- macalbert
|
|
22
|
+
assignees:
|
|
23
|
+
- macalbert
|
|
24
|
+
|
|
25
|
+
- package-ecosystem: github-actions
|
|
26
|
+
directory: "/"
|
|
27
|
+
pull-request-branch-name:
|
|
28
|
+
separator: "/"
|
|
29
|
+
schedule:
|
|
30
|
+
interval: monthly
|
|
31
|
+
day: monday
|
|
32
|
+
time: "10:00"
|
|
33
|
+
timezone: Europe/Madrid
|
|
34
|
+
labels:
|
|
35
|
+
- "github-actions"
|
|
36
|
+
- "dependencies"
|
|
37
|
+
reviewers:
|
|
38
|
+
- macalbert
|
|
39
|
+
assignees:
|
|
40
40
|
- macalbert
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
# Description
|
|
2
|
-
|
|
3
|
-
_Describe the problem or feature in addition to a link to the issues._
|
|
4
|
-
|
|
5
|
-
## Approach
|
|
6
|
-
|
|
7
|
-
_How does this change address the problem?_
|
|
8
|
-
|
|
9
|
-
## Open Questions and Pre-Merge TODOs
|
|
10
|
-
|
|
11
|
-
- [ ] Use github checklists. When solved, check the box and explain the answer.
|
|
12
|
-
|
|
13
|
-
## Learning
|
|
14
|
-
|
|
15
|
-
_Describe the research stage_
|
|
16
|
-
_Links to blog posts, patterns, libraries or addons used to solve this problem_
|
|
17
|
-
|
|
18
|
-
## Blog Posts
|
|
19
|
-
|
|
20
|
-
- [How to Pull Request](https://github.com/flexyford/pull-request) Github Repo with Learning focused Pull Request Template.
|
|
1
|
+
# Description
|
|
2
|
+
|
|
3
|
+
_Describe the problem or feature in addition to a link to the issues._
|
|
4
|
+
|
|
5
|
+
## Approach
|
|
6
|
+
|
|
7
|
+
_How does this change address the problem?_
|
|
8
|
+
|
|
9
|
+
## Open Questions and Pre-Merge TODOs
|
|
10
|
+
|
|
11
|
+
- [ ] Use github checklists. When solved, check the box and explain the answer.
|
|
12
|
+
|
|
13
|
+
## Learning
|
|
14
|
+
|
|
15
|
+
_Describe the research stage_
|
|
16
|
+
_Links to blog posts, patterns, libraries or addons used to solve this problem_
|
|
17
|
+
|
|
18
|
+
## Blog Posts
|
|
19
|
+
|
|
20
|
+
- [How to Pull Request](https://github.com/flexyford/pull-request) Github Repo with Learning focused Pull Request Template.
|
|
@@ -1,49 +1,49 @@
|
|
|
1
|
-
name: CodeQL
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
workflow_dispatch:
|
|
5
|
-
|
|
6
|
-
pull_request:
|
|
7
|
-
branches: [main]
|
|
8
|
-
paths:
|
|
9
|
-
- ".github/workflows/codeql-analysis.yml"
|
|
10
|
-
|
|
11
|
-
push:
|
|
12
|
-
branches: [main]
|
|
13
|
-
paths:
|
|
14
|
-
- ".github/workflows/codeql-analysis.yml"
|
|
15
|
-
- "src/**"
|
|
16
|
-
- "test/**"
|
|
17
|
-
|
|
18
|
-
concurrency:
|
|
19
|
-
group: ${{ github.workflow }}-${{ github.head_ref || github.sha }}
|
|
20
|
-
cancel-in-progress: true
|
|
21
|
-
|
|
22
|
-
jobs:
|
|
23
|
-
analyze:
|
|
24
|
-
strategy:
|
|
25
|
-
fail-fast: false
|
|
26
|
-
matrix:
|
|
27
|
-
language: ["javascript"]
|
|
28
|
-
|
|
29
|
-
permissions:
|
|
30
|
-
security-events: write
|
|
31
|
-
|
|
32
|
-
runs-on: ubuntu-22.04
|
|
33
|
-
|
|
34
|
-
steps:
|
|
35
|
-
- name: Checkout Repository
|
|
36
|
-
uses: actions/checkout@v4
|
|
37
|
-
with:
|
|
38
|
-
lfs: true
|
|
39
|
-
|
|
40
|
-
- name: Initialize CodeQL
|
|
41
|
-
uses: github/codeql-action/init@v3
|
|
42
|
-
with:
|
|
43
|
-
languages: ${{ matrix.language }}
|
|
44
|
-
|
|
45
|
-
- name: Autobuild
|
|
46
|
-
uses: github/codeql-action/autobuild@v3
|
|
47
|
-
|
|
48
|
-
- name: Perform CodeQL Analysis
|
|
49
|
-
uses: github/codeql-action/analyze@v3
|
|
1
|
+
name: CodeQL
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [main]
|
|
8
|
+
paths:
|
|
9
|
+
- ".github/workflows/codeql-analysis.yml"
|
|
10
|
+
|
|
11
|
+
push:
|
|
12
|
+
branches: [main]
|
|
13
|
+
paths:
|
|
14
|
+
- ".github/workflows/codeql-analysis.yml"
|
|
15
|
+
- "src/**"
|
|
16
|
+
- "test/**"
|
|
17
|
+
|
|
18
|
+
concurrency:
|
|
19
|
+
group: ${{ github.workflow }}-${{ github.head_ref || github.sha }}
|
|
20
|
+
cancel-in-progress: true
|
|
21
|
+
|
|
22
|
+
jobs:
|
|
23
|
+
analyze:
|
|
24
|
+
strategy:
|
|
25
|
+
fail-fast: false
|
|
26
|
+
matrix:
|
|
27
|
+
language: ["javascript"]
|
|
28
|
+
|
|
29
|
+
permissions:
|
|
30
|
+
security-events: write
|
|
31
|
+
|
|
32
|
+
runs-on: ubuntu-22.04
|
|
33
|
+
|
|
34
|
+
steps:
|
|
35
|
+
- name: Checkout Repository
|
|
36
|
+
uses: actions/checkout@v4
|
|
37
|
+
with:
|
|
38
|
+
lfs: true
|
|
39
|
+
|
|
40
|
+
- name: Initialize CodeQL
|
|
41
|
+
uses: github/codeql-action/init@v3
|
|
42
|
+
with:
|
|
43
|
+
languages: ${{ matrix.language }}
|
|
44
|
+
|
|
45
|
+
- name: Autobuild
|
|
46
|
+
uses: github/codeql-action/autobuild@v3
|
|
47
|
+
|
|
48
|
+
- name: Perform CodeQL Analysis
|
|
49
|
+
uses: github/codeql-action/analyze@v3
|
|
@@ -1,73 +1,73 @@
|
|
|
1
|
-
name: 🔦 code-coverage
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
workflow_dispatch:
|
|
5
|
-
|
|
6
|
-
pull_request:
|
|
7
|
-
paths:
|
|
8
|
-
- ".github/workflows/coverage-report.yml"
|
|
9
|
-
|
|
10
|
-
push:
|
|
11
|
-
branches:
|
|
12
|
-
- "main"
|
|
13
|
-
paths:
|
|
14
|
-
- ".github/workflows/coverage-report.yml"
|
|
15
|
-
- "src/**"
|
|
16
|
-
- "test/**"
|
|
17
|
-
|
|
18
|
-
concurrency:
|
|
19
|
-
group: "pages"
|
|
20
|
-
cancel-in-progress: false
|
|
21
|
-
|
|
22
|
-
permissions:
|
|
23
|
-
contents: read
|
|
24
|
-
pages: write
|
|
25
|
-
id-token: write
|
|
26
|
-
|
|
27
|
-
jobs:
|
|
28
|
-
build-coverage:
|
|
29
|
-
environment:
|
|
30
|
-
name: github-pages
|
|
31
|
-
url: ${{ steps.deployment.outputs.page_url }}
|
|
32
|
-
runs-on: ubuntu-latest
|
|
33
|
-
if: ${{ !github.event.pull_request.draft }}
|
|
34
|
-
steps:
|
|
35
|
-
- name: Check if PR is created by Dependabot
|
|
36
|
-
id: dependabot-check
|
|
37
|
-
run: |
|
|
38
|
-
if [[ "${{ github.actor }}" == *dependabot* ]]; then
|
|
39
|
-
echo "is_dependabot=true" >> "$GITHUB_OUTPUT"
|
|
40
|
-
else
|
|
41
|
-
echo "is_dependabot=false" >> "$GITHUB_OUTPUT"
|
|
42
|
-
fi
|
|
43
|
-
|
|
44
|
-
- name: Check if the workflow should run
|
|
45
|
-
if: ${{ steps.dependabot-check.outputs.is_dependabot == 'false' }}
|
|
46
|
-
run: echo "The workflow is allowed to run for this PR"
|
|
47
|
-
|
|
48
|
-
- name: 🧲 Checkout
|
|
49
|
-
uses: actions/checkout@v4
|
|
50
|
-
|
|
51
|
-
- name: 🛠️ Setup Node.js with Cache
|
|
52
|
-
uses: actions/setup-node@v4
|
|
53
|
-
with:
|
|
54
|
-
node-version: "20.x"
|
|
55
|
-
cache: "yarn"
|
|
56
|
-
|
|
57
|
-
- name: 📦 Install dependencies
|
|
58
|
-
run: yarn install
|
|
59
|
-
|
|
60
|
-
- name: 🔥 Run tests and collect coverage
|
|
61
|
-
run: yarn test
|
|
62
|
-
|
|
63
|
-
- name: Setup Pages
|
|
64
|
-
uses: actions/configure-pages@v5
|
|
65
|
-
|
|
66
|
-
- name: Upload artifact
|
|
67
|
-
uses: actions/upload-pages-artifact@v3
|
|
68
|
-
with:
|
|
69
|
-
path: "./coverage"
|
|
70
|
-
|
|
71
|
-
- name: Deploy to GitHub Pages
|
|
72
|
-
id: deployment
|
|
73
|
-
uses: actions/deploy-pages@v4
|
|
1
|
+
name: 🔦 code-coverage
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
|
|
6
|
+
pull_request:
|
|
7
|
+
paths:
|
|
8
|
+
- ".github/workflows/coverage-report.yml"
|
|
9
|
+
|
|
10
|
+
push:
|
|
11
|
+
branches:
|
|
12
|
+
- "main"
|
|
13
|
+
paths:
|
|
14
|
+
- ".github/workflows/coverage-report.yml"
|
|
15
|
+
- "src/**"
|
|
16
|
+
- "test/**"
|
|
17
|
+
|
|
18
|
+
concurrency:
|
|
19
|
+
group: "pages"
|
|
20
|
+
cancel-in-progress: false
|
|
21
|
+
|
|
22
|
+
permissions:
|
|
23
|
+
contents: read
|
|
24
|
+
pages: write
|
|
25
|
+
id-token: write
|
|
26
|
+
|
|
27
|
+
jobs:
|
|
28
|
+
build-coverage:
|
|
29
|
+
environment:
|
|
30
|
+
name: github-pages
|
|
31
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
32
|
+
runs-on: ubuntu-latest
|
|
33
|
+
if: ${{ !github.event.pull_request.draft }}
|
|
34
|
+
steps:
|
|
35
|
+
- name: Check if PR is created by Dependabot
|
|
36
|
+
id: dependabot-check
|
|
37
|
+
run: |
|
|
38
|
+
if [[ "${{ github.actor }}" == *dependabot* ]]; then
|
|
39
|
+
echo "is_dependabot=true" >> "$GITHUB_OUTPUT"
|
|
40
|
+
else
|
|
41
|
+
echo "is_dependabot=false" >> "$GITHUB_OUTPUT"
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
- name: Check if the workflow should run
|
|
45
|
+
if: ${{ steps.dependabot-check.outputs.is_dependabot == 'false' }}
|
|
46
|
+
run: echo "The workflow is allowed to run for this PR"
|
|
47
|
+
|
|
48
|
+
- name: 🧲 Checkout
|
|
49
|
+
uses: actions/checkout@v4
|
|
50
|
+
|
|
51
|
+
- name: 🛠️ Setup Node.js with Cache
|
|
52
|
+
uses: actions/setup-node@v4
|
|
53
|
+
with:
|
|
54
|
+
node-version: "20.x"
|
|
55
|
+
cache: "yarn"
|
|
56
|
+
|
|
57
|
+
- name: 📦 Install dependencies
|
|
58
|
+
run: yarn install
|
|
59
|
+
|
|
60
|
+
- name: 🔥 Run tests and collect coverage
|
|
61
|
+
run: yarn test
|
|
62
|
+
|
|
63
|
+
- name: Setup Pages
|
|
64
|
+
uses: actions/configure-pages@v5
|
|
65
|
+
|
|
66
|
+
- name: Upload artifact
|
|
67
|
+
uses: actions/upload-pages-artifact@v3
|
|
68
|
+
with:
|
|
69
|
+
path: "./coverage"
|
|
70
|
+
|
|
71
|
+
- name: Deploy to GitHub Pages
|
|
72
|
+
id: deployment
|
|
73
|
+
uses: actions/deploy-pages@v4
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
name: Publish to npm
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
paths:
|
|
8
|
+
- 'src/**'
|
|
9
|
+
- 'package.json'
|
|
10
|
+
- '.github/workflows/publish.yml'
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
publish:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- name: Checkout repository
|
|
17
|
+
uses: actions/checkout@v3
|
|
18
|
+
with:
|
|
19
|
+
fetch-depth: 0
|
|
20
|
+
|
|
21
|
+
- name: Setup Node.js
|
|
22
|
+
uses: actions/setup-node@v3
|
|
23
|
+
with:
|
|
24
|
+
node-version: '20'
|
|
25
|
+
registry-url: 'https://registry.npmjs.org'
|
|
26
|
+
cache: 'yarn'
|
|
27
|
+
|
|
28
|
+
- name: Install dependencies
|
|
29
|
+
run: yarn install --frozen-lockfile
|
|
30
|
+
|
|
31
|
+
- name: Lint
|
|
32
|
+
run: yarn lint
|
|
33
|
+
|
|
34
|
+
- name: Security Check
|
|
35
|
+
run: |
|
|
36
|
+
npm install -g @secretlint/secretlint-rule-preset-recommend secretlint
|
|
37
|
+
secretlint "**/*" --secretlintrc .secretlintrc.json
|
|
38
|
+
|
|
39
|
+
- name: Run tests
|
|
40
|
+
run: yarn test
|
|
41
|
+
|
|
42
|
+
- name: Detect version bump
|
|
43
|
+
id: version-check
|
|
44
|
+
run: |
|
|
45
|
+
CURRENT_VERSION=$(node -p "require('./package.json').version")
|
|
46
|
+
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
|
|
47
|
+
LAST_TAG_VERSION=${LAST_TAG#v}
|
|
48
|
+
|
|
49
|
+
echo "Current version: $CURRENT_VERSION, Last tag version: $LAST_TAG_VERSION"
|
|
50
|
+
|
|
51
|
+
# Check if the current version is greater than the last tagged version
|
|
52
|
+
if [ "$CURRENT_VERSION" != "$LAST_TAG_VERSION" ]; then
|
|
53
|
+
echo "Version has been bumped from $LAST_TAG_VERSION to $CURRENT_VERSION"
|
|
54
|
+
echo "version_changed=true" >> $GITHUB_OUTPUT
|
|
55
|
+
echo "current_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
|
|
56
|
+
else
|
|
57
|
+
echo "Version not changed. Will not publish."
|
|
58
|
+
echo "version_changed=false" >> $GITHUB_OUTPUT
|
|
59
|
+
fi
|
|
60
|
+
|
|
61
|
+
- name: Build package
|
|
62
|
+
if: steps.version-check.outputs.version_changed == 'true'
|
|
63
|
+
run: yarn build
|
|
64
|
+
|
|
65
|
+
- name: Publish to npm
|
|
66
|
+
if: steps.version-check.outputs.version_changed == 'true'
|
|
67
|
+
run: yarn publish --non-interactive
|
|
68
|
+
env:
|
|
69
|
+
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
70
|
+
|
|
71
|
+
- name: Create GitHub Release
|
|
72
|
+
if: steps.version-check.outputs.version_changed == 'true'
|
|
73
|
+
uses: ncipollo/release-action@v1
|
|
74
|
+
with:
|
|
75
|
+
tag: "v${{ steps.version-check.outputs.current_version }}"
|
|
76
|
+
name: "Release v${{ steps.version-check.outputs.current_version }}"
|
|
77
|
+
generateReleaseNotes: true
|
|
78
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|