@@ -26,15 +26,13 @@ jobs:
2626 server-username : MAVEN_USERNAME
2727 server-password : MAVEN_PASSWORD
2828
29- # Verify Maven configuration
30- - name : Debug Maven Configuration
29+ - name : Verify Maven Configuration
3130 run : |
32- echo "Verifying Maven configuration ..."
31+ echo "Checking Maven setup ..."
3332 echo "JAVA_HOME: $JAVA_HOME"
3433 mvn -version
3534 ls -la ~/.m2 || true
3635
37- # Create local Maven settings with credentials
3836 - name : Setup Maven Settings
3937 run : |
4038 mkdir -p ~/.m2
@@ -49,55 +47,17 @@ jobs:
4947 <password>${{ secrets.MAVEN_PASSWORD }}</password>
5048 </server>
5149 </servers>
52- <mirrors>
53- <mirror>
54- <id>central</id>
55- <name>Maven Central</name>
56- <url>https://repo1.maven.org/maven2/</url>
57- <mirrorOf>central</mirrorOf>
58- </mirror>
59- </mirrors>
60- <profiles>
61- <profile>
62- <id>default</id>
63- <repositories>
64- <repository>
65- <id>central</id>
66- <url>https://repo1.maven.org/maven2</url>
67- <releases>
68- <enabled>true</enabled>
69- </releases>
70- <snapshots>
71- <enabled>false</enabled>
72- </snapshots>
73- </repository>
74- </repositories>
75- </profile>
76- </profiles>
77- <activeProfiles>
78- <activeProfile>default</activeProfile>
79- </activeProfiles>
8050 </settings>' > ~/.m2/settings.xml
8151
82- # Build with Maven using explicit credentials
8352 - name : Build with Maven
8453 env :
8554 MAVEN_USERNAME : ${{ secrets.MAVEN_USERNAME }}
8655 MAVEN_PASSWORD : ${{ secrets.MAVEN_PASSWORD }}
8756 run : |
88- echo "Starting Maven build..."
89- mvn -B -X -s ~/.m2/settings.xml clean install -DskipTests || {
90- echo "Maven build failed. Checking settings..."
91- ls -la ~/.m2
92- echo "Current directory contents:"
93- ls -la
94- exit 1
95- }
57+ mvn -B -s ~/.m2/settings.xml clean install -DskipTests
9658
97- # Verify build artifacts
9859 - name : Verify Build Artifacts
9960 run : |
100- echo "Checking build artifacts..."
10161 for service in api-gateway eureka-server recommendation-service statistics-service user-tracking-service; do
10262 if [ -f "$service/target/$service-1.0-SNAPSHOT.jar" ]; then
10363 echo "$service build successful"
@@ -107,72 +67,31 @@ jobs:
10767 fi
10868 done
10969
110- # Set up Docker buildx
11170 - name : Set up Docker Buildx
11271 uses : docker/setup-buildx-action@v1
11372
114- # Verify Docker setup
115- - name : Verify Docker Configuration
116- run : |
117- echo "Docker version:"
118- docker version
119- echo "Docker info:"
120- docker info
121-
122- # Login to Oracle Container Registry
12373 - name : Log in to Oracle Container Registry
12474 uses : docker/login-action@v1
12575 with :
12676 registry : ${{ secrets.OCI_REGISTRY }}
12777 username : ${{ secrets.OCI_USERNAME }}
12878 password : ${{ secrets.OCI_AUTH_TOKEN }}
12979
130- # Build and push Docker images with better error handling
131- - name : Build and push Docker images
80+ - name : Build and Push Docker Images
13281 env :
13382 REGISTRY : ${{ secrets.OCI_REGISTRY }}
13483 NAMESPACE : ${{ secrets.OCI_NAMESPACE }}
13584 run : |
136- echo "Building and pushing Docker images..."
137-
138- # Function to build and push an image
139- build_and_push() {
140- local service=$1
141- echo "Processing $service..."
142-
143- # Build image
144- echo "Building $service image..."
145- docker build -t ${REGISTRY}/${NAMESPACE}/$service:latest -f $service/Dockerfile . || {
146- echo "Error building $service image"
147- return 1
148- }
149-
150- # Push image
151- echo "Pushing $service image..."
152- docker push ${REGISTRY}/${NAMESPACE}/$service:latest || {
153- echo "Error pushing $service image"
154- return 1
155- }
156-
157- echo "$service successfully built and pushed"
158- return 0
159- }
160-
161- # Process each service
16285 services=("api-gateway" "eureka-server" "recommendation-service" "statistics-service" "user-tracking-service")
16386 for service in "${services[@]}"; do
164- build_and_push $service || {
165- echo "Failed to process $service"
166- exit 1
167- }
87+ echo "Building and pushing $service..."
88+ docker build -t ${REGISTRY}/${NAMESPACE}/$service:latest -f $service/Dockerfile .
89+ docker push ${REGISTRY}/${NAMESPACE}/$service:latest
16890 done
16991
170- # Logout from Docker registry
17192 - name : Log out from Oracle Container Registry
172- if : always()
173- run : |
174- echo "Logging out from Docker registry..."
175- docker logout ${{ secrets.OCI_REGISTRY }}
93+ if : ${{ always() }}
94+ run : docker logout ${{ secrets.OCI_REGISTRY }}
17695
17796 deploy :
17897 runs-on : ubuntu-latest
@@ -187,23 +106,20 @@ jobs:
187106 - name : Checkout code
188107 uses : actions/checkout@v2
189108
190- # Login to Oracle Container Registry for deployment
191109 - name : Log in to Oracle Container Registry
192110 uses : docker/login-action@v1
193111 with :
194112 registry : ${{ secrets.OCI_REGISTRY }}
195113 username : ${{ secrets.OCI_USERNAME }}
196114 password : ${{ secrets.OCI_AUTH_TOKEN }}
197115
198- # Verify VM connection before deployment
199116 - name : Verify VM Connection
200117 env :
201118 ORACLE_VM_IP : ${{ secrets.ORACLE_VM_IP }}
202119 run : |
203- echo "Verifying VM connection..."
204120 echo "${{ secrets.SSH_PRIVATE_KEY }}" > ssh_key.pem
205121 chmod 600 ssh_key.pem
206- ssh -o StrictHostKeyChecking=no -o ConnectTimeout=10 - i ssh_key.pem opc@${ORACLE_VM_IP} echo "VM connection successful" || {
122+ ssh -o StrictHostKeyChecking=no -i ssh_key.pem opc@${ORACLE_VM_IP} echo "VM connection successful" || {
207123 echo "Failed to connect to VM"
208124 exit 1
209125 }
@@ -212,46 +128,19 @@ jobs:
212128 env :
213129 ORACLE_VM_IP : ${{ secrets.ORACLE_VM_IP }}
214130 run : |
215- echo "Starting deployment..."
216131 echo "${{ secrets.SSH_PRIVATE_KEY }}" > ssh_key.pem
217132 chmod 600 ssh_key.pem
218133 ssh -o StrictHostKeyChecking=no -i ssh_key.pem opc@${ORACLE_VM_IP} << 'EOF'
219134 echo "Deploying to VM..."
220- cd ~/music-analytics/vm-deploy || {
221- echo "Failed to change directory"
222- exit 1
223- }
224-
225- echo "Logging into Docker registry..."
226- docker login ${REGISTRY} -u ${OCI_USERNAME} -p ${OCI_AUTH_TOKEN} || {
227- echo "Docker login failed"
228- exit 1
229- }
230-
231- echo "Pulling latest images..."
232- docker-compose pull || {
233- echo "Failed to pull images"
234- docker logout ${REGISTRY}
235- exit 1
236- }
237-
238- echo "Starting services..."
239- docker-compose up -d || {
240- echo "Failed to start services"
241- docker logout ${REGISTRY}
242- exit 1
243- }
244-
245- echo "Logging out from Docker registry..."
135+ cd ~/music-analytics/vm-deploy || exit 1
136+ docker login ${REGISTRY} -u ${OCI_USERNAME} -p ${OCI_AUTH_TOKEN} || exit 1
137+ docker-compose pull || { docker logout ${REGISTRY}; exit 1; }
138+ docker-compose up -d || { docker logout ${REGISTRY}; exit 1; }
246139 docker logout ${REGISTRY}
247-
248140 echo "Deployment completed successfully"
249- EOF
250- rm -f ssh_key.pem # Clean up sensitive files
141+ EOF
142+ rm -f ssh_key.pem
251143
252- # Logout from Docker registry
253144 - name : Log out from Oracle Container Registry
254- if : always()
255- run : |
256- echo "Final cleanup: Logging out from Docker registry..."
257- docker logout ${{ secrets.OCI_REGISTRY }}
145+ if : ${{ always() }}
146+ run : docker logout ${{ secrets.OCI_REGISTRY }}
0 commit comments