我正在尝试使用Github操作将laravel应用程序部署到服务器上进行构建和测试,然后通过ssh进行部署。
我有一个用于开发的主存储库,然后有一个附加到动作脚本的生产仓库。
我尝试遵循this tutorial进行github操作部署。
我的构建工作正常,但是在部署时无法找到我的部署脚本,即server_deploy.sh
这是我的main.yml文件
name: CD
on:
push:
branches: [ production ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.PUSH_TOKEN }}
- name: Set up Node
uses: actions/setup-node@v1
with:
node-version: '12.x'
- run: npm install
- run: npm run production
- name: Commit built assets
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git checkout -B deploy
git add -f public/
git commit -m "Build front-end assets"
git push -f origin deploy
- name: Deploy to production
uses: appleboy/ssh-action@master
with:
username: ${{ secrets.SSH_USERNAME }}
host: ${{ secrets.SSH_HOST }}
password: ${{ secrets.SSH_PASSWORD }}
script: 'cd /home/admin/web/case4.example.co/public_html/ && ls && sh server_deploy.sh'
这是我的server_deploy.sh
#!/bin/sh
set -e
echo "Deploying application ..."
# Enter maintenance mode
(php artisan down --message 'The app is being (quickly!) updated. Please try again in a minute.') || true
# Update codebase
git fetch origin deploy
git reset --hard origin/deploy
# Install dependencies based on lock file
composer install --no-interaction --prefer-dist --optimize-autoloader
# Exit maintenance mode
php artisan up
echo "Application deployed!"
但是,当我执行此工作流程时,它找不到server_deploy.sh文件。
我尝试ls
来查看我的回购协议是否也签出,但是没有。
请帮助。
答案 0 :(得分:1)
您没有按照教程设置服务器
请注意,服务器始终位于deploy分支上。
完成所有这些步骤后,将Laravel应用程序安装到
/var/www/html
中,并签出deploy
分支。如果尚不存在,可以执行git checkout production && git checkout -b deploy
来创建它。
您必须在服务器上运行一次,然后检出包含部署脚本server_deploy.sh
的deploy分支
答案 1 :(得分:1)
您需要先登录到服务器,然后将server_deploy.sh
上传到您的根文件夹;例如:/var/www/html