Compare commits

..

40 Commits

Author SHA1 Message Date
f6b71043d3 Merge branch 'main' into ryanrosello-og/playwright-test-coverage 2024-09-16 13:33:51 -04:00
95c9a4629c Merge branch 'main' into ryanrosello-og/playwright-test-coverage 2024-09-16 11:57:27 -04:00
a0b7510887 Merge branch 'main' into ryanrosello-og/playwright-test-coverage 2024-09-16 11:19:50 -04:00
331f5fd810 Include the damn hidden files... 2024-09-16 10:15:34 -04:00
77a339bffe try again 2024-09-16 09:21:14 -04:00
a5c34ff667 Try with quotes 2024-09-16 07:57:56 -04:00
24b9aa3a8f tweak again 2024-09-16 12:07:13 +10:00
91c4018314 tweak upload 2024-09-16 11:48:22 +10:00
6259954527 debug 2024-09-16 11:34:05 +10:00
50ebd6bd60 turn on coverage always 2024-09-16 11:11:31 +10:00
2ec268cdd1 quick fix 2024-09-16 09:52:02 +10:00
7f6d992df1 one more attempt 2024-09-16 09:48:10 +10:00
b5e19bc066 some more debug 2024-09-16 09:15:50 +10:00
df10fd303c debug artifacts 2024-09-16 08:08:59 +10:00
0c1135f706 Merge remote-tracking branch 'origin' into ryanrosello-og/playwright-test-coverage 2024-09-16 08:04:25 +10:00
f75701900d tweak pattern 2024-09-16 07:12:07 +10:00
c0c47665b4 make sure coverage dir exists 2024-09-16 06:20:37 +10:00
9ffd971c33 remove electron artifact upload as well 2024-09-15 08:39:38 +10:00
6f28abd0b4 tweak again 2024-09-15 07:53:05 +10:00
8eff9709ee turn off coverage on electron tests 2024-09-15 07:26:46 +10:00
be107ec1ab dependency 2024-09-15 06:43:09 +10:00
bfacd89ad6 Merge remote-tracking branch 'origin' into ryanrosello-og/playwright-test-coverage 2024-09-14 20:49:51 +10:00
92da01f515 yarn again 2024-08-22 20:58:49 +10:00
19a001a08a update yarn.lock 2024-08-22 20:57:08 +10:00
0839f5e95c Merge remote-tracking branch 'origin' into ryanrosello-og/playwright-test-coverage 2024-08-22 20:32:51 +10:00
3340069459 remove vite-plugin-istanbul 2024-08-17 21:46:50 +10:00
5d3a0b9b52 update job dependancy name 2024-08-17 21:32:29 +10:00
a95473fb87 Merge branch 'main' into ryanrosello-og/playwright-test-coverage 2024-08-17 21:30:19 +10:00
23e7b5b6f9 revert on push back to main 2024-08-13 19:46:28 +10:00
7236fb0add fix for Error: ver] ✘ [ERROR] Failed to resolve "vite-plugin-istanbul". This package is ESM only but it was tried to load by require. See https://vitejs.dev/guide/troubleshooting.html#this-package-is-esm-only for more details. [plugin externalize-deps] 2024-08-13 19:17:09 +10:00
459053dce9 re-instate vite.config.ts 2024-08-13 19:03:44 +10:00
85e7719ca3 only report coverage based on Google chrome exec 2024-08-13 19:02:09 +10:00
fd4edcb0f0 Merge branch 'main' into ryanrosello-og/playwright-test-coverage 2024-08-13 18:55:42 +10:00
0654bcbe5a test on GH workflow 2024-08-11 20:30:17 +10:00
d85bfa39e1 don't use base fixture 2024-08-11 20:15:19 +10:00
235f39717e add pw coverage report to gh 2024-08-11 11:29:42 +10:00
11cfb54487 use baseFixture for all spec files 2024-08-11 08:50:48 +10:00
d97a4d27b2 enable vite istanbul coverage 2024-08-11 07:46:29 +10:00
f0f0778ee6 ignore nyc_output folder 2024-08-11 07:44:58 +10:00
9a85bd06bd add custom base test fixture 2024-08-11 07:44:40 +10:00
489 changed files with 300750 additions and 166925 deletions

View File

@ -1,3 +1,2 @@
src/wasm-lib/*
*.typegen.ts
packages/codemirror-lsp-client/dist/*

View File

@ -51,6 +51,8 @@ jobs:
run: |
VERSION=$(date +'%-y.%-m.%-d') yarn bump-jsons
# TODO: see if we need to inject updater nightly URL here https://dl.zoo.dev/releases/modeling-app/nightly/last_update.json
- uses: actions/upload-artifact@v3
with:
name: prepared-files
@ -61,25 +63,12 @@ jobs:
- id: export_version
run: echo "version=`cat package.json | jq -r '.version'`" >> "$GITHUB_OUTPUT"
- name: Prepare electron-builder.yml file for nightly
if: ${{ github.event_name == 'schedule' }}
run: |
yq -i '.publish[0].url = "https://dl.zoo.dev/releases/modeling-app/nightly"' electron-builder.yml
- uses: actions/upload-artifact@v3
if: ${{ github.event_name == 'schedule' }}
with:
name: prepared-files-nightly
path: |
electron-builder.yml
- name: Prepare electron-builder.yml file for updater test
if: ${{ env.CUT_RELEASE_PR == 'true' }}
run: |
yq -i '.publish[0].url = "https://dl.zoo.dev/releases/modeling-app/updater-test"' electron-builder.yml
- uses: actions/upload-artifact@v3
if: ${{ env.CUT_RELEASE_PR == 'true' }}
with:
name: prepared-files-updater-test
path: |
@ -119,16 +108,6 @@ jobs:
mkdir src/wasm-lib/pkg
cp prepared-files/src/wasm-lib/pkg/wasm_lib* src/wasm-lib/pkg
- uses: actions/download-artifact@v3
if: ${{ github.event_name == 'schedule' }}
name: prepared-files-nightly
- name: Copy updated electron-builder.yml file for nightly build
if: ${{ github.event_name == 'schedule' }}
run: |
ls -R prepared-files-nightly
cp prepared-files-nightly/electron-builder.yml electron-builder.yml
- name: Sync node version and setup cache
uses: actions/setup-node@v4
with:
@ -173,17 +152,11 @@ jobs:
- uses: actions/upload-artifact@v3
with:
name: out-arm64-${{ matrix.os }}
name: out-${{ matrix.os }}
path: |
out/Zoo*arm64*.*
out/Zoo*.*
out/latest*.yml
- uses: actions/upload-artifact@v3
with:
name: out-x64-${{ matrix.os }}
path: |
out/Zoo*x*64*.*
# TODO: add the 'Build for Mac TestFlight (nightly)' stage back
- uses: actions/download-artifact@v3
@ -203,16 +176,10 @@ jobs:
- uses: actions/upload-artifact@v3
if: ${{ env.CUT_RELEASE_PR == 'true' }}
with:
name: updater-test-arm64-${{ matrix.os }}
name: updater-test-${{ matrix.os }}
path: |
out/Zoo*arm64*.*
- uses: actions/upload-artifact@v3
if: ${{ env.CUT_RELEASE_PR == 'true' }}
with:
name: updater-test-x64-${{ matrix.os }}
path: |
out/Zoo*x64*.*
out/Zoo*.*
out/latest*.yml
publish-apps-release:
@ -234,32 +201,17 @@ jobs:
- uses: actions/download-artifact@v3
with:
name: out-arm64-windows-2022
name: out-windows-2022
path: out
- uses: actions/download-artifact@v3
with:
name: out-x64-windows-2022
name: out-macos-14
path: out
- uses: actions/download-artifact@v3
with:
name: out-arm64-macos-14
path: out
- uses: actions/download-artifact@v3
with:
name: out-x64-macos-14
path: out
- uses: actions/download-artifact@v3
with:
name: out-arm64-ubuntu-22.04
path: out
- uses: actions/download-artifact@v3
with:
name: out-x64-ubuntu-22.04
name: out-ubuntu-22.04
path: out
- name: Generate the download static endpoint

View File

@ -4,7 +4,6 @@ on:
- main
paths:
- 'src/wasm-lib/**.rs'
- 'src/wasm-lib/**.hbs'
- '**/Cargo.toml'
- '**/Cargo.lock'
- '**/rust-toolchain.toml'
@ -14,7 +13,6 @@ on:
pull_request:
paths:
- 'src/wasm-lib/**.rs'
- 'src/wasm-lib/**.hbs'
- '**/Cargo.toml'
- '**/Cargo.lock'
- '**/rust-toolchain.toml'

View File

@ -38,10 +38,8 @@ jobs:
mkdir -p documentation/content/pages/docs/kcl/
# cleanup old
rm -rf documentation/content/pages/docs/kcl/*.md
rm -rf documentation/content/pages/docs/kcl/types
# move new
mv -f docs/kcl/*.md documentation/content/pages/docs/kcl/
mv -f docs/kcl/types documentation/content/pages/docs/kcl/
- name: commit the changes in the docs repo
shell: bash
run: |

View File

@ -237,6 +237,7 @@ jobs:
VITE_KC_DEV_TOKEN: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
VITE_KC_SKIP_AUTH: true
token: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
GENERATE_PLAYWRIGHT_COVERAGE: true
- name: send to axiom
if: always()
shell: bash
@ -256,6 +257,18 @@ jobs:
path: playwright-report/
retention-days: 30
overwrite: true
- name: Debug artifact name
if: ${{ !cancelled() && (success() || failure()) }}
run: |
echo "Artifact name: playwright-coverage-${{ runner.os }}-${{ matrix.shardIndex }}-${{ github.sha }}"
- uses: actions/upload-artifact@v4
if: ${{ !cancelled() && (success() || failure()) }}
with:
name: playwright-coverage-${{ runner.os }}-${{ matrix.shardIndex }}-${{ github.sha }}
path: "./.nyc_output/*.json"
retention-days: 30
overwrite: true
include-hidden-files: true
playwright-electron:
@ -263,7 +276,7 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-14]
timeout-minutes: 60
timeout-minutes: 40
runs-on: ${{ matrix.os }}
needs: check-rust-changes
steps:
@ -416,6 +429,8 @@ jobs:
VITE_KC_DEV_TOKEN: ${{ secrets.KITTYCAD_API_TOKEN_DEV }}
VITE_KC_SKIP_AUTH: true
IS_UBUNTU: ${{ startsWith(matrix.os, 'ubuntu') && 'true' || 'false' }}
# TODO set to true, see: https://github.com/KittyCAD/modeling-app/issues/3885
GENERATE_PLAYWRIGHT_COVERAGE: false
#DEBUG: 'pw:browser*'
- name: send to axiom
if: ${{ !cancelled() && (success() || failure()) && !startsWith(matrix.os, 'windows') }}
@ -436,3 +451,59 @@ jobs:
path: playwright-report/
retention-days: 30
overwrite: true
# TODO uncomment the following, see: https://github.com/KittyCAD/modeling-app/issues/3885
# - uses: actions/upload-artifact@v4
# if: ${{ always() }}
# with:
# name: playwright-coverage-${{ runner.os }}-${{ github.sha }}
# path: .nyc_output/
# retention-days: 30
# overwrite: true
# only run this job after all shards above have completed
# TBC: do we want to separate coverage reports by OS?
# the Job below combines both chrome and webkit coverage reports
merge-coverage-reports:
# Merge reports after playwright-tests, even if some shards have failed
if: ${{ !cancelled() }}
needs: [playwright-chrome]
# only report on ubuntu (Google chrome) for now
# needs: [playwright-ubuntu, playwright-macos]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
cache: 'yarn'
- name: Install dependencies
run: yarn
- name: Ensure .all_coverage_reports directory exists
run: mkdir -p .all_coverage_reports
- name: List all artifacts
run: |
echo "Available artifacts:"
gh api -H "Accept: application/vnd.github+json" /repos/${{ github.repository }}/actions/artifacts --jq '.artifacts[].name'
env:
GH_TOKEN: ${{ github.token }}
- name: Download coverage reports from GitHub Actions Artifacts
uses: actions/download-artifact@v4
with:
path: .all_coverage_reports
pattern: playwright-coverage-*
merge-multiple: true
- name: Merge all coverage reports from all shards into a single json report
run: npx nyc merge .all_coverage_reports ./.nyc_output/coverage.json
- name: Generate HTML coverage report
run: npx nyc report --reporter=html || true
- name: Upload Convertage HTML report
uses: actions/upload-artifact@v4
with:
name: coverage-report-${{ github.sha }}
path: coverage
retention-days: 14

2
.gitignore vendored
View File

@ -62,7 +62,7 @@ Mac_App_Distribution.provisionprofile
src/wasm-lib/pkg
venv
.vite/
.nyc_output/*.vite/
# electron
out/

View File

@ -5,7 +5,6 @@ coverage
# Ignore Rust projects:
*.rs
*.hbs
target
src/wasm-lib/pkg
src/wasm-lib/kcl/bindings

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

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

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

858
docs/kcl/arrayReduce.md Normal file

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

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

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

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

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

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

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

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

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

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -19,6 +19,7 @@ layout: manual
* [`angledLineToX`](kcl/angledLineToX)
* [`angledLineToY`](kcl/angledLineToY)
* [`arc`](kcl/arc)
* [`arrayReduce`](kcl/arrayReduce)
* [`asin`](kcl/asin)
* [`assert`](kcl/assert)
* [`assertEqual`](kcl/assertEqual)
@ -61,10 +62,8 @@ layout: manual
* [`log10`](kcl/log10)
* [`log2`](kcl/log2)
* [`m`](kcl/m)
* [`map`](kcl/map)
* [`max`](kcl/max)
* [`min`](kcl/min)
* [`mirror2d`](kcl/mirror2d)
* [`mm`](kcl/mm)
* [`offsetPlane`](kcl/offsetPlane)
* [`patternCircular2d`](kcl/patternCircular2d)
@ -78,8 +77,6 @@ layout: manual
* [`profileStart`](kcl/profileStart)
* [`profileStartX`](kcl/profileStartX)
* [`profileStartY`](kcl/profileStartY)
* [`reduce`](kcl/reduce)
* [`rem`](kcl/rem)
* [`revolve`](kcl/revolve)
* [`segAng`](kcl/segAng)
* [`segEndX`](kcl/segEndX)

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

View File

@ -16,23 +16,20 @@ legAngX(hypotenuse: number, leg: number) -> number
* `utilities`
### Arguments
| Name | Type | Description | Required |
|----------|------|-------------|----------|
| `hypotenuse` | `number` | | Yes |
| `leg` | `number` | | Yes |
### Returns
`number`
### Examples
```js
legAngX(5, 3)
```
### Arguments
* `hypotenuse`: `number` (REQUIRED)
* `leg`: `number` (REQUIRED)
### Returns
`number`

View File

@ -16,23 +16,20 @@ legAngY(hypotenuse: number, leg: number) -> number
* `utilities`
### Arguments
| Name | Type | Description | Required |
|----------|------|-------------|----------|
| `hypotenuse` | `number` | | Yes |
| `leg` | `number` | | Yes |
### Returns
`number`
### Examples
```js
legAngY(5, 3)
```
### Arguments
* `hypotenuse`: `number` (REQUIRED)
* `leg`: `number` (REQUIRED)
### Returns
`number`

View File

@ -16,23 +16,20 @@ legLen(hypotenuse: number, leg: number) -> number
* `utilities`
### Arguments
| Name | Type | Description | Required |
|----------|------|-------------|----------|
| `hypotenuse` | `number` | | Yes |
| `leg` | `number` | | Yes |
### Returns
`number`
### Examples
```js
legLen(5, 3)
```
### Arguments
* `hypotenuse`: `number` (REQUIRED)
* `leg`: `number` (REQUIRED)
### Returns
`number`

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

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

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

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

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

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

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

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

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

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

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

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

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 it is too large Load Diff

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

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

File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More