Remove Ollama support and migrate to LM Studio only #35
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # WebShop+ CI/CD Workflow | |
| # | |
| # This workflow: | |
| # - Runs tests on pull requests | |
| # - Builds and publishes Docker images on push to main | |
| # - Publishes to GitHub Container Registry (ghcr.io) | |
| name: CI/CD | |
| on: | |
| push: | |
| branches: [main] | |
| paths: | |
| - 'green_agent/**' | |
| - 'purple_agent/**' | |
| - 'docker-compose.yml' | |
| - '.github/workflows/publish.yml' | |
| pull_request: | |
| branches: [main] | |
| paths: | |
| - 'green_agent/**' | |
| - 'purple_agent/**' | |
| env: | |
| REGISTRY: ghcr.io | |
| GREEN_IMAGE: ghcr.io/${{ github.repository_owner }}/webshop-plus-green | |
| PURPLE_IMAGE: ghcr.io/${{ github.repository_owner }}/webshop-plus-purple | |
| jobs: | |
| # Run tests for both agents | |
| test: | |
| name: Test | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| agent: [green_agent, purple_agent] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: '3.11' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v4 | |
| - name: Install dependencies | |
| working-directory: ${{ matrix.agent }} | |
| run: uv sync --dev | |
| - name: Run tests | |
| working-directory: ${{ matrix.agent }} | |
| run: uv run pytest tests/ -v --tb=short | |
| env: | |
| LLM_MODEL: mock | |
| PYTHONPATH: . | |
| # Build and push Docker images | |
| build-and-push: | |
| name: Build and Push | |
| runs-on: ubuntu-latest | |
| needs: test | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| permissions: | |
| contents: read | |
| packages: write | |
| strategy: | |
| matrix: | |
| include: | |
| - agent: green_agent | |
| image_name: webshop-plus-green | |
| - agent: purple_agent | |
| image_name: webshop-plus-purple | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Log in to Container Registry | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ${{ env.REGISTRY }} | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Extract metadata | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: ${{ env.REGISTRY }}/${{ github.repository_owner }}/${{ matrix.image_name }} | |
| tags: | | |
| type=sha,prefix= | |
| type=raw,value=latest,enable={{is_default_branch}} | |
| type=semver,pattern={{version}},enable=${{ startsWith(github.ref, 'refs/tags/v') }} | |
| - name: Build and push | |
| uses: docker/build-push-action@v6 | |
| with: | |
| context: ./${{ matrix.agent }} | |
| file: ./${{ matrix.agent }}/Dockerfile | |
| push: true | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max | |
| platforms: linux/amd64,linux/arm64 | |
| # Create release on tag | |
| release: | |
| name: Create Release | |
| runs-on: ubuntu-latest | |
| needs: build-and-push | |
| if: startsWith(github.ref, 'refs/tags/v') | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| generate_release_notes: true | |
| body: | | |
| ## Docker Images | |
| Pull the latest images: | |
| ```bash | |
| docker pull ghcr.io/${{ github.repository_owner }}/webshop-plus-green:${{ github.ref_name }} | |
| docker pull ghcr.io/${{ github.repository_owner }}/webshop-plus-purple:${{ github.ref_name }} | |
| ``` | |
| Or use docker-compose: | |
| ```bash | |
| docker compose up -d | |
| ``` |