mirror of
https://github.com/meilisearch/meilisearch.git
synced 2024-11-25 03:25:06 +08:00
ec4844c3a6
Display docker image Add strapi and firebase Add rails and symfony tests Remove strapi and firestore tests Fix dotnet SDK CI Use specific dart SDK version Disable coverage for ruby SDK Prevent pushing coverage information to codecov Remove codecoverage token Trigger Build Trigger Build Trigger Build Trigger Build Trigger Build
387 lines
12 KiB
YAML
387 lines
12 KiB
YAML
# If any test fails, the engine team should ensure the "breaking" changes are expected and contact the integration team
|
|
name: SDKs tests
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
docker_image:
|
|
description: 'The Meilisearch Docker image used'
|
|
required: false
|
|
default: nightly
|
|
schedule:
|
|
- cron: "0 6 * * MON" # Every Monday at 6:00AM
|
|
|
|
env:
|
|
MEILI_MASTER_KEY: 'masterKey'
|
|
MEILI_NO_ANALYTICS: 'true'
|
|
DISABLE_COVERAGE: 'true'
|
|
|
|
jobs:
|
|
define-docker-image:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
docker-image: ${{ steps.define-image.outputs.docker-image }}
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Define the Docker image we need to use
|
|
id: define-image
|
|
run: |
|
|
event=${{ github.event_name }}
|
|
echo "docker-image=nightly" >> $GITHUB_OUTPUT
|
|
if [[ $event == 'workflow_dispatch' ]]; then
|
|
echo "docker-image=${{ github.event.inputs.docker_image }}" >> $GITHUB_OUTPUT
|
|
fi
|
|
- name: Docker image is ${{ steps.define-image.outputs.docker-image }}
|
|
run: echo "Docker image is ${{ steps.define-image.outputs.docker-image }}"
|
|
|
|
##########
|
|
## SDKs ##
|
|
##########
|
|
|
|
meilisearch-dotnet-tests:
|
|
needs: define-docker-image
|
|
name: .NET SDK tests
|
|
runs-on: ubuntu-latest
|
|
env:
|
|
MEILISEARCH_VERSION: ${{ needs.define-docker-image.outputs.docker-image }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
repository: meilisearch/meilisearch-dotnet
|
|
- name: Setup .NET Core
|
|
uses: actions/setup-dotnet@v3
|
|
with:
|
|
dotnet-version: "6.0.x"
|
|
- name: Install dependencies
|
|
run: dotnet restore
|
|
- name: Build
|
|
run: dotnet build --configuration Release --no-restore
|
|
- name: Meilisearch (latest version) setup with Docker
|
|
run: docker compose up -d
|
|
- name: Run tests
|
|
run: dotnet test --no-restore --verbosity normal
|
|
|
|
meilisearch-dart-tests:
|
|
needs: define-docker-image
|
|
name: Dart SDK tests
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
meilisearch:
|
|
image: getmeili/meilisearch:${{ needs.define-docker-image.outputs.docker-image }}
|
|
env:
|
|
MEILI_MASTER_KEY: ${{ env.MEILI_MASTER_KEY }}
|
|
MEILI_NO_ANALYTICS: ${{ env.MEILI_NO_ANALYTICS }}
|
|
ports:
|
|
- '7700:7700'
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
repository: meilisearch/meilisearch-dart
|
|
- uses: dart-lang/setup-dart@v1
|
|
with:
|
|
sdk: 3.1.1
|
|
- name: Install dependencies
|
|
run: dart pub get
|
|
- name: Run integration tests
|
|
run: dart test --concurrency=4
|
|
|
|
meilisearch-go-tests:
|
|
needs: define-docker-image
|
|
name: Go SDK tests
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
meilisearch:
|
|
image: getmeili/meilisearch:${{ needs.define-docker-image.outputs.docker-image }}
|
|
env:
|
|
MEILI_MASTER_KEY: ${{ env.MEILI_MASTER_KEY }}
|
|
MEILI_NO_ANALYTICS: ${{ env.MEILI_NO_ANALYTICS }}
|
|
ports:
|
|
- '7700:7700'
|
|
steps:
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v4
|
|
with:
|
|
go-version: stable
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
repository: meilisearch/meilisearch-go
|
|
- name: Get dependencies
|
|
run: |
|
|
go get -v -t -d ./...
|
|
if [ -f Gopkg.toml ]; then
|
|
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
|
|
dep ensure
|
|
fi
|
|
- name: Run integration tests
|
|
run: go test -v ./...
|
|
|
|
meilisearch-java-tests:
|
|
needs: define-docker-image
|
|
name: Java SDK tests
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
meilisearch:
|
|
image: getmeili/meilisearch:${{ needs.define-docker-image.outputs.docker-image }}
|
|
env:
|
|
MEILI_MASTER_KEY: ${{ env.MEILI_MASTER_KEY }}
|
|
MEILI_NO_ANALYTICS: ${{ env.MEILI_NO_ANALYTICS }}
|
|
ports:
|
|
- '7700:7700'
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
repository: meilisearch/meilisearch-java
|
|
- name: Set up Java
|
|
uses: actions/setup-java@v3
|
|
with:
|
|
java-version: 8
|
|
distribution: 'zulu'
|
|
cache: gradle
|
|
- name: Grant execute permission for gradlew
|
|
run: chmod +x gradlew
|
|
- name: Build and run unit and integration tests
|
|
run: ./gradlew build integrationTest
|
|
|
|
meilisearch-js-tests:
|
|
needs: define-docker-image
|
|
name: JS SDK tests
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
meilisearch:
|
|
image: getmeili/meilisearch:${{ needs.define-docker-image.outputs.docker-image }}
|
|
env:
|
|
MEILI_MASTER_KEY: ${{ env.MEILI_MASTER_KEY }}
|
|
MEILI_NO_ANALYTICS: ${{ env.MEILI_NO_ANALYTICS }}
|
|
ports:
|
|
- '7700:7700'
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
repository: meilisearch/meilisearch-js
|
|
- name: Setup node
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
cache: 'yarn'
|
|
- name: Install dependencies
|
|
run: yarn --dev
|
|
- name: Run tests
|
|
run: yarn test
|
|
- name: Build project
|
|
run: yarn build
|
|
- name: Run ESM env
|
|
run: yarn test:env:esm
|
|
- name: Run Node.js env
|
|
run: yarn test:env:nodejs
|
|
- name: Run node typescript env
|
|
run: yarn test:env:node-ts
|
|
- name: Run Browser env
|
|
run: yarn test:env:browser
|
|
|
|
meilisearch-php-tests:
|
|
needs: define-docker-image
|
|
name: PHP SDK tests
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
meilisearch:
|
|
image: getmeili/meilisearch:${{ needs.define-docker-image.outputs.docker-image }}
|
|
env:
|
|
MEILI_MASTER_KEY: ${{ env.MEILI_MASTER_KEY }}
|
|
MEILI_NO_ANALYTICS: ${{ env.MEILI_NO_ANALYTICS }}
|
|
ports:
|
|
- '7700:7700'
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
repository: meilisearch/meilisearch-php
|
|
- name: Install PHP
|
|
uses: shivammathur/setup-php@v2
|
|
- name: Validate composer.json and composer.lock
|
|
run: composer validate
|
|
- name: Install dependencies
|
|
run: |
|
|
composer remove --dev friendsofphp/php-cs-fixer --no-update --no-interaction
|
|
composer update --prefer-dist --no-progress
|
|
- name: Run test suite - default HTTP client (Guzzle 7)
|
|
run: |
|
|
sh scripts/tests.sh
|
|
composer remove --dev guzzlehttp/guzzle http-interop/http-factory-guzzle
|
|
|
|
meilisearch-python-tests:
|
|
needs: define-docker-image
|
|
name: Python SDK tests
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
meilisearch:
|
|
image: getmeili/meilisearch:${{ needs.define-docker-image.outputs.docker-image }}
|
|
env:
|
|
MEILI_MASTER_KEY: ${{ env.MEILI_MASTER_KEY }}
|
|
MEILI_NO_ANALYTICS: ${{ env.MEILI_NO_ANALYTICS }}
|
|
ports:
|
|
- '7700:7700'
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
repository: meilisearch/meilisearch-python
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v4
|
|
- name: Install pipenv
|
|
uses: dschep/install-pipenv-action@v1
|
|
- name: Install dependencies
|
|
run: pipenv install --dev --python=${{ matrix.python-version }}
|
|
- name: Test with pytest
|
|
run: pipenv run pytest
|
|
|
|
meilisearch-ruby-tests:
|
|
needs: define-docker-image
|
|
name: Ruby SDK tests
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
meilisearch:
|
|
image: getmeili/meilisearch:${{ needs.define-docker-image.outputs.docker-image }}
|
|
env:
|
|
MEILI_MASTER_KEY: ${{ env.MEILI_MASTER_KEY }}
|
|
MEILI_NO_ANALYTICS: ${{ env.MEILI_NO_ANALYTICS }}
|
|
ports:
|
|
- '7700:7700'
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
repository: meilisearch/meilisearch-ruby
|
|
- name: Set up Ruby 3
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
ruby-version: 3
|
|
- name: Install ruby dependencies
|
|
run: bundle install --with test
|
|
- name: Run test suite
|
|
run: bundle exec rspec
|
|
|
|
meilisearch-rust-tests:
|
|
needs: define-docker-image
|
|
name: Rust SDK tests
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
meilisearch:
|
|
image: getmeili/meilisearch:${{ needs.define-docker-image.outputs.docker-image }}
|
|
env:
|
|
MEILI_MASTER_KEY: ${{ env.MEILI_MASTER_KEY }}
|
|
MEILI_NO_ANALYTICS: ${{ env.MEILI_NO_ANALYTICS }}
|
|
ports:
|
|
- '7700:7700'
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
repository: meilisearch/meilisearch-rust
|
|
- name: Build
|
|
run: cargo build --verbose
|
|
- name: Run tests
|
|
run: cargo test --verbose
|
|
|
|
meilisearch-swift-tests:
|
|
needs: define-docker-image
|
|
name: Swift SDK tests
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
meilisearch:
|
|
image: getmeili/meilisearch:${{ needs.define-docker-image.outputs.docker-image }}
|
|
env:
|
|
MEILI_MASTER_KEY: ${{ env.MEILI_MASTER_KEY }}
|
|
MEILI_NO_ANALYTICS: ${{ env.MEILI_NO_ANALYTICS }}
|
|
ports:
|
|
- '7700:7700'
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
repository: meilisearch/meilisearch-swift
|
|
- name: Run tests
|
|
run: swift test
|
|
|
|
########################
|
|
## FRONT-END PLUGINS ##
|
|
########################
|
|
|
|
meilisearch-js-plugins-tests:
|
|
needs: define-docker-image
|
|
name: meilisearch-js-plugins tests
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
meilisearch:
|
|
image: getmeili/meilisearch:${{ needs.define-docker-image.outputs.docker-image }}
|
|
env:
|
|
MEILI_MASTER_KEY: ${{ env.MEILI_MASTER_KEY }}
|
|
MEILI_NO_ANALYTICS: ${{ env.MEILI_NO_ANALYTICS }}
|
|
ports:
|
|
- '7700:7700'
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
repository: meilisearch/meilisearch-js-plugins
|
|
- name: Setup node
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
cache: yarn
|
|
- name: Install dependencies
|
|
run: yarn install
|
|
- name: Run tests
|
|
run: yarn test
|
|
- name: Build all the playgrounds and the packages
|
|
run: yarn build
|
|
|
|
########################
|
|
## BACK-END PLUGINS ###
|
|
########################
|
|
|
|
meilisearch-rails-tests:
|
|
needs: define-docker-image
|
|
name: meilisearch-rails tests
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
meilisearch:
|
|
image: getmeili/meilisearch:${{ needs.define-docker-image.outputs.docker-image }}
|
|
env:
|
|
MEILI_MASTER_KEY: ${{ env.MEILI_MASTER_KEY }}
|
|
MEILI_NO_ANALYTICS: ${{ env.MEILI_NO_ANALYTICS }}
|
|
ports:
|
|
- '7700:7700'
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
repository: meilisearch/meilisearch-rails
|
|
- name: Set up Ruby 3
|
|
uses: ruby/setup-ruby@v1
|
|
with:
|
|
ruby-version: 3
|
|
bundler-cache: true
|
|
- name: Run tests
|
|
run: bundle exec rspec
|
|
|
|
meilisearch-symfony-tests:
|
|
needs: define-docker-image
|
|
name: meilisearch-symfony tests
|
|
runs-on: ubuntu-latest
|
|
services:
|
|
meilisearch:
|
|
image: getmeili/meilisearch:${{ needs.define-docker-image.outputs.docker-image }}
|
|
env:
|
|
MEILI_MASTER_KEY: ${{ env.MEILI_MASTER_KEY }}
|
|
MEILI_NO_ANALYTICS: ${{ env.MEILI_NO_ANALYTICS }}
|
|
ports:
|
|
- '7700:7700'
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
with:
|
|
repository: meilisearch/meilisearch-symfony
|
|
- name: Install PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
tools: composer:v2, flex
|
|
- name: Validate composer.json and composer.lock
|
|
run: composer validate
|
|
- name: Install dependencies
|
|
run: composer install --prefer-dist --no-progress --quiet
|
|
- name: Remove doctrine/annotations
|
|
run: composer remove --dev doctrine/annotations
|
|
- name: Run test suite
|
|
run: composer test:unit
|