在Debian上为Laravel项目实现持续集成(CI)可以通过多种方式来完成,其中最常用的是使用GitLab CI/CD、GitHub Actions或Jenkins。以下是使用这些工具的简要指南:
安装GitLab Runner: 在Debian上安装GitLab Runner:
sudo apt-get update
sudo apt-get install gitlab-runner
注册GitLab Runner: 注册Runner到你的GitLab实例:
sudo gitlab-runner register
按照提示输入GitLab实例的URL和注册令牌。
配置.gitlab-ci.yml:
在你的Laravel项目根目录下创建或编辑.gitlab-ci.yml
文件,定义CI/CD流程。例如:
stages:
- test
- deploy
test:
stage: test
script:
- composer install
- php artisan test
deploy:
stage: deploy
script:
- ssh -o StrictHostKeyChecking=no deploy@your_server "cd /path/to/your/project && git pull && composer install && php artisan migrate"
only:
- master
.github/workflows/main.yml
文件,定义CI/CD流程。例如:name: CI/CD
on:
push:
branches:
- master
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Install dependencies
run: composer install
- name: Run tests
run: php artisan test
- name: Deploy to server
uses: appleboy/scp-action@master
with:
host: ${{ secrets.SERVER_HOST }}
username: ${{ secrets.SERVER_USERNAME }}
key: ${{ secrets.SERVER_KEY }}
source: .
target: /path/to/your/project
run: |
ssh -o StrictHostKeyChecking=no ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }} "cd /path/to/your/project && git pull && composer install && php artisan migrate"
安装Jenkins: 在Debian上安装Jenkins:
sudo apt-get update
sudo apt-get install jenkins
启动并启用Jenkins服务:
sudo systemctl start jenkins
sudo systemctl enable jenkins
配置Jenkins:
打开浏览器访问http://your_server:8080
,按照提示完成Jenkins的初始配置。
创建Jenkins Pipeline: 在Jenkins中创建一个新的Pipeline项目,并配置Pipeline脚本。例如:
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git 'https://github.com/your-username/your-laravel-project.git'
}
}
stage('Install Dependencies') {
steps {
sh 'composer install'
}
}
stage('Run Tests') {
steps {
sh 'php artisan test'
}
}
stage('Deploy') {
steps {
sshPublisher(
publishers: [
sshPublisherDesc(
configName: 'your_server',
transfers: [
sshTransfer(
sourceFiles: '**/*',
removePrefix: 'your_project',
remoteDirectory: '/path/to/your/project'
)
],
usePromotionTimestamp: false,
useWorkspaceInPromotion: false,
verbose: true
)
]
)
sh 'ssh -o StrictHostKeyChecking=no deploy@your_server "cd /path/to/your/project && git pull && composer install && php artisan migrate"'
}
}
}
}
通过以上步骤,你可以在Debian上为Laravel项目设置持续集成。选择哪种工具取决于你的具体需求和偏好。