devcoach 0.1.0__tar.gz → 0.3.5__tar.gz
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.
- devcoach-0.3.5/.github/workflows/ci.yml +185 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/.github/workflows/ruff-autofix.yml +2 -2
- {devcoach-0.1.0 → devcoach-0.3.5}/CLAUDE.md +3 -1
- {devcoach-0.1.0 → devcoach-0.3.5}/PKG-INFO +3 -3
- {devcoach-0.1.0 → devcoach-0.3.5}/README.md +2 -2
- {devcoach-0.1.0 → devcoach-0.3.5}/pyproject.toml +1 -1
- devcoach-0.1.0/.github/workflows/ci.yml +0 -110
- {devcoach-0.1.0 → devcoach-0.3.5}/.github/dependabot.yml +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/.gitignore +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/LICENSE +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/NOTICE +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/SKILL.md +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/docs/PLAN.md +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/docs/cli.md +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/docs/configuration.md +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/docs/getting-started.md +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/docs/mcp-server.md +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/docs/web-ui.md +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/SKILL.md +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/__init__.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/cli/__init__.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/cli/commands.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/core/__init__.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/core/coach.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/core/db.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/core/detect.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/core/git.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/core/models.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/core/prompts.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/mcp/__init__.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/mcp/server.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/__init__.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/app.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/static/favicon.svg +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/static/relative-time.js +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/static/style.css +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/static/vendor/alpinejs.min.js +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/static/vendor/flatpickr-dark.min.css +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/static/vendor/flatpickr.min.css +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/static/vendor/flatpickr.min.js +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/static/vendor/highlight.min.js +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/static/vendor/hljs-dark.min.css +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/static/vendor/hljs-light.min.css +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/static/vendor/htmx.min.js +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/static/vendor/icons/bitbucket.svg +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/static/vendor/icons/github.svg +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/static/vendor/icons/gitlab.svg +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/static/vendor/icons/vscode.svg +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/static/vendor/marked.min.js +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/static/vendor/tailwind.js +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/templates/base.html +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/templates/lesson_detail.html +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/templates/lessons.html +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/templates/profile.html +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/src/devcoach/web/templates/settings.html +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/tests/__init__.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/tests/conftest.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/tests/test_cli.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/tests/test_web.py +0 -0
- {devcoach-0.1.0 → devcoach-0.3.5}/uv.lock +0 -0
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
# Covers three scenarios:
|
|
4
|
+
#
|
|
5
|
+
# 1. Push to main / pull request → lint + test + build
|
|
6
|
+
# 2. Tag push (v*) → lint + test + build + publish + GitHub Release
|
|
7
|
+
# 3. workflow_dispatch (Release) → bump version → tag → lint + test + build + publish + GitHub Release
|
|
8
|
+
#
|
|
9
|
+
# The bump job only runs on workflow_dispatch. Lint/test/build always run.
|
|
10
|
+
# Publish and GitHub Release run whenever a tag is present.
|
|
11
|
+
|
|
12
|
+
on:
|
|
13
|
+
push:
|
|
14
|
+
branches: [main]
|
|
15
|
+
tags: ["v*"]
|
|
16
|
+
pull_request:
|
|
17
|
+
workflow_dispatch:
|
|
18
|
+
inputs:
|
|
19
|
+
bump:
|
|
20
|
+
description: "Version bump type"
|
|
21
|
+
required: false
|
|
22
|
+
default: patch
|
|
23
|
+
type: choice
|
|
24
|
+
options: [patch, minor, major]
|
|
25
|
+
version:
|
|
26
|
+
description: "Exact version (overrides bump, e.g. 1.0.0)"
|
|
27
|
+
required: false
|
|
28
|
+
default: ""
|
|
29
|
+
|
|
30
|
+
concurrency:
|
|
31
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
32
|
+
cancel-in-progress: true
|
|
33
|
+
|
|
34
|
+
jobs:
|
|
35
|
+
# ── Bump ────────────────────────────────────────────────────────────────
|
|
36
|
+
# Only runs on workflow_dispatch. Bumps pyproject.toml, commits, tags, pushes.
|
|
37
|
+
bump:
|
|
38
|
+
name: Bump version and tag
|
|
39
|
+
if: github.event_name == 'workflow_dispatch'
|
|
40
|
+
runs-on: ubuntu-latest
|
|
41
|
+
permissions:
|
|
42
|
+
contents: write
|
|
43
|
+
outputs:
|
|
44
|
+
version: ${{ steps.ver.outputs.version }}
|
|
45
|
+
tag: ${{ steps.ver.outputs.tag }}
|
|
46
|
+
steps:
|
|
47
|
+
- uses: actions/checkout@v6
|
|
48
|
+
with:
|
|
49
|
+
fetch-depth: 0
|
|
50
|
+
|
|
51
|
+
- name: Configure git
|
|
52
|
+
run: |
|
|
53
|
+
git config user.name "github-actions[bot]"
|
|
54
|
+
git config user.email "github-actions[bot]@users.noreply.github.com"
|
|
55
|
+
|
|
56
|
+
- name: Compute next version
|
|
57
|
+
id: ver
|
|
58
|
+
run: |
|
|
59
|
+
if [ -n "${{ inputs.version }}" ]; then
|
|
60
|
+
NEXT="${{ inputs.version }}"
|
|
61
|
+
else
|
|
62
|
+
CURRENT=$(grep '^version' pyproject.toml | head -1 | sed 's/.*"\(.*\)"/\1/')
|
|
63
|
+
IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT"
|
|
64
|
+
case "${{ inputs.bump }}" in
|
|
65
|
+
major) NEXT="$((MAJOR+1)).0.0" ;;
|
|
66
|
+
minor) NEXT="${MAJOR}.$((MINOR+1)).0" ;;
|
|
67
|
+
patch) NEXT="${MAJOR}.${MINOR}.$((PATCH+1))" ;;
|
|
68
|
+
esac
|
|
69
|
+
fi
|
|
70
|
+
echo "version=$NEXT" >> "$GITHUB_OUTPUT"
|
|
71
|
+
echo "tag=v$NEXT" >> "$GITHUB_OUTPUT"
|
|
72
|
+
|
|
73
|
+
- name: Bump version in pyproject.toml
|
|
74
|
+
run: sed -i 's/^version = ".*"/version = "${{ steps.ver.outputs.version }}"/' pyproject.toml
|
|
75
|
+
|
|
76
|
+
- name: Commit and tag
|
|
77
|
+
run: |
|
|
78
|
+
git add pyproject.toml
|
|
79
|
+
git commit -m "chore: bump version to ${{ steps.ver.outputs.version }}"
|
|
80
|
+
git tag "${{ steps.ver.outputs.tag }}"
|
|
81
|
+
git push --atomic origin main "${{ steps.ver.outputs.tag }}"
|
|
82
|
+
|
|
83
|
+
# ── Lint ────────────────────────────────────────────────────────────────
|
|
84
|
+
lint:
|
|
85
|
+
name: Lint (ruff)
|
|
86
|
+
needs: [bump]
|
|
87
|
+
if: always() && (needs.bump.result == 'success' || needs.bump.result == 'skipped')
|
|
88
|
+
runs-on: ubuntu-latest
|
|
89
|
+
steps:
|
|
90
|
+
- uses: actions/checkout@v6
|
|
91
|
+
with:
|
|
92
|
+
ref: ${{ needs.bump.outputs.tag || github.ref }}
|
|
93
|
+
- uses: astral-sh/setup-uv@v7
|
|
94
|
+
with:
|
|
95
|
+
python-version: "3.12"
|
|
96
|
+
- run: uv sync --group dev
|
|
97
|
+
- run: uv run ruff check src/ tests/
|
|
98
|
+
- run: uv run ruff format --check src/ tests/
|
|
99
|
+
|
|
100
|
+
# ── Tests ───────────────────────────────────────────────────────────────
|
|
101
|
+
test:
|
|
102
|
+
name: Test (Python ${{ matrix.python-version }})
|
|
103
|
+
needs: [bump]
|
|
104
|
+
if: always() && (needs.bump.result == 'success' || needs.bump.result == 'skipped')
|
|
105
|
+
runs-on: ubuntu-latest
|
|
106
|
+
strategy:
|
|
107
|
+
fail-fast: false
|
|
108
|
+
matrix:
|
|
109
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
110
|
+
steps:
|
|
111
|
+
- uses: actions/checkout@v6
|
|
112
|
+
with:
|
|
113
|
+
ref: ${{ needs.bump.outputs.tag || github.ref }}
|
|
114
|
+
- uses: astral-sh/setup-uv@v7
|
|
115
|
+
with:
|
|
116
|
+
python-version: ${{ matrix.python-version }}
|
|
117
|
+
- run: uv sync --group dev
|
|
118
|
+
- run: uv run pytest tests/ -v --tb=short
|
|
119
|
+
|
|
120
|
+
# ── Build ───────────────────────────────────────────────────────────────
|
|
121
|
+
build:
|
|
122
|
+
name: Build distribution
|
|
123
|
+
needs: [bump, lint, test]
|
|
124
|
+
if: always() && (needs.bump.result == 'success' || needs.bump.result == 'skipped') && needs.lint.result == 'success' && needs.test.result == 'success'
|
|
125
|
+
runs-on: ubuntu-latest
|
|
126
|
+
steps:
|
|
127
|
+
- uses: actions/checkout@v6
|
|
128
|
+
with:
|
|
129
|
+
ref: ${{ needs.bump.outputs.tag || github.ref }}
|
|
130
|
+
- uses: astral-sh/setup-uv@v7
|
|
131
|
+
with:
|
|
132
|
+
python-version: "3.12"
|
|
133
|
+
- run: uv build
|
|
134
|
+
- uses: actions/upload-artifact@v7
|
|
135
|
+
with:
|
|
136
|
+
name: dist
|
|
137
|
+
path: dist/
|
|
138
|
+
retention-days: 7
|
|
139
|
+
|
|
140
|
+
# ── Publish ─────────────────────────────────────────────────────────────
|
|
141
|
+
# Runs when a tag is present: either created by the bump job (workflow_dispatch)
|
|
142
|
+
# or pushed directly (git push origin v1.2.3).
|
|
143
|
+
# Uses PyPI Trusted Publishing (OIDC) — no API tokens needed.
|
|
144
|
+
#
|
|
145
|
+
# One-time setup on PyPI: project=devcoach, owner=UltimaPhoenix,
|
|
146
|
+
# repo=dev-coach, workflow=ci.yml, environment=pypi
|
|
147
|
+
publish:
|
|
148
|
+
name: Publish to PyPI
|
|
149
|
+
needs: [bump, build]
|
|
150
|
+
if: always() && needs.build.result == 'success' && (needs.bump.result == 'success' || startsWith(github.ref, 'refs/tags/v'))
|
|
151
|
+
runs-on: ubuntu-latest
|
|
152
|
+
environment:
|
|
153
|
+
name: pypi
|
|
154
|
+
url: https://pypi.org/p/devcoach
|
|
155
|
+
permissions:
|
|
156
|
+
id-token: write
|
|
157
|
+
steps:
|
|
158
|
+
- uses: actions/download-artifact@v8
|
|
159
|
+
with:
|
|
160
|
+
name: dist
|
|
161
|
+
path: dist/
|
|
162
|
+
- uses: pypa/gh-action-pypi-publish@release/v1
|
|
163
|
+
|
|
164
|
+
# ── GitHub Release ──────────────────────────────────────────────────────
|
|
165
|
+
github-release:
|
|
166
|
+
name: Create GitHub Release
|
|
167
|
+
needs: [bump, publish]
|
|
168
|
+
if: always() && needs.publish.result == 'success' && (needs.bump.result == 'success' || startsWith(github.ref, 'refs/tags/v'))
|
|
169
|
+
runs-on: ubuntu-latest
|
|
170
|
+
permissions:
|
|
171
|
+
contents: write
|
|
172
|
+
steps:
|
|
173
|
+
- uses: actions/checkout@v6
|
|
174
|
+
with:
|
|
175
|
+
ref: ${{ needs.bump.outputs.tag || github.ref }}
|
|
176
|
+
- uses: actions/download-artifact@v8
|
|
177
|
+
with:
|
|
178
|
+
name: dist
|
|
179
|
+
path: dist/
|
|
180
|
+
- uses: softprops/action-gh-release@v3
|
|
181
|
+
with:
|
|
182
|
+
tag_name: ${{ needs.bump.outputs.tag || github.ref_name }}
|
|
183
|
+
files: dist/*
|
|
184
|
+
generate_release_notes: true
|
|
185
|
+
fail_on_unmatched_files: true
|
|
@@ -250,7 +250,9 @@ npx @modelcontextprotocol/inspector devcoach
|
|
|
250
250
|
|
|
251
251
|
## Development conventions
|
|
252
252
|
|
|
253
|
-
-
|
|
253
|
+
- Follow **Uncle Bob's Clean Code** principles
|
|
254
|
+
- Follow **PEP** standards
|
|
255
|
+
- Linting and formatting enforced by **ruff** — run `uv run ruff check src/ tests/` and `uv run ruff format src/ tests/` before committing
|
|
254
256
|
- No external dependencies beyond `fastmcp` and `pydantic`
|
|
255
257
|
- `db.py` exposes only pure functions — no business logic
|
|
256
258
|
- `coach.py` never imports from `server.py` (one-way dependency)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devcoach
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.5
|
|
4
4
|
Summary: A local MCP server that acts as a progressive technical coach for Claude Code and Claude Desktop
|
|
5
5
|
Project-URL: Homepage, https://github.com/UltimaPhoenix/dev-coach
|
|
6
6
|
Project-URL: Repository, https://github.com/UltimaPhoenix/dev-coach
|
|
@@ -232,8 +232,8 @@ Description-Content-Type: text/markdown
|
|
|
232
232
|
|
|
233
233
|
# devcoach
|
|
234
234
|
|
|
235
|
-
[](https://pypi.org/project/devcoach/)
|
|
236
|
+
[](https://pypi.org/project/devcoach/)
|
|
237
237
|
[](https://github.com/UltimaPhoenix/dev-coach/actions/workflows/ci.yml)
|
|
238
238
|
[](LICENSE)
|
|
239
239
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# devcoach
|
|
2
2
|
|
|
3
|
-
[](https://pypi.org/project/devcoach/)
|
|
4
|
+
[](https://pypi.org/project/devcoach/)
|
|
5
5
|
[](https://github.com/UltimaPhoenix/dev-coach/actions/workflows/ci.yml)
|
|
6
6
|
[](LICENSE)
|
|
7
7
|
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
name: CI
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [main]
|
|
6
|
-
tags: ["v*"]
|
|
7
|
-
pull_request:
|
|
8
|
-
|
|
9
|
-
concurrency:
|
|
10
|
-
group: ${{ github.workflow }}-${{ github.ref }}
|
|
11
|
-
cancel-in-progress: true
|
|
12
|
-
|
|
13
|
-
jobs:
|
|
14
|
-
# ── Lint ────────────────────────────────────────────────────────────────
|
|
15
|
-
lint:
|
|
16
|
-
name: Lint (ruff)
|
|
17
|
-
runs-on: ubuntu-latest
|
|
18
|
-
steps:
|
|
19
|
-
- uses: actions/checkout@v6
|
|
20
|
-
- uses: astral-sh/setup-uv@v7
|
|
21
|
-
with:
|
|
22
|
-
python-version: "3.12"
|
|
23
|
-
- run: uv sync --group dev
|
|
24
|
-
- run: uv run ruff check src/ tests/
|
|
25
|
-
- run: uv run ruff format --check src/ tests/
|
|
26
|
-
|
|
27
|
-
# ── Tests ───────────────────────────────────────────────────────────────
|
|
28
|
-
test:
|
|
29
|
-
name: Test (Python ${{ matrix.python-version }})
|
|
30
|
-
runs-on: ubuntu-latest
|
|
31
|
-
strategy:
|
|
32
|
-
fail-fast: false
|
|
33
|
-
matrix:
|
|
34
|
-
python-version: ["3.11", "3.12", "3.13"]
|
|
35
|
-
steps:
|
|
36
|
-
- uses: actions/checkout@v6
|
|
37
|
-
- uses: astral-sh/setup-uv@v7
|
|
38
|
-
with:
|
|
39
|
-
python-version: ${{ matrix.python-version }}
|
|
40
|
-
- run: uv sync --group dev
|
|
41
|
-
- run: uv run pytest tests/ -v --tb=short
|
|
42
|
-
|
|
43
|
-
# ── Build ───────────────────────────────────────────────────────────────
|
|
44
|
-
build:
|
|
45
|
-
name: Build distribution
|
|
46
|
-
needs: [lint, test]
|
|
47
|
-
runs-on: ubuntu-latest
|
|
48
|
-
steps:
|
|
49
|
-
- uses: actions/checkout@v6
|
|
50
|
-
- uses: astral-sh/setup-uv@v7
|
|
51
|
-
with:
|
|
52
|
-
python-version: "3.12"
|
|
53
|
-
- run: uv build
|
|
54
|
-
- uses: actions/upload-artifact@v7
|
|
55
|
-
with:
|
|
56
|
-
name: dist
|
|
57
|
-
path: dist/
|
|
58
|
-
retention-days: 7
|
|
59
|
-
|
|
60
|
-
# ── Publish ─────────────────────────────────────────────────────────────
|
|
61
|
-
# Runs only on v* tags (e.g. v0.2.0). Uses PyPI Trusted Publishing (OIDC)
|
|
62
|
-
# — no API tokens stored in repository secrets.
|
|
63
|
-
#
|
|
64
|
-
# One-time setup required on PyPI:
|
|
65
|
-
# 1. Go to https://pypi.org/manage/account/publishing/
|
|
66
|
-
# 2. Add a new publisher:
|
|
67
|
-
# PyPI project name : devcoach
|
|
68
|
-
# Owner : UltimaPhoenix
|
|
69
|
-
# Repository name : dev-coach
|
|
70
|
-
# Workflow filename : ci.yml
|
|
71
|
-
# Environment name : pypi
|
|
72
|
-
publish:
|
|
73
|
-
name: Publish to PyPI
|
|
74
|
-
if: startsWith(github.ref, 'refs/tags/v')
|
|
75
|
-
needs: build
|
|
76
|
-
runs-on: ubuntu-latest
|
|
77
|
-
environment:
|
|
78
|
-
name: pypi
|
|
79
|
-
url: https://pypi.org/p/devcoach
|
|
80
|
-
permissions:
|
|
81
|
-
id-token: write # required for OIDC trusted publishing
|
|
82
|
-
steps:
|
|
83
|
-
- uses: actions/download-artifact@v8
|
|
84
|
-
with:
|
|
85
|
-
name: dist
|
|
86
|
-
path: dist/
|
|
87
|
-
- name: Publish to PyPI
|
|
88
|
-
uses: pypa/gh-action-pypi-publish@release/v1
|
|
89
|
-
|
|
90
|
-
# ── GitHub Release ──────────────────────────────────────────────────────
|
|
91
|
-
# Creates a GitHub Release with the built distribution attached.
|
|
92
|
-
release:
|
|
93
|
-
name: Create GitHub Release
|
|
94
|
-
if: startsWith(github.ref, 'refs/tags/v')
|
|
95
|
-
needs: publish
|
|
96
|
-
runs-on: ubuntu-latest
|
|
97
|
-
permissions:
|
|
98
|
-
contents: write
|
|
99
|
-
steps:
|
|
100
|
-
- uses: actions/checkout@v6
|
|
101
|
-
- uses: actions/download-artifact@v8
|
|
102
|
-
with:
|
|
103
|
-
name: dist
|
|
104
|
-
path: dist/
|
|
105
|
-
- name: Create release
|
|
106
|
-
uses: softprops/action-gh-release@v3
|
|
107
|
-
with:
|
|
108
|
-
files: dist/*
|
|
109
|
-
generate_release_notes: true
|
|
110
|
-
fail_on_unmatched_files: true
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|