Giter Site home page Giter Site logo

piplin / piplin Goto Github PK

View Code? Open in Web Editor NEW
1.0K 63.0 196.0 6.68 MB

:outbox_tray: An open source self-hosted continuous integration and deployment system - QQ群: 656868

Home Page: http://piplin.com

License: MIT License

Makefile 0.09% PHP 65.88% JavaScript 12.24% CSS 6.48% Shell 0.36% HTML 14.94%
php laravel continuous-integration continuous-delivery continuous-deployment devops piplin

piplin's Introduction

Piplin - Composer Cache

StyleCI Build Status Software License

Piplin(灵感来自于"pipeline",读作/ˈpɪpˌlɪn/ 或 /ˈpaɪpˌlaɪn/)是一款免费、开源的持续集成与部署系统,适用于软件的自动化构建、测试和部署相关的各种应用场景。

Screenshot

Piplin能做什么?

  • 支持PHP、Python、JAVA、Ruby等项目的构建、测试与发布
  • 可与Gitlab、Github、Gogs、Gitee(Oschina)等代码托管平台进行集成
  • 可灵活配置自定义构建和部署步骤
  • 支持自定义构建物规则,对构建物创建发布版本并部署
  • 支持项目的多环境部署(可自行建立开发、测试、预发布和生产等多个环境)
  • 支持联动部署,比如:开发环境部署成功后可自动触发测试环境启动部署
  • 服务管理支持机柜功能,机柜可与多个部署环境绑定
  • 支持项目克隆功能
  • 项目支持多成员
  • 通过Websocket实现项目部署状态的实时跟踪
  • 支持钉钉机器人、Slack、邮件和自定义Webhook的服务集成

Piplin原理示意图

总体

Principle

步骤命令

Commands

安装环境要求

Piplin目前只支持类Unix操作系统(如: Linux, Freebsd, Mac OS等),为了能运行Piplin,您还需要安装一些基础软件。

Docker安装,请访问我们的Piplin Docker项目。

安装手册

全新安装

一. 克隆代码

假设我们把Piplin安装在 /var/www 目录下

$ cd /var/www
$ git clone https://github.com/Piplin/Piplin.git piplin

二. 安装依赖包

$ cd piplin
$ make

安装过程如出现卡顿,请尝试更换npm镜像: npm config set registry http://registry.npm.taobao.org/

三. 安装Piplin

$ make install

Piplin安装器会进入一个交互式控制台,请根据提示进行相关参数设置。

四. 请将Web服务器的根目录指向 public/, 请参考 examples/ 下的相关配置文件,里面包含 Apache和Nginx的配置范例.

注意: examples/ 提供的仅仅是范例,并不能保证直接拷贝就能使用,需要根据实际情况进行相关配置调整。

五. 配置supervisord

Piplin使用supervisord进行后台进程管理。该配置范例请查看examples/supervisor.conf。 一般supervisord的主配置文件在 /etc/supervisor/supervisord.conf ,其大致内容:

[unix_http_server]
file=/var/run/supervisor.sock   ; (the path to the socket file)
chmod=0700                       ; sockef file mode (default 0700)

......

[include]
files = /etc/supervisor/conf.d/*.conf
配置步骤如下:

1). 拷贝 examples/supervisor.conf

$ cp examples/supervisor.conf /etc/supervisor/conf.d/piplin.conf
$ vi /etc/supervisor/conf.d/piplin.conf

请根据实际情况修改相关参数设置,尤其注意路径相关的参数。

2). 重启supervisord

$ /etc/init.d/supervisord restart 或 service supervisord restart

3). 检查supervisord服务是否正常

$ supervisorctl

如果返回如下信息,代表服务正常:

piplin:queue_0                   RUNNING   pid 26981, uptime 2 days, 15:30:59
piplin:queue_1                   RUNNING   pid 26980, uptime 2 days, 15:30:59
piplin:queue_2                   RUNNING   pid 26979, uptime 2 days, 15:30:59
piplin-broadcast                 RUNNING   pid 26987, uptime 2 days, 15:30:59
piplin-socketio                  RUNNING   pid 26978, uptime 2 days, 15:30:59
supervisor>

六. 访问Piplin

恭喜!您已完成Piplin的安装。请通过浏览器访问安装过程中设置的应用网址。

如果安装完成之后修改了.env里的配置信息,要记得执行php artisan config:cache使其立即生效。

七. 设置计划任务

计划任务相关的设置请看 examples/crontab.

Piplin的数据备份、项目Git仓库自动镜像等工作依赖于计划任务去实现。

升级

一. 获取最新代码

$ git fetch --all
$ git checkout v1.0.2

二. 升级

$ make update

系统演示

体验Piplin, 请访问 Piplin:

注意:系统每5分钟会自动重置一次密码,该账号没有权限访问管理功能.

帮助文档

更多文档请访问 https://github.com/Piplin/Docshttp://piplin.com/docs

开发相关

Piplin代码里已经自带编译后的前端静态资源,如果你不想修改前端样式,可直接忽略本环节。

工具集:

  • Node.js
  • Webpack
npm install
npm run prod

鸣谢

软件授权协议

Piplin is licensed under The MIT License (MIT). Piplin is based on Deployer.

piplin's People

Contributors

ade951 avatar bbashy avatar greenkeeper[bot] avatar houbaron avatar imtms avatar leo108 avatar lianguan avatar ryun avatar sandy1890 avatar sheaven79 avatar wtracyliu avatar xuqihua avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

piplin's Issues

手动上线成功.WEBHOOK 上线失败

[2017-10-13 17:59:27] production.ERROR: Could not get repository info - fatal: bad object 29c0726d41284042e34860cc9082b3475744b199
{"exception":"[object] (RuntimeException(code: 0): Could not get repository info - fatal: bad object 29c0726d41284042e34860cc9082b3475744b199
at /home/xxxx/app/Bus/Jobs/DeployProjectJob.php:187)
[stacktrace]
#0 /home/xxxx/app/Bus/Jobs/DeployProjectJob.php(108): Fixhub\Bus\Jobs\DeployProjectJob->updateRepoInfo()
#1 [internal function]: Fixhub\Bus\Jobs\DeployProjectJob->handle()

安装过程中用户表数据填充错误

app:install 之后,报:

PHP Fatal error:Class 'Faker\Factory' not found in /var/......./database/seeds/UserTableSeeder.php on line 21

[Symfony\Component\Debug\Exception\FatalErrorException]
Class 'Faker\Factory' not found

错误

An in-range update of jsonwebtoken is breaking the build 🚨

Version 7.4.3 of jsonwebtoken just got published.

Branch Build failing 🚨
Dependency jsonwebtoken
Current Version 7.4.2
Type dependency

This version is covered by your current version range and after updating it in your project the build failed.

jsonwebtoken is a direct dependency of this project this is very likely breaking your project right now. If other packages depend on you it’s very likely also breaking them.
I recommend you give this issue a very high priority. I’m sure you can resolve this 💪

Status Details
  • continuous-integration/travis-ci/push The Travis CI build is in progress Details
  • continuous-integration/styleci/push The StyleCI analysis has failed - 5 files need addressing Details

Commits

The new version differs by 6 commits.

  • e54e53c update changelog
  • fb48dde 7.4.3
  • 2e4e30b Merge pull request #386 from ziluvatar/issue_381
  • 2a3404f add test & modify guard code
  • 91ba14d Fixed alg non + secret set unit test
  • b1ff632 Fix for #381. Set secret string before using jws when alg is none

See the full diff

Not sure how things should work exactly?

There is a collection of frequently asked questions and of course you may always ask my humans.


Your Greenkeeper Bot 🌴

安装完后还是没有办法登录

页面提示:
糟糕! 你输入的信息有误.
登录失败.

  1. 使用UserTableSeeder.php 账号 demo 提示以上错误
    public function run()
    {
    DB::table('users')->delete();

     $faker = Faker\Factory::create('en_GB');
    
     User::create([
         'name'           => 'demo',
         'email'          => '[email protected]',
         'nickname'       => 'Demo',
         'password'       => 'demo',
         'remember_token' => str_random(10),
     ]);
    
  2. 数据库可以查看到 user 表中只有 admin,不知道加密
    mysql> select * from users\G
    *************************** 1. row ***************************
    id: 1
    name: Admin
    email: [email protected]
    password: $2y$10$Cy2X96VUQiQmLqegk2yjDuvM96M4awFN15VHXHEAY1sq4qsk7Jv86
    nickname: Administrator
    remember_token: NULL
    level: 1
    email_token: NULL
    avatar: /img/avatar.png
    language: NULL
    skin: NULL
    google2fa_secret: NULL
    created_at: 2017-08-27 00:08:20
    updated_at: 2017-08-27 00:08:20
    deleted_at: NULL
    1 row in set (0.00 sec)

mysql>

建议:上线单详情

查看上线单详情打开非常的慢(有时候会超时).建议查看上线单的时候异步加载信息.

如何关闭维护模式?

执行了一次升级,升级时提示是否激活维护模式,现在升级完成后仍然在维护模式,请问如何关闭呢?

app install 出错啊

Type [mysql]:
[0] mysql
[1] sqlite

[ERROR] Undefined variable: output

Type [mysql]:
[0] mysql
[1] sqlite

[ERROR] Undefined variable: output

github私库上线失败

我在某个组织下面, 新建了一个私人仓库,我将生成的 部署秘钥 添加到 Git 仓库的 Deploy Keys。但是上线失败。

上线单前端显示有点问题。。

浏览器:Chrome Version 61.0.3163.100 (Official Build) (64-bit) on Mac OS 10.12
其他分支下拉框展示不全,需要拖动水平方向滚动条。。。
bug

php artisan app:install 执行最后报错


  • Application In Production!     *
    

Do you really wish to run this command? (yes/no) [no]:

yes

Application key [base64:QFFwlQINYY6/CEmsDhQYhihco//hp2WRGcWf8bSg7oA=] set successfully.
Running database migrations

Migration table created successfully.

[Symfony\Component\Debug\Exception\FatalThrowableError]
Call to undefined method Event::fire()

首页`最近上线`

首页最近上线 列表,提交的版本是否添加超链接?方便直接查看.

升级报错

[Illuminate\Database\QueryException]
SQLSTATE[HY000]: General error: 1025 Error on rename of './fixhub/servers' to './fixhub/#sql2-3a07-9110d' (errno: 152) (SQL: alter table servers drop foreign key servers_project_id_foreign)

[Doctrine\DBAL\Driver\PDOException]
SQLSTATE[HY000]: General error: 1025 Error on rename of './fixhub/servers' to './fixhub/#sql2-3a07-9110d' (errno: 152)

[PDOException]
SQLSTATE[HY000]: General error: 1025 Error on rename of './fixhub/servers' to './fixhub/#sql2-3a07-9110d' (errno: 152)

After installation complete, when start node socket.js reporting error.

Warning message:
[WARN] Redis server does not require a password, but a password was supplied.

My temporary solution is:

var redis = new Redis({
    port: process.env.REDIS_PORT || 6379, 
    host: process.env.REDIS_HOST || '127.0.0.1', 
    db: process.env.REDIS_DATABASE || 0,
    password: process.env.REDIS_PASSWORD || null
});

delete param password:

var redis = new Redis({
    port: process.env.REDIS_PORT || 6379, 
    host: process.env.REDIS_HOST || '127.0.0.1', 
    db: process.env.REDIS_DATABASE || 0
});

maybe have another better solution.

这个问题不知道是不是Bug

image
image

预发环境下有1台服务器
正式环境下有2台服务器

上线单,正常情况下,预发环境+正式环境,应该只是更新3个。结果有5个。

image

复制的,其他项目上线单是3个,就个别有的会这样

安装遇到问题,求帮助

运行:npm install --production
npm: relocation error: npm: symbol SSL_set_cert_cb, version libssl.so.10 not defined in file libssl.so.10 with link time reference

提示这个!我node.js是通过 yum install -y nodejs 安装的

反馈一个Bug,部署模板那边的

在“部署模板”那边新增一个模板后,点击这个模板,随便点击一个执行任务,不管是前置任务还是后置任务,点新增,直接有一个错误提示:
image
查看浏览器控制台输出,是js报错了
image

Redis is not running

报以下错误,但是我单独用php文件链接redis,是成功的

The compiled services & packages files have been removed.
Cache cleared successfully.
Route cache cleared!
Configuration cache cleared!
Compiled views cleared!


Welcome to Fixhub


Redis is not running

Fixhub cannot be installed. Please review the errors above before continuing.

ssh用户只能是root吗?

我用其他用户,ssh测试通,上线的时候报了 Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). 错误。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.