Ok, na verdade o seu CI tá usando o rsync (de acordo com a action do easingthemes/ssh-deploy), com os argumentos: -rltgoDzvO --delete
O argumento --delete apaga todos os arquivos no destino que não estão na origem, para mais detalhes em cada argumento desse pode olhar direto na doc do rsync: https://linux.die.net/man/1/rsync
Para contornar isso creio (não testei para confirmar) ser possível usar a opção --exclude=ARQUIVO
, onde ARQUIVO é um arquivo com a lista de diretórios/arquivos que não deve ser considerado pelo rsync (não vai enviar e nem apagar caso exista no destino)