Skip to content

Commit d030b82

Browse files
tzolovmarkpollack
authored andcommitted
Update mavne build with a profile for fast integration tests
- Add new Maven profile 'ci-fast-integration-tests' for running selective ITs - Remove redundant vector store skip flags from properties section - Update maven-failsafe-plugin to version 3.5.2 - Configure test exclusions for various components: - Most model integration tests (Anthropic and OpenAI) - Most vector store tests (except PgVector and Chroma) - Most auto-configuration tests - All test containers and docker compose tests - AI evaluation tests - Convert the docker-compose tests into ITs - Convert the testcontainers tests into ITs - Updated README.md - Explain the new profile and also the new integration tests repo - Describe ways to run integration tests for specific modules - Add badge for https://github.com/spring-projects/spring-ai-integration-tests
1 parent 979de19 commit d030b82

File tree

49 files changed

+1484
-578
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+1484
-578
lines changed

README.md

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
# Spring AI [![build status](https://github.com/spring-projects/spring-ai/actions/workflows/continuous-integration.yml/badge.svg)](https://github.com/spring-projects/spring-ai/actions/workflows/continuous-integration.yml)
1+
# Spring AI [![build status](https://github.com/spring-projects/spring-ai/actions/workflows/continuous-integration.yml/badge.svg)](https://github.com/spring-projects/spring-ai/actions/workflows/continuous-integration.yml) [![build status](https://github.com/spring-projects/spring-ai-integration-tests/actions/workflows/spring-ai-integration-tests.yml/badge.svg)](https://github.com/spring-projects/spring-ai-integration-tests/actions/workflows/spring-ai-integration-tests.yml)
2+
23

34
The Spring AI project provides a Spring-friendly API and abstractions for developing AI applications.
45

@@ -8,10 +9,10 @@ Its goal is to apply to the AI domain Spring ecosystem design principles such as
89

910
> At its core, Spring AI addresses the fundamental challenge of AI integration: Connecting your enterprise __Data__ and __APIs__ with the __AI Models__.
1011
11-
For further information go to our [Spring AI Reference Documentation](https://docs.spring.io/spring-ai/reference/).
12-
1312
The project draws inspiration from notable Python projects, such as [LangChain](https://docs.langchain.com/docs/) and [LlamaIndex](https://gpt-index.readthedocs.io/en/latest/getting_started/concepts.html), but Spring AI is not a direct port of those projects. The project was founded with the belief that the next wave of Generative AI applications will not be only for Python developers but will be ubiquitous across many programming languages.
1413

14+
You can check out the blog post [Why Spring AI](https://spring.io/blog/2024/11/19/why-spring-ai) for additional motivations.
15+
1516
This is a high level feature overview.
1617
You can find more details in the [Reference Documentation](https://docs.spring.io/spring-ai/reference/)
1718

@@ -68,17 +69,44 @@ To build with running unit tests
6869
```
6970

7071
To build including integration tests.
71-
Set API key environment variables for OpenAI and Azure OpenAI before running.
7272

7373
```shell
7474
./mvnw clean verify -Pintegration-tests
7575
```
7676

77+
Note that you should set API key environment variables for OpenAI or other model providers before running. If the API key isn't set for a specific model provider, the integration test is skipped.
78+
7779
To run a specific integration test allowing for up to two attempts to succeed. This is useful when a hosted service is not reliable or times out.
7880
```shell
7981
./mvnw -pl vector-stores/spring-ai-pgvector-store -Pintegration-tests -Dfailsafe.rerunFailingTestsCount=2 -Dit.test=PgVectorStoreIT verify
82+
```
83+
84+
### Integration Tests
85+
There are many integration tests ,so it often isn't realistic to run them all at once.
86+
87+
A quick pass through the most important pathways that runs integration tests for
88+
89+
* OpenAI models
90+
* OpenAI autoconfiguration
91+
* PGVector
92+
* Chroma
8093

94+
can be done with the profile `-Pci-fast-integration-tests` and is used in the main CI build of this project.
95+
96+
A full integration test is done twice a day in the [Spring AI Integration Test Repository](https://github.com/spring-projects/spring-ai-integration-tests)
97+
98+
One way to run integration tests on part of the code is to first do a quick compile and install of the project
99+
100+
```shell
101+
./mvnw clean install -DskipTests -Dmaven.javadoc.skip=true
81102
```
103+
Then run the integration test for a specifi module using the `-pl` option
104+
```shell
105+
./mvnw verify -Pintegration-tests -pl spring-ai-spring-boot-autoconfigure
106+
```
107+
108+
### Documentation
109+
82110
To build the docs
83111
```shell
84112
./mvnw -pl spring-ai-docs antora

contributors.md

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
- 1993heqiang (1993heqiang)
2+
- Aleks Seovic (aseovic)
3+
- Alexandros Pappas (apappascs)
4+
- Anders Swanson (anders-swanson)
5+
- Benoit Moussaud (bmoussaud)
6+
- Christian Tzolov (tzolov)
7+
- coderamittad (coderamittad)
8+
- CodingLuizy (LuizyHub)
9+
- Craig Walls (habuma)
10+
- d050150 (d050150)
11+
- dafriz (dafriz)
12+
- devholic22 (devholic22)
13+
- Eddú Meléndez (eddumelendez)
14+
- Emmanuel Ferdman (emmanuel-ferdman)
15+
- Gareth Evans (garethjevans)
16+
- [GitHub Profile](https://github.com/)
17+
- [GitHub Profile](https://github.com/1213185851)
18+
- [GitHub Profile](https://github.com/1993heqiang)
19+
- [GitHub Profile](https://github.com/anders-swanson)
20+
- [GitHub Profile](https://github.com/apappascs)
21+
- [GitHub Profile](https://github.com/aseovic)
22+
- [GitHub Profile](https://github.com/bmoussaud)
23+
- [GitHub Profile](https://github.com/coderamittad)
24+
- [GitHub Profile](https://github.com/CodingNowPls)
25+
- [GitHub Profile](https://github.com/cowboysj)
26+
- [GitHub Profile](https://github.com/csuwl)
27+
- [GitHub Profile](https://github.com/cycle2zhou)
28+
- [GitHub Profile](https://github.com/d050150)
29+
- [GitHub Profile](https://github.com/dafriz)
30+
- [GitHub Profile](https://github.com/devholic22)
31+
- [GitHub Profile](https://github.com/eddumelendez)
32+
- [GitHub Profile](https://github.com/emmanuel-ferdman)
33+
- [GitHub Profile](https://github.com/garethjevans)
34+
- [GitHub Profile](https://github.com/habuma)
35+
- [GitHub Profile](https://github.com/ilayaperumalg)
36+
- [GitHub Profile](https://github.com/jee14)
37+
- [GitHub Profile](https://github.com/jitokim)
38+
- [GitHub Profile](https://github.com/JM-Lab)
39+
- [GitHub Profile](https://github.com/joshlong)
40+
- [GitHub Profile](https://github.com/jsilverman26)
41+
- [GitHub Profile](https://github.com/jxblum)
42+
- [GitHub Profile](https://github.com/keboom777)
43+
- [GitHub Profile](https://github.com/ks1ksi)
44+
- [GitHub Profile](https://github.com/liugddx)
45+
- [GitHub Profile](https://github.com/LuizyHub)
46+
- [GitHub Profile](https://github.com/making)
47+
- [GitHub Profile](https://github.com/mark.pollack)
48+
- [GitHub Profile](https://github.com/michael-simons)
49+
- [GitHub Profile](https://github.com/NerminKarapandzic)
50+
- [GitHub Profile](https://github.com/oganes.bozoyan)
51+
- [GitHub Profile](https://github.com/ricken07)
52+
- [GitHub Profile](https://github.com/sdeleuze)
53+
- [GitHub Profile](https://github.com/sobychacko)
54+
- [GitHub Profile](https://github.com/TheovanKraay)
55+
- [GitHub Profile](https://github.com/ThomasVitale)
56+
- [GitHub Profile](https://github.com/timosalm)
57+
- [GitHub Profile](https://github.com/tzolov)
58+
- [GitHub Profile](https://github.com/VictorZZZZ)
59+
- [GitHub Profile](https://github.com/Waischbrot)
60+
- [GitHub Profile](https://github.com/zhaojy01)
61+
- [GitHub Profile](https://github.com/zzzadruga)
62+
- heqiang (1993heqiang)
63+
- Ilayaperumal Gopinathan (ilayaperumalg)
64+
- Jemin Huh (JM-Lab)
65+
- jiseunghyeon (jee14)
66+
- jito (jitokim)
67+
- jitokim (jitokim)
68+
- John Blum (jxblum)
69+
- John Silverman (jsilverman26)
70+
- Josh Long (joshlong)
71+
- keboom (keboom777)
72+
- ks1ksi (ks1ksi)
73+
- leevh0908 (1213185851)
74+
- liugddx (liugddx)
75+
- Lukas ʕ•́ᴥ•̀ʔ (Waischbrot)
76+
- Mark Pollack (mark.pollack)
77+
- Michael J. Simons (michael-simons)
78+
- Nermin Karapandzic (NerminKarapandzic)
79+
- Nikolai Kulagin (zzzadruga)
80+
- ogbozoyan (oganes.bozoyan)
81+
- Oleksandr Klymenko ()
82+
- Ricken Bazolo (ricken07)
83+
- Sébastien Deleuze (sdeleuze)
84+
- shushengcoder (CodingNowPls)
85+
- Soby Chacko (sobychacko)
86+
- Sujin Kim (cowboysj)
87+
- Theo van Kraay (TheovanKraay)
88+
- Thomas Vitale (ThomasVitale)
89+
- Timo Salm (timosalm)
90+
- Toshiaki Maki (making)
91+
- VictorZalevski (VictorZZZZ)
92+
- wanglei (csuwl)
93+
- zhaojy01 (zhaojy01)
94+
- zhaojy (zhaojy01)
95+
- 周波 (cycle2zhou)

0 commit comments

Comments
 (0)