-
Notifications
You must be signed in to change notification settings - Fork 5
55 lines (47 loc) · 1.42 KB
/
build.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
name: Build and Push Container
on:
workflow_dispatch:
push:
branches: [ "main" ]
paths:
- "Dockerfile.production"
- "compose.prod.yaml"
- "requirements.txt"
- assets/
- reflex_gpt/
- rxconfig.py
- alembic.ini
- alembic/
- .github/workflows/build.yaml
env:
# DOCKER_IMAGE: codingforentrepreneurs/reflex-gpt
# uncomment if using
DOCKER_IMAGE: ${{ secrets.DOCKERHUB_REPO }}
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
# For Reflex to build a container,
# injecting your environment variables at
# container build time is often required.
- name: Create build env file
run: |
cat << EOF > .build-env
OPENAI_API_KEY=${{ secrets.OPENAI_API_KEY }}
DATABASE_URL=${{ secrets.DATABASE_URL }}
EOF
- name: Build and push
run: |
docker build -f Dockerfile.production -t ${{ env.DOCKER_IMAGE }}:latest .
docker tag ${{ env.DOCKER_IMAGE }}:latest ${{ env.DOCKER_IMAGE }}:${{ github.sha }}
docker push ${{ env.DOCKER_IMAGE }} --all-tags
- name: Remove build env file
run: rm .build-env