@@ -18,38 +18,73 @@ jobs:
1818 with :
1919 java-version : ' 17'
2020 distribution : ' temurin'
21+ server-id : central # This will create settings.xml with these credentials
22+ server-username : MAVEN_USERNAME
23+ server-password : MAVEN_PASSWORD
2124
22- - name : Configure Maven Settings
25+ # Create local Maven settings with credentials
26+ - name : Setup Maven Settings
2327 run : |
24- echo "<settings><servers><server><id>central</id><username>${{ secrets.MAVEN_USERNAME }}</username><password>${{ secrets.MAVEN_PASSWORD }}</password></server></servers><mirrors><mirror><id>central</id><url>https://repo1.maven.org/maven2</url><mirrorOf>*</mirrorOf></mirror></mirrors></settings>" > ~/.m2/settings.xml
28+ mkdir -p ~/.m2
29+ echo "<?xml version='1.0' encoding='UTF-8'?>
30+ <settings xsi:schemaLocation='http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd'
31+ xmlns='http://maven.apache.org/SETTINGS/1.0.0'
32+ xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
33+ <servers>
34+ <server>
35+ <id>central</id>
36+ <username>${{ secrets.MAVEN_USERNAME }}</username>
37+ <password>${{ secrets.MAVEN_PASSWORD }}</password>
38+ </server>
39+ </servers>
40+ <mirrors>
41+ <mirror>
42+ <id>central</id>
43+ <name>Maven Central</name>
44+ <url>https://repo1.maven.org/maven2/</url>
45+ <mirrorOf>central</mirrorOf>
46+ </mirror>
47+ </mirrors>
48+ </settings>" > ~/.m2/settings.xml
2549
50+ # Build with Maven using explicit credentials
2651 - name : Build with Maven
2752 env :
2853 MAVEN_USERNAME : ${{ secrets.MAVEN_USERNAME }}
2954 MAVEN_PASSWORD : ${{ secrets.MAVEN_PASSWORD }}
3055 run : |
31- mvn -B -Dmaven.repo.local=. /.m2/repository clean install -DskipTests
56+ mvn -B -s ~ /.m2/settings.xml clean install -DskipTests
3257
58+ # Set up Docker buildx
3359 - name : Set up Docker Buildx
3460 uses : docker/setup-buildx-action@v1
3561
62+ # Login to Docker registry (Oracle Container Registry)
3663 - name : Log in to Oracle Container Registry
3764 uses : docker/login-action@v1
3865 with :
3966 registry : ${{ secrets.OCI_REGISTRY }}
4067 username : ${{ secrets.OCI_USERNAME }}
4168 password : ${{ secrets.OCI_AUTH_TOKEN }}
4269
70+ # Build and push Docker images with explicit environment variables
4371 - name : Build and push Docker images
4472 env :
4573 REGISTRY : ${{ secrets.OCI_REGISTRY }}
4674 NAMESPACE : ${{ secrets.OCI_NAMESPACE }}
75+ OCI_USERNAME : ${{ secrets.OCI_USERNAME }}
76+ OCI_AUTH_TOKEN : ${{ secrets.OCI_AUTH_TOKEN }}
4777 run : |
78+ # Verify Docker login state
79+ docker login ${REGISTRY} -u ${OCI_USERNAME} -p ${OCI_AUTH_TOKEN}
80+
81+ # Build and push images
4882 docker build -t ${REGISTRY}/${NAMESPACE}/api-gateway:latest -f api-gateway/Dockerfile .
4983 docker build -t ${REGISTRY}/${NAMESPACE}/eureka-server:latest -f eureka-server/Dockerfile .
5084 docker build -t ${REGISTRY}/${NAMESPACE}/recommendation-service:latest -f recommendation-service/Dockerfile .
5185 docker build -t ${REGISTRY}/${NAMESPACE}/statistics-service:latest -f statistics-service/Dockerfile .
5286 docker build -t ${REGISTRY}/${NAMESPACE}/user-tracking-service:latest -f user-tracking-service/Dockerfile .
87+
5388 docker push ${REGISTRY}/${NAMESPACE}/api-gateway:latest
5489 docker push ${REGISTRY}/${NAMESPACE}/eureka-server:latest
5590 docker push ${REGISTRY}/${NAMESPACE}/recommendation-service:latest
5994 deploy :
6095 runs-on : ubuntu-latest
6196 needs : build
97+ env :
98+ REGISTRY : ${{ secrets.OCI_REGISTRY }}
99+ OCI_USERNAME : ${{ secrets.OCI_USERNAME }}
100+ OCI_AUTH_TOKEN : ${{ secrets.OCI_AUTH_TOKEN }}
62101
63102 steps :
64103 - name : Checkout code
72111 chmod 600 ssh_key.pem
73112 ssh -o StrictHostKeyChecking=no -i ssh_key.pem opc@${ORACLE_VM_IP} << 'EOF'
74113 cd ~/music-analytics/vm-deploy
75- docker login ${REGISTRY} -u ${{ secrets. OCI_USERNAME }} -p ${{ secrets. OCI_AUTH_TOKEN } }
114+ docker login ${REGISTRY} -u ${OCI_USERNAME} -p ${OCI_AUTH_TOKEN}
76115 docker-compose pull
77116 docker-compose up -d
78117 EOF
0 commit comments