name: logseq graph-parser CI on: # Path filters ensure jobs only kick off if a change is made to graph-parser push: branches: [master] paths: - 'deps/graph-parser/**' - '!deps/graph-parser/**.md' pull_request: branches: [master] paths: - 'deps/graph-parser/**' - '!deps/graph-parser/**.md' env: CLOJURE_VERSION: '1.10.1.727' # setup-java@v2 dropped support for legacy Java version syntax. # This is the same as 1.8. JAVA_VERSION: '8' # This is the latest node version we can run. NODE_VERSION: '16' BABASHKA_VERSION: '0.8.2' jobs: test: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Set up Node uses: actions/setup-node@v2 with: node-version: ${{ env.NODE_VERSION }} cache: 'yarn' cache-dependency-path: deps/graph-parser/yarn.lock - name: Set up Java uses: actions/setup-java@v2 with: distribution: 'zulu' java-version: ${{ env.JAVA_VERSION }} - name: Set up Clojure uses: DeLaGuardo/setup-clojure@master with: cli: ${{ env.CLOJURE_VERSION }} - name: Setup Babashka uses: turtlequeue/setup-babashka@v1.3.0 with: babashka-version: ${{ env.BABASHKA_VERSION }} - name: Clojure cache uses: actions/cache@v2 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: cd deps/graph-parser && clojure -A:test -P - name: Fetch yarn deps run: cd deps/graph-parser && yarn install --frozen-lockfile - name: Run ClojureScript tests run: cd deps/graph-parser && clojure -M:test - name: Run nbb-logseq tests run: cd deps/graph-parser && yarn nbb-logseq -cp src:test -m logseq.graph-parser.nbb-test-runner/run-tests # In this job because it depends on an npm package - name: Load namespaces into nbb-logseq run: bb test:load-all-namespaces-with-nbb deps/graph-parser src lint: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 - name: Set up Java uses: actions/setup-java@v2 with: distribution: 'zulu' java-version: ${{ env.JAVA_VERSION }} - name: Set up Clojure uses: DeLaGuardo/setup-clojure@master with: cli: ${{ env.CLOJURE_VERSION }} - name: Setup Babashka uses: turtlequeue/setup-babashka@v1.3.0 with: babashka-version: ${{ env.BABASHKA_VERSION }} - name: Run clj-kondo lint run: cd deps/graph-parser && clojure -M:clj-kondo --parallel --lint src test - name: Carve lint for unused vars run: cd deps/graph-parser && ../../scripts/carve.clj - name: Lint for vars that are too large run: scripts/large_vars.clj deps/graph-parser/src '{:max-lines-count 75}'