Skip to content

Bump the nuget-dependencies group with 1 update #853

Bump the nuget-dependencies group with 1 update

Bump the nuget-dependencies group with 1 update #853

Workflow file for this run

name: Unit Test
on:
workflow_dispatch:
pull_request:
push:
branches:
- "master"
permissions:
contents: read
jobs:
client-lint:
name: Client Lint
runs-on: ubuntu-latest
defaults:
run:
working-directory: CorpusSearch/ClientApp
steps:
- uses: actions/checkout@v7.0.1
- uses: actions/setup-node@v7
with:
node-version: 20
- run: npm ci
- run: npm run lint
- run: npm run format:check
- run: npm run test
submodule-pins:
# A submodule pointer must be a commit reachable from its upstream's
# default branch: a pin to an unpushed local commit, or to a branch that
# is later force-pushed away, checks out fine today and breaks every
# clone (and the production data pull) once upstream garbage-collects.
# Fail on the PR that moves the pin, not months later.
name: Submodule Pins
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7.0.1
- name: Pins are reachable from each upstream default branch
run: |
[ -f .gitmodules ] || exit 0
for name in $(git config -f .gitmodules --name-only --get-regexp '\.path$' | sed 's/\.path$//'); do
path=$(git config -f .gitmodules "$name.path")
url=$(git config -f .gitmodules "$name.url")
sha=$(git rev-parse ":$path")
branch=$(git ls-remote --symref "$url" HEAD | awk '/^ref:/ {sub("refs/heads/","",$2); print $2}')
clone=$(mktemp -d)/upstream.git
git clone --quiet --bare --filter=tree:0 "$url" "$clone"
if git -C "$clone" merge-base --is-ancestor "$sha" "refs/heads/$branch"; then
echo "$path: $sha is on '$branch' of $url"
else
echo "::error::$path pins $sha, which is not reachable from '$branch' of $url - push/merge it upstream before pinning"
exit 1
fi
done
tests:
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
NUGET_XMLDOC_MODE: skip
name: Unit Testing
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7.0.1
with:
# external/ submodules hold consumed data (e.g. the lemma table)
submodules: true
- uses: actions/setup-dotnet@v6
with:
dotnet-version: 10.0.x
- run: dotnet test
- run: dotnet publish
e2e:
env:
DOTNET_CLI_TELEMETRY_OPTOUT: 1
DOTNET_SKIP_FIRST_TIME_EXPERIENCE: 1
NUGET_XMLDOC_MODE: skip
name: End-to-End Test
runs-on: ubuntu-latest
defaults:
run:
working-directory: CorpusSearch/ClientApp
steps:
- uses: actions/checkout@v7.0.1
with:
# external/ submodules hold consumed data (e.g. the lemma table)
submodules: true
- uses: actions/setup-dotnet@v6
with:
dotnet-version: 10.0.x
- uses: actions/setup-node@v7
with:
node-version: 20
- run: npm ci
- run: npx playwright install --with-deps chromium
# the books are downloaded artifacts, never tracked files: without
# cregeen.json the dictionary loads silently empty, and the browse
# spec meets a letter with no chapters. gh rather than the deploy
# scripts' bare curl: an unauthenticated api.github.com call from a
# shared runner meets the rate limit and answers with no assets
- run: |
gh release download --repo david-allison/cregeen-manx-dictionary-data --pattern '*' --output cregeen.json
gh release download --repo david-allison/kelly-m2e-manx-dictionary-data --pattern '*' --output kellym2e.json
working-directory: CorpusSearch/Resources
env:
GH_TOKEN: ${{ github.token }}
- run: npm run e2e
- uses: actions/upload-artifact@v7
if: failure()
with:
name: playwright-report
path: CorpusSearch/ClientApp/playwright-report/
retention-days: 7