Skip to content

Commit 71dcc92

Browse files
authored
Add support for v30.1 (#45)
* Add support for v30.1 * update CHANGELOG.md and library data [skip ci] * update CI * update CI
1 parent c826426 commit 71dcc92

32 files changed

Lines changed: 984 additions & 189 deletions

.github/workflows/ci_v26.0.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ jobs:
2121
# - [actions skip]
2222

2323
test:
24-
if: ${{ (github.event_name == 'push' || github.event_name == 'pull_request') && github.repository == 'jaeyson/open_api_typesense' }}
2524
runs-on: ubuntu-latest
2625
environment: review
2726

@@ -46,10 +45,6 @@ jobs:
4645
elixir: '1.19'
4746
lint: false
4847

49-
services:
50-
typesense:
51-
image: typesense/typesense:${{ matrix.typesense }}
52-
5348
steps:
5449
- name: Checkout repo
5550
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd

.github/workflows/ci_v27.0.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ jobs:
2121
# - [actions skip]
2222

2323
test:
24-
if: ${{ (github.event_name == 'push' || github.event_name == 'pull_request') && github.repository == 'jaeyson/open_api_typesense' }}
2524
runs-on: ubuntu-latest
2625
environment: review
2726

@@ -46,10 +45,6 @@ jobs:
4645
elixir: '1.19'
4746
lint: false
4847

49-
services:
50-
typesense:
51-
image: typesense/typesense:${{ matrix.typesense }}
52-
5348
steps:
5449
- name: Checkout repo
5550
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd

.github/workflows/ci_v27.1.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ jobs:
2121
# - [actions skip]
2222

2323
test:
24-
if: ${{ (github.event_name == 'push' || github.event_name == 'pull_request') && github.repository == 'jaeyson/open_api_typesense' }}
2524
runs-on: ubuntu-latest
2625
environment: review
2726

@@ -46,10 +45,6 @@ jobs:
4645
elixir: '1.19'
4746
lint: false
4847

49-
services:
50-
typesense:
51-
image: typesense/typesense:${{ matrix.typesense }}
52-
5348
steps:
5449
- name: Checkout repo
5550
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd

.github/workflows/ci_v28.0.yml

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ jobs:
2121
# - [actions skip]
2222

2323
test:
24-
if: ${{ (github.event_name == 'push' || github.event_name == 'pull_request') && github.repository == 'jaeyson/open_api_typesense' }}
2524
runs-on: ubuntu-latest
2625
environment: review
2726

@@ -42,10 +41,6 @@ jobs:
4241
elixir: '1.18'
4342
lint: false
4443

45-
services:
46-
typesense:
47-
image: typesense/typesense:${{ matrix.typesense }}
48-
4944
steps:
5045
- name: Checkout repo
5146
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd

.github/workflows/ci_v29.0.yml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
name: CI v29.0
22

33
on:
4-
workflow_call:
54
pull_request:
65
branches: ["main"]
76

@@ -22,7 +21,6 @@ jobs:
2221
# - [actions skip]
2322

2423
test:
25-
if: ${{ (github.event_name == 'push' || github.event_name == 'pull_request') && github.repository == 'jaeyson/open_api_typesense' }}
2624
runs-on: ubuntu-latest
2725
environment: review
2826

@@ -43,10 +41,6 @@ jobs:
4341
elixir: '1.18'
4442
lint: false
4543

46-
services:
47-
typesense:
48-
image: typesense/typesense:${{ matrix.typesense }}
49-
5044
steps:
5145
- name: Checkout repo
5246
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd

.github/workflows/ci_v30.0.yml

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
name: CI v30.0
22

33
on:
4-
workflow_call:
54
pull_request:
65
branches: ["main"]
76

@@ -22,7 +21,6 @@ jobs:
2221
# - [actions skip]
2322

2423
test:
25-
if: ${{ (github.event_name == 'push' || github.event_name == 'pull_request') && github.repository == 'jaeyson/open_api_typesense' }}
2624
runs-on: ubuntu-latest
2725
environment: review
2826

@@ -41,11 +39,7 @@ jobs:
4139
- typesense: '30.0'
4240
otp: '28'
4341
elixir: '1.18'
44-
lint: true
45-
46-
services:
47-
typesense:
48-
image: typesense/typesense:${{ matrix.typesense }}
42+
lint: false
4943

5044
steps:
5145
- name: Checkout repo
@@ -95,15 +89,12 @@ jobs:
9589
otp-version: ${{matrix.otp}}
9690
elixir-version: ${{matrix.elixir}}
9791

98-
- name: Restore cache
99-
id: cache_restore
100-
uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7
101-
if: ${{ matrix.lint }}
92+
- name: Cache dependencies/builds
93+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7
10294
with:
10395
path: |
10496
deps
10597
_build
106-
priv/plts
10798
key: ${{ runner.os }}-typesense-${{ matrix.typesense}}-${{ matrix.otp}}-${{ matrix.elixir}}-mix-${{ hashFiles('**/mix.lock') }}
10899
restore-keys: |
109100
${{ runner.os }}-typesense-${{ matrix.typesense}}-${{ matrix.otp }}-${{ matrix.elixir }}-mix-
@@ -151,15 +142,3 @@ jobs:
151142
- name: Post test coverage to Coveralls
152143
run: mix coveralls.github
153144
if: ${{ matrix.lint && github.event_name == 'push' && github.ref == 'refs/heads/main' }}
154-
155-
- name: Save cache
156-
id: cache_save
157-
uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7
158-
if: ${{ matrix.lint }}
159-
with:
160-
path: |
161-
deps
162-
_build
163-
priv/plts
164-
key: |
165-
${{ runner.os }}-${{ steps.beam.outputs.otp-version }}-${{ steps.beam.outputs.elixir-version }}-${{ hashFiles('**/mix.lock') }}

.github/workflows/ci_v30.1.yml

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
name: CI v30.1
2+
3+
on:
4+
workflow_call:
5+
6+
concurrency:
7+
group: ${{ github.workflow }}-${{ github.ref }}
8+
cancel-in-progress: true
9+
10+
jobs:
11+
# https://docs.github.com/en/actions/managing-workflow-runs/skipping-workflow-runs
12+
# Workflows that would otherwise be triggered using `on: push` or
13+
# `on: pull_request` won't be triggered if you add any of the
14+
# following strings to the commit message in a push, or the HEAD
15+
# commit of a pull request:
16+
# - [skip ci]
17+
# - [ci skip]
18+
# - [no ci]
19+
# - [skip actions]
20+
# - [actions skip]
21+
22+
test:
23+
runs-on: ubuntu-latest
24+
environment: review
25+
26+
env:
27+
MIX_ENV: test
28+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
29+
LATEST_TYPESENSE: '30.1'
30+
31+
strategy:
32+
matrix:
33+
include:
34+
- typesense: '30.1'
35+
otp: '25'
36+
elixir: '1.14'
37+
lint: false
38+
- typesense: '30.1'
39+
otp: '28'
40+
elixir: '1.18'
41+
lint: true
42+
43+
steps:
44+
- name: Checkout repo
45+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
46+
47+
- name: Check for misspellings
48+
uses: codespell-project/actions-codespell@8f01853be192eb0f849a5c7d721450e7a467c579
49+
50+
- name: Start Typesense
51+
run: |
52+
docker run -id \
53+
-p 8108:8108 \
54+
--name typesense \
55+
-v /tmp/typesense-data:/data \
56+
-v /tmp/typesense-analytics-data:/analytics-data \
57+
typesense/typesense:${{ matrix.typesense}} \
58+
--api-key xyz \
59+
--data-dir /data \
60+
--enable-search-analytics=true \
61+
--analytics-dir=/analytics-data \
62+
--analytics-flush-interval=60 \
63+
--analytics-minute-rate-limit=100 \
64+
--enable-cors
65+
66+
- name: Wait for Typesense to be healthy
67+
shell: bash
68+
run: |
69+
start_time=$(date +%s)
70+
timeout=30
71+
counter=0
72+
until curl -s http://localhost:8108/health | grep -q '"ok":true'; do
73+
if [ $counter -eq $timeout ]; then
74+
echo "Timed out waiting for Typesense to be healthy"
75+
exit 1
76+
fi
77+
echo "Waiting for Typesense to be healthy..."
78+
sleep 1
79+
counter=$((counter + 1))
80+
done
81+
end_time=$(date +%s)
82+
elapsed=$((end_time - start_time))
83+
echo "Typesense healthcheck elapsed: ${elapsed}s"
84+
85+
- name: Setup Elixir/OTP
86+
uses: erlef/setup-beam@fc68ffb90438ef2936bbb3251622353b3dcb2f93
87+
with:
88+
otp-version: ${{matrix.otp}}
89+
elixir-version: ${{matrix.elixir}}
90+
91+
- name: Restore cache
92+
id: cache_restore
93+
uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7
94+
if: ${{ matrix.lint }}
95+
with:
96+
path: |
97+
deps
98+
_build
99+
priv/plts
100+
key: ${{ runner.os }}-typesense-${{ matrix.typesense }}-${{ matrix.otp }}-${{ matrix.elixir }}-mix-${{ hashFiles('**/mix.lock') }}
101+
restore-keys: |
102+
${{ runner.os }}-typesense-${{ matrix.typesense}}-${{ matrix.otp }}-${{ matrix.elixir }}-mix-
103+
104+
- name: Install Dependencies
105+
run: |
106+
mix local.rebar --if-missing
107+
mix local.hex --if-missing
108+
mix deps.get
109+
110+
- name: Find unused dependencies
111+
run: mix deps.unlock --check-unused
112+
if: ${{ matrix.lint }}
113+
114+
- name: Check retired dependencies
115+
run: mix hex.audit
116+
if: ${{ matrix.lint }}
117+
118+
- name: Security audit of dependencies
119+
run: mix deps.audit
120+
if: ${{ matrix.lint }}
121+
122+
- name: Compile project
123+
run: mix compile --all-warnings
124+
125+
- name: Run static analysis
126+
run: mix credo --all --strict
127+
if: ${{ matrix.lint }}
128+
129+
- name: Check format files
130+
run: mix format --check-formatted
131+
if: ${{ matrix.lint }}
132+
133+
- name: Create PLTs
134+
if: ${{ steps.cache_restore.outputs.cache-hit != 'true' && matrix.lint }}
135+
run: mix dialyzer --plt
136+
137+
- name: Dialyzer
138+
run: mix dialyzer --format github --format dialyxir
139+
if: ${{ matrix.lint }}
140+
141+
- name: Run tests
142+
run: mix test --only ${{ matrix.typesense }}:true --only nls:true --trace
143+
144+
- name: Post test coverage to Coveralls
145+
run: mix coveralls.github
146+
if: ${{ matrix.lint && github.event_name == 'push' && github.ref == 'refs/heads/main' }}
147+
148+
- name: Save cache
149+
id: cache_save
150+
uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7
151+
if: ${{ matrix.lint }}
152+
with:
153+
path: |
154+
deps
155+
_build
156+
priv/plts
157+
key: ${{ runner.os }}-typesense-${{ matrix.typesense }}-${{ matrix.otp }}-${{ matrix.elixir }}-mix-${{ hashFiles('**/mix.lock') }}
158+

.github/workflows/llm.yml

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,10 @@ concurrency:
99

1010
jobs:
1111
ci_workflow:
12-
uses: ./.github/workflows/ci_v30.0.yml
12+
uses: ./.github/workflows/ci_v30.1.yml
1313
secrets: inherit
1414

1515
llm:
16-
if: ${{ (github.event_name == 'push' || github.event_name == 'pull_request') && github.repository == 'jaeyson/open_api_typesense' }}
1716
runs-on: ubuntu-latest
1817
environment: review
1918
needs: [ci_workflow]
@@ -31,23 +30,19 @@ jobs:
3130
- typesense: '30.0'
3231
otp: '25'
3332
elixir: '1.14'
34-
- typesense: '29.0'
35-
otp: '25'
36-
elixir: '1.14'
3733
- typesense: '30.1'
3834
otp: '28'
3935
elixir: '1.18'
4036
- typesense: '30.0'
4137
otp: '28'
4238
elixir: '1.18'
39+
- typesense: '29.0'
40+
otp: '25'
41+
elixir: '1.14'
4342
- typesense: '29.0'
4443
otp: '28'
4544
elixir: '1.18'
4645

47-
services:
48-
typesense:
49-
image: typesense/typesense:${{ matrix.typesense }}
50-
5146
steps:
5247
- name: Start Typesense
5348
run: |

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## major.minor.patch (yyyy.mm.dd)
99

10+
## 1.3.0 (2026.04.14)
11+
12+
### Chore
13+
14+
* Support for Typesense v30.1. See <https://typesense.org/docs/30.1/api>
15+
1016
## 1.2.0 (2026.04.13)
1117

1218
### Deprecated

0 commit comments

Comments
 (0)