Skip to content

Commit f7a1f15

Browse files
feat: add image build workflow
1 parent a72adcc commit f7a1f15

File tree

2 files changed

+104
-1
lines changed

2 files changed

+104
-1
lines changed

.github/workflows/test-build.yml

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
name: Create and publish a Docker image
2+
3+
on:
4+
workflow-dispatch:
5+
pull-request:
6+
branches: ['main']
7+
8+
env:
9+
REGISTRY: ghcr.io
10+
IMAGE_NAME: ${{ github.repository }}
11+
12+
jobs:
13+
build-and-push-image:
14+
runs-on: ubuntu-latest
15+
16+
permissions:
17+
contents: read
18+
packages: write
19+
attestations: write
20+
id-token: write
21+
22+
steps:
23+
- name: Checkout repository
24+
uses: actions/checkout@v4
25+
26+
- name: Extract metadata (tags, labels) for Docker
27+
id: meta
28+
uses: docker/metadata-action@v5
29+
with:
30+
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
31+
tags: |
32+
type=ref,event=branch
33+
type=sha,format=short
34+
type=raw,value=latest,enable=${{ github.ref == 'refs/heads/main' }}
35+
36+
- name: Log in to the Container registry
37+
uses: docker/login-action@v3
38+
with:
39+
registry: ${{ env.REGISTRY }}
40+
username: ${{ github.actor }}
41+
password: ${{ secrets.GITHUB_TOKEN }}
42+
43+
- name: Set up Docker Buildx
44+
uses: docker/setup-buildx-action@v3
45+
46+
- name: Create config file
47+
run: |
48+
mkdir -p packages/agents
49+
cat > packages/agents/config.toml << 'EOL'
50+
[API_KEYS]
51+
OPENAI = "${{ secrets.OPENAI }}"
52+
ANTHROPIC = "${{ secrets.ANTHROPIC }}"
53+
GEMINI = "${{ secrets.GEMINI }}"
54+
55+
[VECTOR_DB]
56+
POSTGRES_USER = "${{ secrets.POSTGRES_USER }}"
57+
POSTGRES_HOST = "postgres"
58+
POSTGRES_ROOT_DB = "${{ secrets.POSTGRES_ROOT_DB }}"
59+
POSTGRES_PASSWORD = "${{ secrets.POSTGRES_PASSWORD }}"
60+
POSTGRES_PORT = "${{ secrets.POSTGRES_PORT }}"
61+
62+
[GENERAL]
63+
PORT = 3001
64+
SIMILARITY_MEASURE = "cosine"
65+
66+
[HOSTED_MODE]
67+
DEFAULT_CHAT_PROVIDER = "gemini"
68+
DEFAULT_CHAT_MODEL = "Gemini Flash 2.5"
69+
DEFAULT_FAST_CHAT_PROVIDER = "gemini"
70+
DEFAULT_FAST_CHAT_MODEL = "Gemini Flash 2.5"
71+
DEFAULT_EMBEDDING_PROVIDER = "openai"
72+
DEFAULT_EMBEDDING_MODEL = "Text embedding 3 large"
73+
74+
[VERSIONS]
75+
STARKNET_FOUNDRY = "0.37.0"
76+
SCARB = "2.9.2"
77+
EOL
78+
79+
- name: Create env file
80+
run: |
81+
cat > .env << 'EOL'
82+
POSTGRES_USER = "${{ secrets.POSTGRES_USER }}"
83+
POSTGRES_HOST = "localhost"
84+
POSTGRES_ROOT_DB = "${{ secrets.POSTGRES_ROOT_DB }}"
85+
POSTGRES_PASSWORD = "${{ secrets.POSTGRES_PASSWORD }}"
86+
POSTGRES_PORT = "${{ secrets.POSTGRES_PORT }}"
87+
EOL
88+
89+
- name: Create backend env file
90+
run: |
91+
touch packages/backend/.env
92+
93+
- name: Build and push Docker image
94+
id: push
95+
uses: docker/build-push-action@v6
96+
with:
97+
context: .
98+
push: true
99+
file: ./backend.dockerfile
100+
tags: ${{ steps.meta.outputs.tags }}
101+
labels: ${{ steps.meta.outputs.labels }}
102+
cache-from: type=gha
103+
cache-to: type=gha,mode=max

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ yarn-error.log
2020
.env.test.local
2121
.env.production.local
2222

23-
packages/ui/.env
23+
packages/agents/.env.test
2424

2525
# Config files
2626
config.toml

0 commit comments

Comments
 (0)