| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- name: logseq/graph-parser CI
- on:
- # Path filters ensure jobs only kick off if a change is made to graph-parser or
- # its local dependencies
- push:
- branches: [master, "feat/db"]
- paths:
- - 'deps/graph-parser/**'
- # db is a local dep that could break functionality in this lib and should trigger this
- - 'deps/db/**'
- - '.github/workflows/graph-parser.yml'
- - '!deps/graph-parser/**.md'
- pull_request:
- branches: [master, "feat/db"]
- paths:
- - 'deps/graph-parser/**'
- - 'deps/db/**'
- - '.github/workflows/graph-parser.yml'
- - '!deps/graph-parser/**.md'
- defaults:
- run:
- working-directory: deps/graph-parser
- env:
- CLOJURE_VERSION: '1.11.1.1413'
- # This is the same as 1.8.
- JAVA_VERSION: '11'
- # This is the latest node version we can run.
- NODE_VERSION: '20'
- BABASHKA_VERSION: '1.0.168'
- jobs:
- test:
- runs-on: ubuntu-latest
- 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: deps/graph-parser/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 }}
- bb: ${{ env.BABASHKA_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:test -P
- - name: Fetch yarn deps
- run: yarn install --frozen-lockfile
- - name: Run ClojureScript tests
- run: REPEATABLE_IDENTS=true clojure -M:test
- - name: Run nbb-logseq tests
- run: yarn test
- # In this job because it depends on an npm package
- - name: Load namespaces into nbb-logseq
- run: bb test:load-all-namespaces-with-nbb .
- lint:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3.0
- - 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 test
- - name: Carve lint for unused vars
- run: bb lint:carve
- - name: Lint for vars that are too large
- run: bb lint:large-vars
- - name: Lint for namespaces that aren't documented
- run: bb lint:ns-docstrings
|