From d74520d1b6cfb37586a49ef98f2f55eb2aa2d30c Mon Sep 17 00:00:00 2001 From: Brad Davidson Date: Thu, 3 Oct 2024 07:33:34 -0600 Subject: [PATCH] Add to README and missing property for azure openAI integration test --- .../workflows/spring-ai-integration-tests.yml | 14 ++- README.md | 88 +++++++++++++++++++ 2 files changed, 99 insertions(+), 3 deletions(-) diff --git a/.github/workflows/spring-ai-integration-tests.yml b/.github/workflows/spring-ai-integration-tests.yml index 9e1189e..7f78cb1 100644 --- a/.github/workflows/spring-ai-integration-tests.yml +++ b/.github/workflows/spring-ai-integration-tests.yml @@ -41,6 +41,7 @@ jobs: env: AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }} AZURE_OPENAI_ENDPOINT: ${{ secrets.AZURE_OPENAI_ENDPOINT }} + # TODO AZURE_OPENAI_TRANSCRIPTION_DEPLOYMENT_NAME needs to be added when we have a value runs-on: ubuntu-latest steps: - name: Check environment @@ -254,11 +255,18 @@ jobs: test-autoconfigure: env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + # TODO: uncomment keys that have values +# AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} +# AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }} AZURE_OPENAI_ENDPOINT: ${{ secrets.AZURE_OPENAI_ENDPOINT }} - # TODO: add keys to add models +# AZURE_OPENAI_TRANSCRIPTION_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_TRANSCRIPTION_DEPLOYMENT_NAME }} +# ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} +# HUGGINGFACE_API_KEY: ${{ secrets.HUGGINGFACE_API_KEY }} +# HUGGINGFACE_CHAT_URL: ${{ secrets.HUGGINGFACE_CHAT_URL }} +# MISTRAL_AI_API_KEY: ${{ secrets.MISTRAL_AI_API_KEY }} +# OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} +# STABILITYAI_API_KEY: ${{ secrets.STABILITYAI_API_KEY }} runs-on: ubuntu-latest steps: - name: Check environment diff --git a/README.md b/README.md index e42a5e9..72aeee8 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,91 @@ # spring-ai-integration-tests This repository contains workflows that define the integration test automation for the Spring AI project. + +## Adding secrets +All environment variables are stored in Github secrets. + +To add or change a secret: + +open https://github.com/spring-projects/spring-ai-integration-tests in your browser. + +if you have permissions you will see "Setting" in the toolbar on that page + +Setting -> Security :: Secrets and variables -> Actions + +Click 'New repository secret' to add another environment variable for the integration test pipeline. + +## Basic Integration Test Job + +Job name and runs in a ubuntu container: +```yaml + test-anthropic: + runs-on: ubuntu-latest +``` + +Environment variables needed by the Integration tests: +```yaml + env: + ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} +``` + +The standard steps to: +- check for the environment variables in the `env:` section, if any environment variables are missing or do not have a value the job will be failed +- checkout che springAI source +- install java 17 +- compile the springAI code without running tests + +```yaml + steps: + - name: Check environment + uses: actions/github-script@v7 + with: + script: | + const env = ${{ toJson(env) }} + const emptyEnvEntries = Object.entries(env).filter(e => e[1].length === 0) + emptyEnvEntries.length > 0 && + core.setFailed('Missing value for environment variable(s): ' + emptyEnvEntries.map(e => e[0]).join(', ')); + + - name: Check out repository code + uses: actions/checkout@v4 + with: + repository: spring-projects/spring-ai + ref: refs/heads/main + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + cache: maven + - name: Install + run: ./mvnw install -DskipTests +``` + +Then customize this step to execute the models integrations tests +```yaml + - name: Run Anthropic model tests + run: ./mvnw -pl models/spring-ai-anthropic -Pintegration-tests -Dfailsafe.rerunFailingTestsCount=2 verify +``` + +## Autoconfiguration Test +The autoconfiguration test runs for any of the properties in the `env` section +and when they have values the environment variable needs to be uncommented to be +included in the autoconfiguraton test + +```yaml + test-autoconfigure: + env: + # TODO: uncomment keys that have values +# AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} +# AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AZURE_OPENAI_API_KEY: ${{ secrets.AZURE_OPENAI_API_KEY }} + AZURE_OPENAI_ENDPOINT: ${{ secrets.AZURE_OPENAI_ENDPOINT }} +# AZURE_OPENAI_TRANSCRIPTION_DEPLOYMENT_NAME: ${{ secrets.AZURE_OPENAI_TRANSCRIPTION_DEPLOYMENT_NAME }} +# ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} +# HUGGINGFACE_API_KEY: ${{ secrets.HUGGINGFACE_API_KEY }} +# HUGGINGFACE_CHAT_URL: ${{ secrets.HUGGINGFACE_CHAT_URL }} +# MISTRAL_AI_API_KEY: ${{ secrets.MISTRAL_AI_API_KEY }} +# OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} +# STABILITYAI_API_KEY: ${{ secrets.STABILITYAI_API_KEY }} + runs-on: ubuntu-latest +``` \ No newline at end of file