关于jenkens的实践
Jenkins一个自动化构建版本的工具,配合Git Hooks,刚好能实现push代码即可自动发版。
听起来很骚,实操起来,却也不难,以下记录一些要点。
Step 1: 安装Jenkins
略,常规操作,可问度娘;
Step 2: 安装Deploy
- 本地项目通过composera安装Deploy工具;
composer global require deployer/deployer -vvv
Step 3: 项目初始化
在项目目录生成deploye.php文件
deploy init
这个可以选择不同框架,相当于自动生成模板脚本,但是没有TP,我这里手动配置了一下,需要注意的是文件夹权限要配置好。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55<?php
namespace Deployer;
require 'recipe/common.php';
// Project name
set('application', 'XXXX管理系统');
// Project repository
set('repository', 'git@git.wisder.net:wisder/car-oil-php.git');
// [Optional] Allocate tty for git clone. Default value is false.
set('git_tty', false);
// Shared files/dirs between deploys
set('shared_files', [
]);
set('shared_dirs', []);
// Writable dirs by web server
set('writable_dirs', []);
// Hosts
inventory('hosts.yml');
//host('project.com')
// ->set('deploy_path', '~/{{application}}');
// Tasks
task('php-fpm:restart', function () {
run('{{php_fpm_restart}}');
})->desc('Restart PHP-FPM service');
desc('Deploy car-oil');
task('deploy', [
'deploy:info',
'deploy:prepare',
'deploy:lock',
'deploy:release',
'deploy:update_code',
'deploy:shared',
'deploy:writable',
'deploy:vendors',
'deploy:clear_paths',
'deploy:symlink',
'deploy:unlock',
'cleanup',
'success'
]);
// [Optional] If deploy fails automatically unlock.
after('deploy:failed', 'deploy:unlock');站点配置文件host.yml
1 | dev: |
- 一通配置后,项目目录下创建jenkins配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16pipeline {
agent any
environment {
HOME = '/root'
}
stages {
stage('Build') {
steps {
git branch: 'master', url: 'git@git.wisder.net:wisder/car-oil-php.git'
sh 'php vendor/bin/dep deploy dev -vvv'
}
}
}
}
最后jenkens配置
- 登录jenkins, 新建项目,根据选项配置即可;
基于码云+jenkins构建
- Jenkins安装好码云插件,目前卡在web hooks自动构建这一块,跨域问题也好,权限不足也罢,未完待续,后期解决再更新。
原文作者: ybphp
原文链接: https://www.ybphp.com/2020/08/18/jenkens/
版权声明: 转载请注明出处(必须保留原文作者署名原文链接)