| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- name: logseq/cli CI
- on:
- # Path filters ensure jobs only kick off if a change is made to cli or
- # its local dependencies
- push:
- branches: [master]
- paths:
- - 'deps/cli/**'
- - '.github/workflows/cli.yml'
- - '!deps/cli/**.md'
- # Deps that logseq/cli depends on should trigger this workflow
- - 'deps/outliner/**'
- - 'deps/graph-parser/**'
- - 'deps/db/**'
- - 'deps/common/**'
- pull_request:
- branches: [master]
- paths:
- - 'deps/cli/**'
- - '.github/workflows/cli.yml'
- - '!deps/cli/**.md'
- # Deps that logseq/cli depends on should trigger this workflow
- - 'deps/outliner/**'
- - 'deps/graph-parser/**'
- - 'deps/db/**'
- - 'deps/common/**'
- workflow_dispatch:
- inputs:
- git-ref:
- description: "Release Git Ref (Which branch to build?)"
- required: true
- default: "master"
- release-tag:
- type: choice
- description: "Npm Release Tag (Use 'latest' for a stable release)"
- required: true
- options:
- - alpha
- - latest
- default: "latest"
- defaults:
- run:
- working-directory: deps/cli
- 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: '22'
- BABASHKA_VERSION: '1.0.168'
- jobs:
- test:
- runs-on: ubuntu-latest
- steps:
- - name: Checkout
- uses: actions/checkout@v4
- - name: Set up Node
- uses: actions/setup-node@v3
- with:
- node-version: ${{ env.NODE_VERSION }}
- cache: 'yarn'
- cache-dependency-path: deps/cli/yarn.lock
- - name: Set up Java
- uses: actions/setup-java@v3
- with:
- distribution: 'zulu'
- java-version: ${{ env.JAVA_VERSION }}
- # Clojure needed for bb step
- - name: Set up Clojure
- uses: DeLaGuardo/[email protected]
- with:
- cli: ${{ env.CLOJURE_VERSION }}
- bb: ${{ env.BABASHKA_VERSION }}
- - name: Fetch yarn deps
- run: yarn install --frozen-lockfile
- - 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@v4
- - 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 --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
- - name: Lint for public vars that are private based on usage
- run: bb lint:minimize-public-vars
- release:
- if: ${{ github.event_name == 'workflow_dispatch' }}
- runs-on: ubuntu-latest
- steps:
- - name: Check out Git repository
- uses: actions/checkout@v4
- with:
- ref: ${{ github.event.inputs.git-ref }}
- - name: Set up Node
- uses: actions/setup-node@v3
- with:
- node-version: ${{ env.NODE_VERSION }}
- cache: 'yarn'
- cache-dependency-path: deps/cli/yarn.lock
- - name: Set up Java
- uses: actions/setup-java@v3
- with:
- distribution: 'zulu'
- java-version: ${{ env.JAVA_VERSION }}
- # Clojure needed for bb step
- - name: Set up Clojure
- uses: DeLaGuardo/[email protected]
- with:
- cli: ${{ env.CLOJURE_VERSION }}
- bb: ${{ env.BABASHKA_VERSION }}
- - name: Fetch yarn deps
- run: yarn install --frozen-lockfile
- - name: Bundle vendor deps
- run: bb build:vendor-nbb-deps
- # - name: Debug package
- # run: yarn pack && tar -tf logseq-cli-*.tgz
- - name: Authenticate with registry
- env:
- NPM_TOKEN: ${{ secrets.NPM_CLI_TOKEN }}
- run: echo "//registry.npmjs.org/:_authToken=$NPM_TOKEN" > .npmrc
- - name: Publish package
- run: npm publish --tag "${{ github.event.inputs.release-tag || 'alpha' }}" --access public
|