Skip to content

OpenAPI spec release #4

OpenAPI spec release

OpenAPI spec release #4

Workflow file for this run

name: Release Docker Image
on:
release:
types: [published]
permissions:
contents: read
packages: write
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Extract release version
id: version
run: |
echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
file: ./Dockerfile
push: true
tags: |
${{ secrets.DOCKER_USERNAME }}/memoryalpha-rag-api:latest
${{ secrets.DOCKER_USERNAME }}/memoryalpha-rag-api:${{ steps.version.outputs.version }}
platforms: linux/amd64
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Update Docker Hub description
continue-on-error: true
uses: peter-evans/dockerhub-description@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: ${{ secrets.DOCKER_USERNAME }}/memoryalpha-rag-api
short-description: "REST API for RAG over Star Trek MemoryAlpha database using Ollama"
readme-filepath: ./README.md
- name: Generate OpenAPI spec
run: |
docker compose up -d lcars
# Wait for API to be ready
timeout 120 bash -c 'until curl -f http://localhost:8000/memoryalpha/health > /dev/null 2>&1; do sleep 5; echo "Waiting for API..."; done'
# Download OpenAPI spec
curl -s http://localhost:8000/openapi.json -o memoryalpha-rag-api-spec.json
docker compose down -v
- name: Upload OpenAPI spec to release
uses: softprops/action-gh-release@v2
with:
files: memoryalpha-rag-api-spec.json
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}