Skip to content

Commit e178038

Browse files
committed
added retrieval-chain workflow
1 parent c24c5b0 commit e178038

File tree

2 files changed

+128
-0
lines changed

2 files changed

+128
-0
lines changed

.github/workflows/integration_test.yml

Whitespace-only changes.
Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
name: Retrieval Chain CI/CD
2+
3+
on:
4+
push:
5+
branches: [ main, develop ]
6+
paths:
7+
- 'samples/retrieval-chain/**'
8+
pull_request:
9+
branches: [ main ]
10+
paths:
11+
- 'samples/retrieval-chain/**'
12+
workflow_dispatch:
13+
inputs:
14+
index_name:
15+
description: 'Index name to query'
16+
required: false
17+
default: 'ECCN'
18+
query:
19+
description: 'Query to search for'
20+
required: false
21+
default: 'What is the ECCN for a laptop?'
22+
k:
23+
description: 'Number of results to return'
24+
required: false
25+
default: '3'
26+
27+
env:
28+
REGISTRY: ghcr.io
29+
IMAGE_NAME: ${{ github.repository }}/retrieval-chain
30+
31+
jobs:
32+
test-retrieval-chain:
33+
runs-on: ubuntu-latest
34+
35+
steps:
36+
- name: Checkout code
37+
uses: actions/checkout@v4
38+
39+
- name: Change to retrieval-chain directory
40+
run: cd samples/retrieval-chain
41+
42+
- name: Set up Docker Buildx
43+
uses: docker/setup-buildx-action@v3
44+
45+
- name: Build Docker image
46+
run: |
47+
cd samples/retrieval-chain
48+
docker build -t retrieval-chain:test \
49+
--build-arg CLIENT_ID="${{ secrets.UIPATH_CLIENT_ID }}" \
50+
--build-arg CLIENT_SECRET="${{ secrets.UIPATH_CLIENT_SECRET }}" \
51+
--build-arg BASE_URL="${{ secrets.UIPATH_BASE_URL }}" \
52+
.
53+
54+
- name: Test retrieval chain with default parameters
55+
run: |
56+
cd samples/retrieval-chain
57+
docker run --rm \
58+
-e CLIENT_ID="${{ secrets.UIPATH_CLIENT_ID }}" \
59+
-e CLIENT_SECRET="${{ secrets.UIPATH_CLIENT_SECRET }}" \
60+
-e BASE_URL="${{ secrets.UIPATH_BASE_URL }}" \
61+
retrieval-chain:test
62+
63+
- name: Test retrieval chain with custom parameters
64+
if: github.event_name == 'workflow_dispatch'
65+
run: |
66+
cd samples/retrieval-chain
67+
docker run --rm \
68+
-e CLIENT_ID="${{ secrets.UIPATH_CLIENT_ID }}" \
69+
-e CLIENT_SECRET="${{ secrets.UIPATH_CLIENT_SECRET }}" \
70+
-e BASE_URL="${{ secrets.UIPATH_BASE_URL }}" \
71+
retrieval-chain:test \
72+
/app/startup.sh --index_name "${{ github.event.inputs.index_name }}" --query "${{ github.event.inputs.query }}" --k ${{ github.event.inputs.k }}
73+
74+
build-and-push:
75+
runs-on: ubuntu-latest
76+
needs: test-retrieval-chain
77+
if: github.ref == 'refs/heads/main'
78+
permissions:
79+
contents: read
80+
packages: write
81+
82+
steps:
83+
- name: Checkout code
84+
uses: actions/checkout@v4
85+
86+
- name: Log in to Container Registry
87+
uses: docker/login-action@v3
88+
with:
89+
registry: ${{ env.REGISTRY }}
90+
username: ${{ github.actor }}
91+
password: ${{ secrets.GITHUB_TOKEN }}
92+
93+
- name: Extract metadata
94+
id: meta
95+
uses: docker/metadata-action@v5
96+
with:
97+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
98+
tags: |
99+
type=ref,event=branch
100+
type=ref,event=pr
101+
type=sha,prefix=sha-
102+
type=raw,value=latest,enable={{is_default_branch}}
103+
104+
- name: Build and push Docker image
105+
uses: docker/build-push-action@v5
106+
with:
107+
context: ./samples/retrieval-chain
108+
push: true
109+
tags: ${{ steps.meta.outputs.tags }}
110+
labels: ${{ steps.meta.outputs.labels }}
111+
build-args: |
112+
CLIENT_ID=${{ secrets.UIPATH_CLIENT_ID }}
113+
CLIENT_SECRET=${{ secrets.UIPATH_CLIENT_SECRET }}
114+
BASE_URL=${{ secrets.UIPATH_BASE_URL }}
115+
116+
deploy:
117+
runs-on: ubuntu-latest
118+
needs: build-and-push
119+
if: github.ref == 'refs/heads/main'
120+
environment: production
121+
122+
steps:
123+
- name: Deploy to production
124+
run: |
125+
echo "🚀 Deploying retrieval chain to production..."
126+
echo "Image: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest"
127+
echo "Add your deployment commands here"
128+
# Example: Deploy to Azure Container Instances, AWS ECS, or Kubernetes

0 commit comments

Comments
 (0)