mirror of
https://github.com/logseq/logseq.git
synced 2026-04-24 14:14:55 +00:00
Add CI job for invalid dicts
And tweak fn so that it actually fails
This commit is contained in:
17
.github/workflows/build.yml
vendored
17
.github/workflows/build.yml
vendored
@@ -17,6 +17,7 @@ env:
|
||||
JAVA_VERSION: '8'
|
||||
# This is the latest node version we can run.
|
||||
NODE_VERSION: '16'
|
||||
BABASHKA_VERSION: '0.7.3'
|
||||
|
||||
jobs:
|
||||
|
||||
@@ -75,6 +76,22 @@ jobs:
|
||||
yarn cljs:test
|
||||
node static/tests.js
|
||||
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- name: Setup Babashka
|
||||
uses: turtlequeue/setup-babashka@v1.3.0
|
||||
with:
|
||||
babashka-version: ${{ env.BABASHKA_VERSION }}
|
||||
|
||||
- name: Lint invalid dictionary keys
|
||||
run: bb lang:invalid-dicts
|
||||
|
||||
|
||||
e2e-test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
|
||||
8
bb.edn
8
bb.edn
@@ -1,13 +1,13 @@
|
||||
{:paths ["scripts/src"]
|
||||
:tasks
|
||||
{lang:list
|
||||
logseq.tasks.lang/lang-list
|
||||
logseq.tasks.lang/list-langs
|
||||
|
||||
lang:missing
|
||||
logseq.tasks.lang/lang-missing
|
||||
logseq.tasks.lang/list-missing
|
||||
|
||||
lang:invalid
|
||||
logseq.tasks.lang/lang-invalid
|
||||
lang:invalid-dicts
|
||||
logseq.tasks.lang/invalid-dicts
|
||||
|
||||
dev:watch
|
||||
logseq.tasks.dev/watch
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
[]
|
||||
(rewrite-clj/var-sexp ["languages" "src/main/frontend/dicts.cljs"]))
|
||||
|
||||
(defn lang-list
|
||||
(defn list-langs
|
||||
"List translated langagues with their number of translations"
|
||||
[]
|
||||
(let [dicts (get-dicts)
|
||||
@@ -34,7 +34,7 @@
|
||||
s
|
||||
(str (subs s 0 length) "...")))
|
||||
|
||||
(defn lang-missing
|
||||
(defn list-missing
|
||||
"List missing translations for a given language"
|
||||
[& args]
|
||||
(let [lang (or (keyword (first args))
|
||||
@@ -55,16 +55,22 @@
|
||||
:string-to-translate (shorten v 50)}))
|
||||
task-util/print-table))))
|
||||
|
||||
(defn lang-invalid
|
||||
(defn invalid-dicts
|
||||
"Lists translation keys that are invalid"
|
||||
[]
|
||||
(let [dicts (get-dicts)
|
||||
;; For now defined as :en but clj-kondo analysis would be more thorough
|
||||
valid-keys (set (keys (dicts :en)))]
|
||||
(->> (dissoc dicts :en)
|
||||
(mapcat (fn [[lang get-dicts]]
|
||||
(map
|
||||
#(hash-map :language lang :invalid-key %)
|
||||
(set/difference (set (keys get-dicts))
|
||||
valid-keys))))
|
||||
task-util/print-table)))
|
||||
valid-keys (set (keys (dicts :en)))
|
||||
invalid-dicts
|
||||
(->> (dissoc dicts :en)
|
||||
(mapcat (fn [[lang get-dicts]]
|
||||
(map
|
||||
#(hash-map :language lang :invalid-key %)
|
||||
(set/difference (set (keys get-dicts))
|
||||
valid-keys)))))]
|
||||
(if (empty? invalid-dicts)
|
||||
(println "All dicts have valid keys!")
|
||||
(do
|
||||
(println "Invalid dict keys found:")
|
||||
(task-util/print-table invalid-dicts)
|
||||
(System/exit 1)))))
|
||||
|
||||
Reference in New Issue
Block a user