Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .claude/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
"version": "0.0.1",
"configurations": [
{
"name": "browser-wasm",
"runtimeExecutable": "dotnet",
"runtimeArgs": ["run", "--project", "src/ScanNTune.Browser", "-c", "Debug"],
"port": 5235
"name": "web",
"runtimeExecutable": "npm",
"runtimeArgs": ["--prefix", "web", "run", "dev"],
"port": 5173
}
]
}
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
web/e2e/fixtures/*.png filter=lfs diff=lfs merge=lfs -text
6 changes: 0 additions & 6 deletions .github/release.yml

This file was deleted.

40 changes: 0 additions & 40 deletions .github/workflows/build.yml

This file was deleted.

47 changes: 17 additions & 30 deletions .github/workflows/deploy-web.yml
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
name: Deploy web app

# Publishes the WebAssembly build to GitHub Pages on every push to master (and on demand). The wasm
# native relink (OpenCV) makes this a slow-ish job, but it keeps the hosted web app in step with master.

# Builds the Vue app in web/ and publishes web/dist to GitHub Pages on every push to master (and on
# demand). Everything is static, so Pages serves it with no server and no special headers.
on:
push:
branches: [master]
Expand All @@ -17,40 +16,28 @@ concurrency:
group: pages
cancel-in-progress: false

defaults:
run:
working-directory: web

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # Nerdbank.GitVersioning needs full history to stamp the version

# Enables Pages for the repo (if needed) with the "GitHub Actions" source, so no manual settings step.
- name: Configure Pages
uses: actions/configure-pages@v5
with:
enablement: true

- name: Set up .NET 10
uses: actions/setup-dotnet@v4
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
dotnet-version: '10.0.x'

- name: Install wasm-tools workload
run: dotnet workload install wasm-tools

- name: Publish the browser head
run: dotnet publish src/ScanNTune.Browser -c Release -o publish

# GitHub Pages otherwise strips folders that start with an underscore (like _framework).
node-version: 22
cache: npm
cache-dependency-path: web/package-lock.json
- run: npm ci
- run: npm run build
- name: Disable Jekyll
run: touch publish/wwwroot/.nojekyll

- name: Upload Pages artifact
uses: actions/upload-pages-artifact@v3
run: touch dist/.nojekyll
- uses: actions/configure-pages@v5
- uses: actions/upload-pages-artifact@v3
with:
path: publish/wwwroot
path: web/dist

deploy:
needs: build
Expand Down
41 changes: 0 additions & 41 deletions .github/workflows/release.yml

This file was deleted.

43 changes: 43 additions & 0 deletions .github/workflows/web-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
name: Web CI

# Builds, unit-tests, and end-to-end-tests the Vue web app on every pull request and on pushes to master.
on:
pull_request:
push:
branches: [master]
workflow_dispatch:

defaults:
run:
working-directory: web

jobs:
build-test:
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
cache-dependency-path: web/package-lock.json
- run: npm ci
- run: npm run build
- run: npm test

e2e:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
with:
lfs: true # the real scan fixtures under web/e2e/fixtures are stored in Git LFS
- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
cache-dependency-path: web/package-lock.json
- run: npm ci
- run: npx playwright install --with-deps chromium
- run: npm run e2e
Loading
Loading