Skip to content

Commit f1dc201

Browse files
committed
feat: streamline deployment workflow by removing redundant comments and optimizing directory creation
1 parent 2a2d1dd commit f1dc201

File tree

1 file changed

+15
-63
lines changed

1 file changed

+15
-63
lines changed

.github/workflows/deploy.yml

Lines changed: 15 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@ jobs:
2626
distribution: 'temurin'
2727
cache: 'maven'
2828

29-
# Configure Maven for reliability
3029
- name: Configure Maven settings
3130
run: |
3231
mkdir -p ~/.m2
@@ -43,7 +42,6 @@ jobs:
4342
</settings>
4443
EOF
4544
46-
# Build with retries
4745
- name: Build with Maven (with retries)
4846
run: |
4947
max_attempts=3
@@ -64,7 +62,6 @@ jobs:
6462
exit 1
6563
fi
6664
67-
# Verify JAR files exist
6865
- name: Verify build artifacts
6966
run: |
7067
echo "Checking JAR files..."
@@ -77,7 +74,6 @@ jobs:
7774
fi
7875
done
7976
80-
# Debug step: List all JAR files in target directories
8177
- name: List target directory contents
8278
run: |
8379
echo "Listing all target directories contents..."
@@ -86,141 +82,97 @@ jobs:
8682
ls -la $service/target/ || echo "No target directory found"
8783
done
8884
89-
# Critical step: Prepare Docker build context
9085
- name: Prepare Docker build context
9186
run: |
92-
# Create vm-deploy directories
93-
mkdir -p vm-deploy/eureka-server
94-
mkdir -p vm-deploy/api-gateway
95-
mkdir -p vm-deploy/recommendation-service
96-
mkdir -p vm-deploy/statistics-service
97-
mkdir -p vm-deploy/user-tracking-service
98-
99-
# Copy JAR files to vm-deploy directories
87+
mkdir -p vm-deploy/eureka-server vm-deploy/api-gateway vm-deploy/recommendation-service vm-deploy/statistics-service vm-deploy/user-tracking-service
10088
cp $(find eureka-server/target -name "eureka-server*.jar" | grep -v original) vm-deploy/eureka-server/eureka-server.jar
10189
cp $(find api-gateway/target -name "api-gateway*.jar" | grep -v original) vm-deploy/api-gateway/api-gateway.jar
10290
cp $(find recommendation-service/target -name "recommendation-service*.jar" | grep -v original) vm-deploy/recommendation-service/recommendation-service.jar
10391
cp $(find statistics-service/target -name "statistics-service*.jar" | grep -v original) vm-deploy/statistics-service/statistics-service.jar
10492
cp $(find user-tracking-service/target -name "user-tracking-service*.jar" | grep -v original) vm-deploy/user-tracking-service/user-tracking-service.jar
10593
106-
# Copy Dockerfiles
10794
cp eureka-server/Dockerfile vm-deploy/eureka-server/
10895
cp api-gateway/Dockerfile vm-deploy/api-gateway/
10996
cp recommendation-service/Dockerfile vm-deploy/recommendation-service/
11097
cp statistics-service/Dockerfile vm-deploy/statistics-service/
11198
cp user-tracking-service/Dockerfile vm-deploy/user-tracking-service/
11299
113-
# Verify files were copied
114100
echo "Verifying copied files:"
115101
ls -la vm-deploy/*/
116102
117103
- name: Debug environment variables
118104
run: |
119-
echo "Checking environment variables (with sensitive data masked):"
105+
echo "Checking environment variables (sensitive data masked):"
120106
echo "ORACLE_VM_IP is set: ${{ secrets.ORACLE_VM_IP != '' }}"
121107
echo "DOCKER_REGISTRY is set: ${{ secrets.OCI_REGISTRY != '' }}"
122108
echo "OCI_USERNAME is set: ${{ secrets.OCI_USERNAME != '' }}"
123109
echo "OCI_AUTH_TOKEN is set: ${{ secrets.OCI_AUTH_TOKEN != '' }}"
124110
125-
# Fixed SSH key setup step
126111
- name: Set up SSH key
127112
run: |
128-
# Create directory and set permissions
129113
mkdir -p $HOME/.ssh
130114
chmod 700 $HOME/.ssh
131-
132-
# Debug directory permissions
133115
ls -la $HOME/.ssh || echo "Unable to list .ssh directory"
134-
135-
# Check if the SSH key secret is set
136116
if [ -z "${{ secrets.SSH_PRIVATE_KEY }}" ]; then
137117
echo "ERROR: SSH_PRIVATE_KEY secret is not set!"
138118
exit 1
139119
fi
140-
141-
# Write SSH key file and check it was created
142120
echo "${{ secrets.SSH_PRIVATE_KEY }}" > $HOME/.ssh/id_rsa
143121
ls -la $HOME/.ssh/id_rsa || { echo "ERROR: Failed to create SSH key file!"; exit 1; }
144-
145-
# Set proper permissions on the key file
146122
chmod 600 $HOME/.ssh/id_rsa || { echo "ERROR: Failed to set permissions on SSH key file!"; exit 1; }
147-
148-
# Verify file content (indirectly)
149123
key_size=$(stat -c %s $HOME/.ssh/id_rsa)
150124
echo "SSH key file size: $key_size bytes"
151-
152-
# Add VM to known hosts
153125
if [ -z "${{ secrets.ORACLE_VM_IP }}" ]; then
154126
echo "ERROR: ORACLE_VM_IP secret is not set!"
155127
exit 1
156128
fi
157-
158-
# Initialize known_hosts file
159129
touch $HOME/.ssh/known_hosts
160-
161-
# Add VM to known hosts
162130
ssh-keyscan -H ${{ secrets.ORACLE_VM_IP }} >> $HOME/.ssh/known_hosts
163-
164-
# Test SSH connection
165131
echo "Testing SSH connection..."
166132
ssh -o BatchMode=yes -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa opc@${{ secrets.ORACLE_VM_IP }} "echo SSH connection successful" || {
167-
echo "ERROR: SSH connection failed. Debugging information:"
168133
ls -la $HOME/.ssh/
169-
echo "Key file content (first line only):"
170134
head -1 $HOME/.ssh/id_rsa
171135
exit 1
172136
}
173137
174-
# Prepare .env file for docker-compose
175138
- name: Prepare environment file
176139
run: |
177-
# Create .env file with secrets for docker-compose
178140
cat > vm-deploy/.env << EOF
179141
DOCKER_REGISTRY=${{ secrets.OCI_REGISTRY }}
180142
OCI_USERNAME=${{ secrets.OCI_USERNAME }}
181143
OCI_AUTH_TOKEN=${{ secrets.OCI_AUTH_TOKEN }}
182144
EOF
183-
184-
# Show file (without sensitive data)
185145
echo "Created .env file for docker-compose"
186-
echo "DOCKER_REGISTRY is set: true"
187-
echo "OCI_USERNAME is set: true"
188-
echo "OCI_AUTH_TOKEN is set: true"
146+
echo "DOCKER_REGISTRY, OCI_USERNAME, OCI_AUTH_TOKEN are set"
189147
190148
- name: Deploy to Oracle VM
191149
run: |
192-
# Create directories on VM
193150
ssh -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa opc@${{ secrets.ORACLE_VM_IP }} "mkdir -p ~/music-analytics/vm-deploy/{eureka-server,api-gateway,recommendation-service,statistics-service,user-tracking-service}"
194151
195-
# Copy JAR files and Dockerfiles to VM
196152
scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/eureka-server/eureka-server.jar vm-deploy/eureka-server/Dockerfile opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/eureka-server/
197153
scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/api-gateway/api-gateway.jar vm-deploy/api-gateway/Dockerfile opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/api-gateway/
198154
scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/recommendation-service/recommendation-service.jar vm-deploy/recommendation-service/Dockerfile opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/recommendation-service/
199155
scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/statistics-service/statistics-service.jar vm-deploy/statistics-service/Dockerfile opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/statistics-service/
200156
scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/user-tracking-service/user-tracking-service.jar vm-deploy/user-tracking-service/Dockerfile opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/user-tracking-service/
201157
202-
# Copy docker-compose file and .env file
203158
scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa cloud-deploy/docker-compose.direct.yml opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/docker-compose.yml
204159
scp -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa vm-deploy/.env opc@${{ secrets.ORACLE_VM_IP }}:~/music-analytics/vm-deploy/.env
205160
206-
# Build and run containers
207161
ssh -o StrictHostKeyChecking=no -i $HOME/.ssh/id_rsa opc@${{ secrets.ORACLE_VM_IP }} "cd ~/music-analytics/vm-deploy && \
208162
echo 'Logging in to Docker registry...' && \
209-
docker login ${{ secrets.OCI_REGISTRY }} -u ${{ secrets.OCI_USERNAME }} -p ${{ secrets.OCI_AUTH_TOKEN }} && \
210-
echo 'Stopping existing containers if any...' && \
211-
docker ps -q | xargs -r docker stop && \
212-
docker ps -aq | xargs -r docker rm && \
213-
echo 'Starting new containers...' && \
214-
echo 'DOCKER_REGISTRY=${{ secrets.OCI_REGISTRY }}' > .env && \
215-
echo 'OCI_USERNAME=${{ secrets.OCI_USERNAME }}' >> .env && \
216-
echo 'OCI_AUTH_TOKEN=${{ secrets.OCI_AUTH_TOKEN }}' >> .env && \
217-
cat .env && \
218-
export DOCKER_REGISTRY=${{ secrets.OCI_REGISTRY }} && \
163+
echo \"${{ secrets.OCI_AUTH_TOKEN }}\" | docker login ${{ secrets.OCI_REGISTRY }} -u ${{ secrets.OCI_USERNAME }} --password-stdin && \
164+
echo 'Stopping and removing existing containers if any...' && \
165+
docker ps -q | xargs -r docker stop && docker ps -aq | xargs -r docker rm && \
166+
echo 'Building Docker images locally...' && \
167+
for service in eureka-server api-gateway recommendation-service statistics-service user-tracking-service; do \
168+
docker build -t music-analytics/\$service ./\$service || exit 1; \
169+
done && \
170+
echo 'Fixing docker-compose file (removing version attribute)...' && \
171+
sed -i '/^version:/d' docker-compose.yml && \
172+
echo 'Starting new containers with docker-compose...' && \
219173
docker-compose up -d && \
220-
echo 'Container status:' && \
221-
docker-compose ps"
222-
223-
# Debug command
174+
echo 'Container status:' && docker-compose ps"
175+
224176
- name: Debug on failure
225177
if: failure()
226178
run: |

0 commit comments

Comments
 (0)