This commit is contained in:
2025-09-11 16:20:38 +03:00
parent e97bc98153
commit f640f74ab0

View File

@@ -28,55 +28,55 @@ runs:
REMOTE_USER: ${{ inputs.remote_user || 'ubuntu' }}
DOCKER_COMPOSE_PATH: ${{ inputs.docker_compose_path }}
steps:
- name: Checkout code
uses: actions/checkout@v4
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up SSH agent (to use private key)
run: |
mkdir -p ~/.ssh
echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
# Optional: add known hosts
echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts
# Ensure SSH config
echo "Host ${REMOTE_HOST}" >> ~/.ssh/config
echo " HostName ${REMOTE_HOST}" >> ~/.ssh/config
echo " User ${REMOTE_USER}" >> ~/.ssh/config
echo " IdentityFile ~/.ssh/id_rsa" >> ~/.ssh/config
echo " StrictHostKeyChecking yes" >> ~/.ssh/config
echo " UserKnownHostsFile ~/.ssh/known_hosts" >> ~/.ssh/config
- name: Set up SSH agent (to use private key)
run: |
mkdir -p ~/.ssh
echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
# Optional: add known hosts
echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts
# Ensure SSH config
echo "Host ${REMOTE_HOST}" >> ~/.ssh/config
echo " HostName ${REMOTE_HOST}" >> ~/.ssh/config
echo " User ${REMOTE_USER}" >> ~/.ssh/config
echo " IdentityFile ~/.ssh/id_rsa" >> ~/.ssh/config
echo " StrictHostKeyChecking yes" >> ~/.ssh/config
echo " UserKnownHostsFile ~/.ssh/known_hosts" >> ~/.ssh/config
- name: Copy docker-compose.yml to remote host
run: |
# Ensure the remote path exists
mkdir -p "$(dirname "${DEPLOYMENT_PATH}")"
# Use scp to copy the file
scp -o StrictHostKeyChecking=yes -o UserKnownHostsFile= ~/.ssh/known_hosts \
-i ~/.ssh/id_rsa \
${COMPOSE_PATH} \
${REMOTE_USER}@${REMOTE_HOST}:"${DEPLOYMENT_PATH}"
shell: bash
- name: Copy docker-compose.yml to remote host
run: |
# Ensure the remote path exists
mkdir -p "$(dirname "${DEPLOYMENT_PATH}")"
# Use scp to copy the file
scp -o StrictHostKeyChecking=yes -o UserKnownHostsFile= ~/.ssh/known_hosts \
-i ~/.ssh/id_rsa \
${COMPOSE_PATH} \
${REMOTE_USER}@${REMOTE_HOST}:"${DEPLOYMENT_PATH}"
shell: bash
- name: Deploy services via SSH
run: |
# Run docker-compose up -d on the remote host
ssh -o StrictHostKeyChecking=yes \
-o UserKnownHostsFile= ~/.ssh/known_hosts \
-i ~/.ssh/id_rsa \
${REMOTE_USER}@${REMOTE_HOST} \
"docker-compose -f ${DEPLOYMENT_PATH} up -d --timeout 300"
shell: bash
- name: Deploy services via SSH
run: |
# Run docker-compose up -d on the remote host
ssh -o StrictHostKeyChecking=yes \
-o UserKnownHostsFile= ~/.ssh/known_hosts \
-i ~/.ssh/id_rsa \
${REMOTE_USER}@${REMOTE_HOST} \
"docker-compose -f ${DEPLOYMENT_PATH} up -d --timeout 300"
shell: bash
- name: Verify services are running
run: |
ssh -o StrictHostKeyChecking=yes \
-o UserKnownHostsFile= ~/.ssh/known_hosts \
-i ~/.ssh/id_rsa \
${REMOTE_USER}@${REMOTE_HOST} \
"docker-compose -f ${DEPLOYMENT_PATH} ps"
shell: bash
- name: Verify services are running
run: |
ssh -o StrictHostKeyChecking=yes \
-o UserKnownHostsFile= ~/.ssh/known_hosts \
-i ~/.ssh/id_rsa \
${REMOTE_USER}@${REMOTE_HOST} \
"docker-compose -f ${DEPLOYMENT_PATH} ps"
shell: bash
- name: Final success message
run: echo "✅ Docker Compose deployed successfully on ${REMOTE_HOST}"
- name: Final success message
run: echo "✅ Docker Compose deployed successfully on ${REMOTE_HOST}"