Skip to content

Commit 847c229

Browse files
authored
Merge pull request #37 from TheSoftwareDevGuild/fix-front-end-deplloyment
Use public envs from secrets
2 parents 8aa0a27 + bc27984 commit 847c229

4 files changed

Lines changed: 52 additions & 9 deletions

File tree

.env.example

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
# Database
22
DATABASE_URL=postgres://guild_user:guild_password@postgres:5432/guild_genesis
33

4-
# Frontend
4+
# WalletConnect Project ID
55
PUBLIC_WALLET_CONNECT_PROJECT_ID=your_project_id_here
6+
7+
# Backend API URL
68
PUBLIC_API_URL=http://localhost:3001
9+
10+
# Contract addresses (values for amoy)
11+
PUBLIC_BADGE_REGISTRY_ADDRESS=0xc142ab6b4688b7b81cb4cc8b305f517bba3bfd25
12+
PUBLIC_EAS_CONTRACT_ADDRESS=0xb101275a60d8bfb14529C421899aD7CA1Ae5B5Fc
13+
PUBLIC_ACTIVITY_TOKEN_ADDRESS=0x5db978bc69e54250f577ed343273508baea136cd
14+
PUBLIC_SCHEMA_ID=0xb167f07504166f717f2a2710dbcfbfdf8fad6e8c6128c1a7fa80768f61b1d0b2

.github/workflows/deploy-frontend.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,11 +52,23 @@ jobs:
5252
- name: Build and push (linux/amd64)
5353
env:
5454
HEROKU_FRONTEND_APP: ${{ secrets.HEROKU_FRONTEND_APP }}
55+
PUBLIC_WALLET_CONNECT_PROJECT_ID: ${{ secrets.PUBLIC_WALLET_CONNECT_PROJECT_ID }}
56+
PUBLIC_API_URL: ${{ secrets.PUBLIC_API_URL }}
57+
PUBLIC_BADGE_REGISTRY_ADDRESS: ${{ secrets.PUBLIC_BADGE_REGISTRY_ADDRESS }}
58+
PUBLIC_EAS_CONTRACT_ADDRESS: ${{ secrets.PUBLIC_EAS_CONTRACT_ADDRESS }}
59+
PUBLIC_ACTIVITY_TOKEN_ADDRESS: ${{ secrets.PUBLIC_ACTIVITY_TOKEN_ADDRESS }}
60+
PUBLIC_SCHEMA_ID: ${{ secrets.PUBLIC_SCHEMA_ID }}
5561
run: |
5662
docker buildx build \
5763
--platform linux/amd64 \
5864
-t registry.heroku.com/${HEROKU_FRONTEND_APP}/web \
5965
-f frontend/Dockerfile frontend \
66+
--build-arg PUBLIC_WALLET_CONNECT_PROJECT_ID="${PUBLIC_WALLET_CONNECT_PROJECT_ID}" \
67+
--build-arg PUBLIC_API_URL="${PUBLIC_API_URL}" \
68+
--build-arg PUBLIC_BADGE_REGISTRY_ADDRESS="${PUBLIC_BADGE_REGISTRY_ADDRESS}" \
69+
--build-arg PUBLIC_EAS_CONTRACT_ADDRESS="${PUBLIC_EAS_CONTRACT_ADDRESS}" \
70+
--build-arg PUBLIC_ACTIVITY_TOKEN_ADDRESS="${PUBLIC_ACTIVITY_TOKEN_ADDRESS}" \
71+
--build-arg PUBLIC_SCHEMA_ID="${PUBLIC_SCHEMA_ID}" \
6072
--push
6173
if: steps.changes.outputs.frontend == 'true'
6274

docker-compose.yml

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,24 @@ services:
2727
- postgres
2828

2929
frontend:
30-
build: ./frontend
31-
command: npm run dev -- --host 0.0.0.0 --port 4321
32-
ports:
33-
- "4321:4321"
30+
build:
31+
context: ./frontend
32+
dockerfile: Dockerfile
33+
args:
34+
PUBLIC_WALLET_CONNECT_PROJECT_ID: ${PUBLIC_WALLET_CONNECT_PROJECT_ID}
35+
PUBLIC_API_URL: ${PUBLIC_API_URL}
36+
PUBLIC_BADGE_REGISTRY_ADDRESS: ${PUBLIC_BADGE_REGISTRY_ADDRESS}
37+
PUBLIC_EAS_CONTRACT_ADDRESS: ${PUBLIC_EAS_CONTRACT_ADDRESS}
38+
PUBLIC_ACTIVITY_TOKEN_ADDRESS: ${PUBLIC_ACTIVITY_TOKEN_ADDRESS}
39+
PUBLIC_SCHEMA_ID: ${PUBLIC_SCHEMA_ID}
40+
env_file:
41+
- .env
3442
environment:
3543
HOST: 0.0.0.0
36-
PORT: 4321
37-
PUBLIC_WALLET_CONNECT_PROJECT_ID: ${PUBLIC_WALLET_CONNECT_PROJECT_ID}
38-
PUBLIC_API_URL: ${PUBLIC_API_URL}
44+
PORT: 3000
45+
NODE_ENV: production
46+
ports:
47+
- "3000:3000"
3948
depends_on:
4049
- backend
4150

frontend/Dockerfile

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,26 @@ RUN apk add --no-cache python3 make g++
44
COPY package*.json ./
55
RUN npm ci
66
COPY . .
7+
# Build-time public envs (injected via build args from CI)
8+
ARG PUBLIC_WALLET_CONNECT_PROJECT_ID
9+
ARG PUBLIC_API_URL
10+
ARG PUBLIC_BADGE_REGISTRY_ADDRESS
11+
ARG PUBLIC_EAS_CONTRACT_ADDRESS
12+
ARG PUBLIC_ACTIVITY_TOKEN_ADDRESS
13+
ARG PUBLIC_SCHEMA_ID
14+
15+
# Expose them to the build environment
16+
ENV PUBLIC_WALLET_CONNECT_PROJECT_ID=$PUBLIC_WALLET_CONNECT_PROJECT_ID \
17+
PUBLIC_API_URL=$PUBLIC_API_URL \
18+
PUBLIC_BADGE_REGISTRY_ADDRESS=$PUBLIC_BADGE_REGISTRY_ADDRESS \
19+
PUBLIC_EAS_CONTRACT_ADDRESS=$PUBLIC_EAS_CONTRACT_ADDRESS \
20+
PUBLIC_ACTIVITY_TOKEN_ADDRESS=$PUBLIC_ACTIVITY_TOKEN_ADDRESS \
21+
PUBLIC_SCHEMA_ID=$PUBLIC_SCHEMA_ID
722
RUN npm run build
823

924
FROM node:20-alpine
1025
WORKDIR /app
1126
ENV NODE_ENV=production
1227
COPY --from=build /app ./
13-
ENV HOST=0.0.0.0
1428
# keep CMD as:
1529
CMD ["node", "./dist/server/entry.mjs"]

0 commit comments

Comments
 (0)