-
-
Notifications
You must be signed in to change notification settings - Fork 15
Open
Description
This seems to be a slightly different issue than #16 or #2 so I'm making a new one, hope that's ok. My current setup (with SSH_KNOWN_HOSTS) seems to work fine just up until Deployer tries to rsync to the server.
Perhaps the problem is that SSH_PRIVATE_KEY isn't exposed to the rsync over SSH tunnel? Or am I doing something wrong?
Below is my setup, inspired by https://atymic.dev/blog/github-actions-laravel-ci-cd/.
deploy.php:
<?php
namespace Deployer;
require 'recipe/common.php';
require 'recipe/rsync.php';
// Project name
set('application', 'SECRET');
set('allow_anonymous_stats', false);
// Hosts
$hosts = ['dev' => 'staging', 'prod' => 'production'];
foreach ($hosts as $host => $stage) {
host($host)
->hostname(getenv('SSH_HOST'))
->port(getenv('SSH_PORT'))
->stage($stage)
->user(getenv('SSH_USER'))
->set('deploy_path', getenv('DEPLOY_PATH'));
}
// Tasks
task('deploy', [
'deploy:info',
'deploy:prepare',
'deploy:release',
'rsync',
'deploy:symlink',
'cleanup',
'success'
]);deploy.dev.yml:
name: Deploy to dev
on:
push:
branches: develop
jobs:
deploy:
name: Deploy to dev
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/develop'
steps:
- uses: actions/checkout@v2
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: 7.4
- name: Install Deployer
uses: atymic/deployer-php-action@master
with:
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
ssh-known-hosts: ${{ secrets.SSH_KNOWN_HOSTS }}
- name: Get Deployer version
run: dep -V
- name: Deploy to dev
run: dep deploy dev -vvv
env:
SSH_HOST: ${{ secrets.DEV_SSH_HOST }}
SSH_PORT: ${{ secrets.DEV_SSH_PORT }}
SSH_USER: ${{ secrets.DEV_SSH_USER }}
DEPLOY_PATH: ${{ secrets.DEV_DEPLOY_PATH }}Log excerpt from Github Actions:
Run dep -V
Deployer v6.8.0
Run dep deploy dev -vvv
[localhost] > git rev-parse --abbrev-ref HEAD
[localhost] < develop
✈︎ Deploying develop on dev
• done on [dev]
➤ Executing task deploy:prepare
[dev] > echo $0
[dev] < ssh multiplexing initialization
[dev] < bash
[dev] > if [ ! -d *** ]; then mkdir -p ***; fi
[dev] > if [ ! -L ***/current ] && [ -d ***/current ]; then echo 'true'; fi
[dev] > cd *** && if [ ! -d .dep ]; then mkdir .dep; fi
[dev] > cd *** && if [ ! -d releases ]; then mkdir releases; fi
[dev] > cd *** && if [ ! -d shared ]; then mkdir shared; fi
• done on [dev]
✔ Ok [6s 482ms]
➤ Executing task deploy:release
[dev] > cd *** && (if [ -h release ]; then echo 'true'; fi)
[dev] < true
[dev] > cd *** && (rm -rf "$(readlink release)")
[dev] > cd *** && (rm release)
[dev] > cd *** && (if [ -d releases ] && [ "$(ls -A releases)" ]; then echo 'true'; fi)
[dev] > cd *** && (if [ -d ***/releases/1 ]; then echo 'true'; fi)
[dev] > cd *** && (date +"%Y%m%d%H%M%S")
[dev] < 20210325205814
[dev] > cd *** && (echo '20210325205814,1' >> .dep/releases)
[dev] > cd *** && (mkdir ***/releases/1)
[dev] > cd *** && (if [[ $(man ln 2>&1 || ln -h 2>&1 || ln --help 2>&1) =~ '--relative' ]]; then echo 'true'; fi)
[dev] < true
[dev] > cd *** && (ln -nfs --relative ***/releases/1 ***/release)
• done on [dev]
✔ Ok [3s 556ms]
➤ Executing task rsync
[dev] > if [ -h ***/release ]; then echo 'true'; fi
[dev] < true
[dev] > readlink ***/release
[dev] < releases/1
[localhost] > rsync -rz -e 'ssh -p*** -A -p ***' --delete --exclude='.git' --exclude='deploy.php' '/home/runner/.composer/vendor/deployer/recipes/recipe/' '***@***:***/releases/1/'
[localhost] < Host key verification failed.
[localhost] < rsync: connection unexpectedly closed (0 bytes received so far) [sender]
[localhost] < rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.3]
➤ Executing task deploy:failed
• done on [dev]
✔ Ok [0ms]
In Process.php line 267:
[Symfony\Component\Process\Exception\ProcessFailedException]
The command "rsync -rz -e 'ssh -p*** -A -p ***' --delete --exclude='.git'
--exclude='deploy.php' '/home/runner/.composer/vendor/deployer/recipes/rec
ipe/' '***@***:***/releases/1/'" fa
iled.
Exit Code: 255(Unknown error)
Working directory: /home/runner/work/hittaratt/hittaratt
Output:
================
Error Output:
================
Host key verification failed.
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: unexplained error (code 255) at io.c(235) [sender=3.1.3]
Exception trace:
at /home/runner/.composer/vendor/symfony/process/Process.php:267
Symfony\Component\Process\Process->mustRun() at /home/runner/.composer/vendor/deployer/deployer/src/Utility/ProcessRunner.php:56
Deployer\Utility\ProcessRunner->run() at /home/runner/.composer/vendor/deployer/deployer/src/functions.php:329
Deployer\runLocally() at /home/runner/.composer/vendor/deployer/recipes/recipe/rsync.php:144
Deployer\Deployer::Deployer\{closure}() at n/a:n/a
call_user_func() at /home/runner/.composer/vendor/deployer/deployer/src/Task/Task.php:105
Deployer\Task\Task->run() at /home/runner/.composer/vendor/deployer/deployer/src/Executor/SeriesExecutor.php:60
Deployer\Executor\SeriesExecutor->run() at /home/runner/.composer/vendor/deployer/deployer/src/Console/TaskCommand.php:144
Deployer\Console\TaskCommand->execute() at /home/runner/.composer/vendor/symfony/console/Command/Command.php:256
Symfony\Component\Console\Command\Command->run() at /home/runner/.composer/vendor/symfony/console/Application.php:971
Symfony\Component\Console\Application->doRunCommand() at /home/runner/.composer/vendor/deployer/deployer/src/Console/Application.php:133
Deployer\Console\Application->doRunCommand() at /home/runner/.composer/vendor/symfony/console/Application.php:290
Symfony\Component\Console\Application->doRun() at /home/runner/.composer/vendor/symfony/console/Application.php:166
Symfony\Component\Console\Application->run() at /home/runner/.composer/vendor/deployer/deployer/src/Deployer.php:326
Deployer\Deployer::run() at /home/runner/.composer/vendor/deployer/deployer/bin/dep:137
Metadata
Metadata
Assignees
Labels
No labels