-
Notifications
You must be signed in to change notification settings - Fork 3
Add support for v30.0 #41
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -41,7 +41,7 @@ jobs: | |
| - typesense: '29.0' | ||
| otp: '28' | ||
| elixir: '1.18' | ||
| lint: true | ||
| lint: false | ||
|
|
||
| services: | ||
| typesense: | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,172 @@ | ||
| name: CI v30.0 | ||
|
|
||
| on: | ||
| workflow_call: | ||
| pull_request: | ||
| branches: ["main"] | ||
|
|
||
| concurrency: | ||
| group: ${{ github.workflow }}-${{ github.ref }} | ||
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| # https://docs.github.com/en/actions/managing-workflow-runs/skipping-workflow-runs | ||
| # Workflows that would otherwise be triggered using `on: push` or | ||
| # `on: pull_request` won't be triggered if you add any of the | ||
| # following strings to the commit message in a push, or the HEAD | ||
| # commit of a pull request: | ||
| # - [skip ci] | ||
| # - [ci skip] | ||
| # - [no ci] | ||
| # - [skip actions] | ||
| # - [actions skip] | ||
|
|
||
| test: | ||
| if: ${{ (github.event_name == 'push' || github.event_name == 'pull_request') && github.repository == 'jaeyson/open_api_typesense' }} | ||
| runs-on: ubuntu-latest | ||
| environment: review | ||
|
|
||
| env: | ||
| MIX_ENV: test | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
| LATEST_TYPESENSE: '30.0' | ||
|
|
||
| strategy: | ||
| matrix: | ||
| include: | ||
| - typesense: '30.0' | ||
| otp: '25' | ||
| elixir: '1.14' | ||
| lint: false | ||
| - typesense: '29.0' | ||
| otp: '28' | ||
| elixir: '1.18' | ||
| lint: true | ||
|
|
||
| services: | ||
| typesense: | ||
| image: typesense/typesense:${{ matrix.typesense }} | ||
|
|
||
| steps: | ||
| - name: Checkout repo | ||
| uses: actions/checkout@v4 | ||
|
|
||
| - name: Check for misspellings | ||
| uses: codespell-project/actions-codespell@v2 | ||
|
Check warning on line 55 in .github/workflows/ci_v30.0.yml
|
||
|
|
||
| - name: Start Typesense | ||
| run: | | ||
| docker run -id \ | ||
| -p 8108:8108 \ | ||
| --name typesense \ | ||
| -v /tmp/typesense-data:/data \ | ||
| -v /tmp/typesense-analytics-data:/analytics-data \ | ||
| typesense/typesense:${{ matrix.typesense}} \ | ||
| --api-key xyz \ | ||
| --data-dir /data \ | ||
| --enable-search-analytics=true \ | ||
| --analytics-dir=/analytics-data \ | ||
| --analytics-flush-interval=60 \ | ||
| --analytics-minute-rate-limit=100 \ | ||
| --enable-cors | ||
|
|
||
| - name: Wait for Typesense to be healthy | ||
| shell: bash | ||
| run: | | ||
| start_time=$(date +%s) | ||
| timeout=30 | ||
| counter=0 | ||
| until curl -s http://localhost:8108/health | grep -q '"ok":true'; do | ||
| if [ $counter -eq $timeout ]; then | ||
| echo "Timed out waiting for Typesense to be healthy" | ||
| exit 1 | ||
| fi | ||
| echo "Waiting for Typesense to be healthy..." | ||
| sleep 1 | ||
| counter=$((counter + 1)) | ||
| done | ||
| end_time=$(date +%s) | ||
| elapsed=$((end_time - start_time)) | ||
| echo "Typesense healthcheck elapsed: ${elapsed}s" | ||
|
|
||
| - name: Setup Elixir/OTP | ||
| uses: erlef/setup-beam@v1 | ||
|
Check warning on line 93 in .github/workflows/ci_v30.0.yml
|
||
| with: | ||
| otp-version: ${{matrix.otp}} | ||
| elixir-version: ${{matrix.elixir}} | ||
|
|
||
| - name: Cache dependencies/builds | ||
| uses: actions/cache@v4 | ||
| with: | ||
| path: | | ||
| deps | ||
| _build | ||
| key: ${{ runner.os }}-typesense-${{ matrix.typesense}}-${{ matrix.otp}}-${{ matrix.elixir}}-mix-${{ hashFiles('**/mix.lock') }} | ||
| restore-keys: | | ||
| ${{ runner.os }}-typesense-${{ matrix.typesense}}-${{ matrix.otp }}-${{ matrix.elixir }}-mix- | ||
|
|
||
| - name: Install Dependencies | ||
| run: | | ||
| mix local.rebar --if-missing | ||
| mix local.hex --if-missing | ||
| mix deps.get | ||
|
|
||
| - name: Find unused dependencies | ||
| run: mix deps.unlock --check-unused | ||
| if: ${{ matrix.lint }} | ||
|
|
||
| - name: Check retired dependencies | ||
| run: mix hex.audit | ||
| if: ${{ matrix.lint }} | ||
|
|
||
| - name: Security audit of dependencies | ||
| run: mix deps.audit | ||
| if: ${{ matrix.lint }} | ||
|
|
||
| - name: Compile project | ||
| run: mix compile --all-warnings | ||
|
|
||
| - name: Run static analysis | ||
| run: mix credo --all --strict | ||
| if: ${{ matrix.lint }} | ||
|
|
||
| - name: Check format files | ||
| run: mix format --check-formatted | ||
| if: ${{ matrix.lint }} | ||
|
|
||
| - name: Restore PLT cache | ||
| id: plt_cache | ||
| uses: actions/cache/restore@v4 | ||
| with: | ||
| key: | | ||
| plt-${{ runner.os }}-${{ steps.beam.outputs.otp-version }}-${{ steps.beam.outputs.elixir-version }}-${{ hashFiles('**/mix.lock') }} | ||
| restore-keys: | | ||
| plt-${{ runner.os }}-${{ steps.beam.outputs.otp-version }}-${{ steps.beam.outputs.elixir-version }}- | ||
| path: | | ||
| priv/plts | ||
| if: ${{ matrix.lint }} | ||
|
|
||
| - name: Create PLTs | ||
| if: ${{ steps.plt_cache.outputs.cache-hit != 'true' && matrix.lint }} | ||
| run: mix dialyzer --plt | ||
|
|
||
| - name: Save PLT cache | ||
| id: plt_cache_save | ||
| uses: actions/cache/save@v4 | ||
| if: ${{ steps.plt_cache.outputs.cache-hit != 'true' && matrix.lint }} | ||
| with: | ||
| key: | | ||
| plt-${{ runner.os }}-${{ steps.beam.outputs.otp-version }}-${{ steps.beam.outputs.elixir-version }}-${{ hashFiles('**/mix.lock') }} | ||
| path: | | ||
| priv/plts | ||
|
|
||
| - name: Dialyzer | ||
| run: mix dialyzer --format github --format dialyxir | ||
| if: ${{ matrix.lint }} | ||
|
|
||
| - name: Run tests | ||
| run: mix test --only ${{ matrix.typesense }}:true --only nls:true --trace | ||
|
|
||
| - name: Post test coverage to Coveralls | ||
| run: mix coveralls.github | ||
| if: ${{ matrix.lint && github.event_name == 'push' && github.ref == 'refs/heads/main' }} | ||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -7,6 +7,15 @@ | |||||
|
|
||||||
| ## major.minor.patch (yyyy.mm.dd) | ||||||
|
|
||||||
| ## 1.2.0 ??? | ||||||
|
|
||||||
| ### Changed | ||||||
|
|
||||||
| ### Deprecated | ||||||
|
|
||||||
| * Overrides (aka Curation Rules) no longer nested under Collections -> Curation Sets | ||||||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. suggestion (typo): Consider adding a verb to make this sentence grammatically complete. For example:
Suggested change
|
||||||
| * TODO https://typesense.org/docs/30.0/api/#deprecations-behavior-changes | ||||||
|
|
||||||
| ## 1.1.0 (2026.04.06) | ||||||
|
|
||||||
| ### Added | ||||||
|
|
||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
issue (bug_risk): PLT cache keys reference
steps.beambut there is no step with that id, so the cache will not work as intendedsteps.beam.outputs.otp-versionandsteps.beam.outputs.elixir-versionwill be empty because theSetup Elixir/OTPstep has noid: beam, so the cache key will be malformed and hurt cache effectiveness. Either addid: beamto theerlef/setup-beamstep or switch the cache key to usematrix.otpandmatrix.elixirinstead.