name: openai-integration
on:
workflow_dispatch:
inputs:
debug:
description: "Enable verbose test output (--no-capture)"
required: false
default: "false"
type: choice
options:
- "false"
- "true"
permissions:
contents: read
env:
CARGO_TERM_COLOR: always
concurrency:
group: openai-integration
cancel-in-progress: false
jobs:
openai-integration:
name: OpenAI Integration Tests
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
- name: Check secrets
id: secrets-check
env:
API_KEY: ${{ secrets.ZEPH_OPENAI_API_KEY }}
run: |
if [ -z "$API_KEY" ]; then
echo "Skipping: ZEPH_OPENAI_API_KEY not configured"
echo "skip=true" >> "$GITHUB_OUTPUT"
else
echo "skip=false" >> "$GITHUB_OUTPUT"
fi
- uses: dtolnay/rust-toolchain@29eef336d9b2848a0b548edc03f92a220660cdb8 if: steps.secrets-check.outputs.skip == 'false'
- uses: taiki-e/install-action@6fb7e047ecef54aa053294f996a8feb3a5769baf if: steps.secrets-check.outputs.skip == 'false'
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 if: steps.secrets-check.outputs.skip == 'false'
with:
cache-targets: "false"
shared-key: "openai-integration"
- uses: mozilla-actions/sccache-action@9e7fa8a12102821edf02ca5dbea1acd0f89a2696 if: steps.secrets-check.outputs.skip == 'false'
- name: Run OpenAI ignored tests
if: steps.secrets-check.outputs.skip == 'false'
env:
ZEPH_OPENAI_API_KEY: ${{ secrets.ZEPH_OPENAI_API_KEY }}
RUSTC_WRAPPER: sccache
SCCACHE_GHA_ENABLED: "true"
run: |
EXTRA=""
if [ "${{ inputs.debug }}" = "true" ]; then
EXTRA="--no-capture"
fi
cargo nextest run \
--config-file .github/nextest.toml \
--cargo-profile ci \
--workspace \
--features full \
--run-ignored ignored-only \
-E 'package(zeph-llm) and test(openai)' \
$EXTRA