[Snyk] Upgrade: , , , , , , , , , , , , , , , , , check-password-strength, chokidar, chrono-node, codemirror, diff, dompurify, electron, electron-dl, fs, fuse.js, graphology, ignore, interactjs, jszip, katex, mldoc, photoswipe, url, pixi.js, posthog-js, react-grid-layout, react-intersection-observer, react-textarea-autosize, react-transition-group, remove-accents, threads, yargs-parser #3620
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: [master] | |
paths-ignore: | |
- '*.md' | |
pull_request: | |
branches: [master] | |
paths-ignore: | |
- '*.md' | |
env: | |
CLOJURE_VERSION: '1.11.1.1413' | |
JAVA_VERSION: '11' | |
# This is the latest node version we can run. | |
NODE_VERSION: '18' | |
BABASHKA_VERSION: '1.0.168' | |
jobs: | |
typos: | |
name: Spell Check with Typos | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Actions Repository | |
uses: actions/checkout@v3 | |
- name: Check spelling with custom config file | |
uses: crate-ci/[email protected] | |
with: | |
config: ./typos.toml | |
test: | |
strategy: | |
matrix: | |
operating-system: [ubuntu-latest] | |
runs-on: ${{ matrix.operating-system }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0 | |
- name: Set up Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
cache: 'yarn' | |
cache-dependency-path: | | |
yarn.lock | |
static/yarn.lock | |
- name: Set up Java | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: ${{ env.JAVA_VERSION }} | |
- name: Set up Clojure | |
uses: DeLaGuardo/[email protected] | |
with: | |
cli: ${{ env.CLOJURE_VERSION }} | |
- name: Clojure cache | |
uses: actions/cache@v3 | |
id: clojure-deps | |
with: | |
path: | | |
~/.m2/repository | |
~/.gitlibs | |
key: ${{ runner.os }}-clojure-deps-${{ hashFiles('deps.edn') }} | |
restore-keys: ${{ runner.os }}-clojure-deps- | |
- name: Fetch Clojure deps | |
if: steps.clojure-deps.outputs.cache-hit != 'true' | |
run: clojure -A:cljs -P | |
- name: Fetch yarn deps | |
run: yarn install --frozen-lockfile | |
- name: Run ClojureScript tests | |
run: | | |
yarn cljs:test | |
node static/tests.js | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c #v3 | |
- name: Set up Java | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: ${{ env.JAVA_VERSION }} | |
- name: Set up Clojure | |
uses: DeLaGuardo/[email protected] | |
with: | |
cli: ${{ env.CLOJURE_VERSION }} | |
bb: ${{ env.BABASHKA_VERSION }} | |
- name: Run clj-kondo lint | |
run: clojure -M:clj-kondo --parallel --lint src | |
- name: Carve lint for unused vars | |
run: bb lint:carve 2>/dev/null | |
- name: Lint for vars that are too large | |
run: bb lint:large-vars 2>/dev/null | |
- name: Lint for namespaces that aren't documented | |
run: bb lint:ns-docstrings 2>/dev/null | |
- name: Lint invalid translation entries | |
run: bb lang:validate-translations | |
e2e-test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3 | |
- name: Set up Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
cache: 'yarn' | |
cache-dependency-path: | | |
yarn.lock | |
static/yarn.lock | |
- name: Set up Java | |
uses: actions/setup-java@v3 | |
with: | |
distribution: 'zulu' | |
java-version: ${{ env.JAVA_VERSION }} | |
- name: Set up Clojure | |
uses: DeLaGuardo/[email protected] | |
with: | |
cli: ${{ env.CLOJURE_VERSION }} | |
- name: Clojure cache | |
uses: actions/cache@v3 | |
id: clojure-deps | |
with: | |
path: | | |
~/.m2/repository | |
~/.gitlibs | |
key: ${{ runner.os }}-clojure-deps-${{ hashFiles('deps.edn') }} | |
restore-keys: ${{ runner.os }}-clojure-deps- | |
- name: Fetch Clojure deps | |
if: steps.clojure-deps.outputs.cache-hit != 'true' | |
run: clojure -A:cljs -P | |
- name: Shadow-cljs cache | |
uses: actions/cache@v3 | |
with: | |
path: .shadow-cljs | |
# ensure update cache every time | |
key: ${{ runner.os }}-shadow-cljs-${{ github.sha }} | |
# will match most recent upload | |
restore-keys: | | |
${{ runner.os }}-shadow-cljs- | |
- name: Fetch yarn deps | |
run: yarn install | |
env: | |
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: true | |
# NOTE: require the app to be build in debug mode(compile instead of build). | |
- name: Prepare E2E test build | |
run: | | |
yarn gulp:build && clojure -M:cljs compile app publishing electron | |
(cd static && yarn install && yarn rebuild:all) | |
# Exits with 0 if yarn.lock is up to date or 1 if we forgot to update it | |
- name: Ensure static yarn.lock is up to date | |
run: git diff --exit-code static/yarn.lock | |
- name: Install Fluxbox | |
run: sudo apt-get update && sudo apt-get install -y fluxbox | |
# Emulate a virtual framebuffer on machines with no display hardware | |
- name: Run XVFB | |
run: Xvfb :1 -screen 0 1024x768x24 >/dev/null 2>&1 & | |
# Start a lightweight window manager to simulate window actions (maximize,restore etc) | |
- name: Start Fluxbox | |
run: DISPLAY=:1.0 fluxbox >/dev/null 2>&1 & | |
- name: Run Playwright test - 1/2 | |
run: DISPLAY=:1.0 npx playwright test --reporter github --shard=1/2 | |
env: | |
LOGSEQ_CI: true | |
DEBUG: "pw:api" | |
RELEASE: true # skip dev only test | |
- name: Run Playwright test - 2/2 | |
run: DISPLAY=:1.0 npx playwright test --reporter github --shard=2/2 | |
env: | |
LOGSEQ_CI: true | |
DEBUG: "pw:api" | |
RELEASE: true # skip dev only test | |
- name: Save test artifacts | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: e2e-test-report | |
path: e2e-dump/* | |
retention-days: 1 |