Php 如何使用github操作部署laravel应用程序
我正在尝试使用Github操作将我的laravel应用程序部署到服务器上进行构建和测试,然后通过ssh进行部署 我有一个用于开发的主存储库,然后我有一个附加到操作脚本的生产回购 我尝试了以下github操作部署 我的构建工作正常,但在部署时,它无法找到我的部署脚本,即server_deploy.shPhp 如何使用github操作部署laravel应用程序,php,laravel,deployment,github-actions,Php,Laravel,Deployment,Github Actions,我正在尝试使用Github操作将我的laravel应用程序部署到服务器上进行构建和测试,然后通过ssh进行部署 我有一个用于开发的主存储库,然后我有一个附加到操作脚本的生产回购 我尝试了以下github操作部署 我的构建工作正常,但在部署时,它无法找到我的部署脚本,即server_deploy.sh #!/bin/sh set -e echo "Deploying application ..." # Enter maintenance mode (php artisan
#!/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!"
这是我的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
看看我的回购协议是否有效,但没有
请帮助。您没有根据教程设置服务器 请注意,服务器始终位于部署分支上 完成所有这些设置后,将Laravel应用程序安装到
/var/www/html
并签出deploy
分支。如果它还不存在,您可以执行git checkout production&&git checkout-b deploy
来创建它
您必须在服务器上运行一次,并签出包含部署脚本的部署分支
server\u deploy.sh
您需要首先登录到服务器,然后将server\u deploy.sh
上载到根文件夹;e、 g:/var/www/html
那么我应该在public\u html目录中克隆存储库,然后签出部署分支吗?我认为它会自动创建,如果我将.git
目录放在公共html中,它不会成为一个安全问题吗?您必须设置服务器,使.git
目录不能从外部提供/访问。部署脚本取决于您是否有git存储库,因为它使用的git命令需要现有的签出存储库。