Skip to content

Commit b30457f

Browse files
committed
feat: update deployment workflow and frontend API configuration for environment variables
1 parent e110859 commit b30457f

File tree

3 files changed

+34
-12
lines changed

3 files changed

+34
-12
lines changed

.github/workflows/deploy.yml

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,16 @@ on:
99
- main
1010
workflow_dispatch:
1111

12+
env:
13+
REGISTRY: ${{ secrets.OCI_REGISTRY }}
14+
OCI_USERNAME: ${{ secrets.OCI_USERNAME }}
15+
OCI_AUTH_TOKEN: ${{ secrets.OCI_AUTH_TOKEN }}
16+
VM_IP: ${{ secrets.VM_IP }}
17+
1218
jobs:
1319
build:
1420
runs-on: ubuntu-latest
1521

16-
env:
17-
REGISTRY: ${{ secrets.OCI_REGISTRY }}
18-
OCI_USERNAME: ${{ secrets.OCI_USERNAME }}
19-
OCI_AUTH_TOKEN: ${{ secrets.OCI_AUTH_TOKEN }}
20-
2122
steps:
2223
- name: Checkout code
2324
uses: actions/checkout@v2
@@ -142,6 +143,15 @@ jobs:
142143
if: always()
143144
run: docker logout ${{ secrets.OCI_REGISTRY }}
144145

146+
- name: Build frontend
147+
env:
148+
REACT_APP_API_BASE_URL: http://${{ secrets.VM_IP }}:8080
149+
run: |
150+
cd frontend
151+
npm ci
152+
npm run build
153+
cd ..
154+
145155
deploy:
146156
runs-on: ubuntu-latest
147157
needs: build
@@ -161,29 +171,38 @@ jobs:
161171
- name: Log in to Oracle Container Registry
162172
uses: docker/login-action@v2
163173
with:
164-
165174
registry: ${{ secrets.OCI_REGISTRY }}
166175
username: ${{ secrets.OCI_USERNAME }}
167176
password: ${{ secrets.OCI_AUTH_TOKEN }}
168177

169178
- name: Verify VM Connection
170179
env:
171-
ORACLE_VM_IP: ${{ secrets.ORACLE_VM_IP }}
180+
ORACLE_VM_IP: ${{ secrets.VM_IP }}
172181
run: |
173182
echo "Verifying VM connection..."
174183
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ssh_key.pem
175184
chmod 600 ssh_key.pem
176185
ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 -i ssh_key.pem opc@${ORACLE_VM_IP} echo "VM connection successful" || exit 1
177186
178187
- name: Deploy to Oracle VM
188+
env:
189+
ORACLE_VM_IP: ${{ secrets.VM_IP }}
190+
SSH_KEY: ${{ secrets.SSH_PRIVATE_KEY }}
191+
DOCKER_REGISTRY: ${{ secrets.OCI_REGISTRY }}
192+
DOCKER_USERNAME: ${{ secrets.OCI_USERNAME }}
193+
DOCKER_PASSWORD: ${{ secrets.OCI_AUTH_TOKEN }}
179194
run: |
180-
echo "Starting deployment..."
181-
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ssh_key.pem
195+
echo "$SSH_KEY" > ssh_key.pem
182196
chmod 600 ssh_key.pem
183197
184-
ssh -o StrictHostKeyChecking=no -i ssh_key.pem opc@${{ secrets.ORACLE_VM_IP }} << 'ENDSSH'
198+
ssh -o StrictHostKeyChecking=no -i ssh_key.pem opc@${ORACLE_VM_IP} << 'ENDSSH'
185199
cd ~/music-analytics/vm-deploy || exit 1
186200
echo "${{ secrets.OCI_AUTH_TOKEN }}" | docker login ${{ secrets.OCI_REGISTRY }} -u ${{ secrets.OCI_USERNAME }} --password-stdin || exit 1
201+
202+
# Set environment variables for docker-compose
203+
export VM_IP=${{ secrets.VM_IP }}
204+
export DOCKER_REGISTRY=${{ secrets.OCI_REGISTRY }}
205+
187206
docker-compose pull || exit 1
188207
docker-compose up -d || exit 1
189208
docker logout ${{ secrets.OCI_REGISTRY }}

frontend/src/api.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import axios from 'axios';
22

3-
// Create axios instance with base URL from environment variable
4-
const API_BASE_URL = process.env.REACT_APP_API_BASE_URL || 'http://localhost:8080';
3+
// Get the API base URL from environment variables
4+
const API_BASE_URL = process.env.REACT_APP_API_BASE_URL || window.location.origin.replace(/:\d+$/, ':8080');
55

66
const api = axios.create({
77
baseURL: API_BASE_URL,

replacements.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
79.76.48.165=>${VM_IP}
2+
http://79.76.48.165=>http://${VM_IP}
3+
https://79.76.48.165=>https://${VM_IP}

0 commit comments

Comments
 (0)