forked from logseq/logseq
-
Notifications
You must be signed in to change notification settings - Fork 0
171 lines (142 loc) · 4.42 KB
/
Copy pathcli.yml
File metadata and controls
171 lines (142 loc) · 4.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
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/setup-clojure@10.1
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/setup-clojure@10.1
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/setup-clojure@10.1
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