AtomCI ไธๆฌพไบๅ็CICDๅนณๅฐ๏ผ่ดๅไบ่ฎฉไธญๅฐไผไธๅฟซ้่ฝๅฐKubernetes๏ผๆฏๆk8s/reigstry/jenkins/ไปฃ็ ๆบ็่ฝปๆพ้ๆ๏ผ้ซๅนถๅ็ๆตๆฐด็บฟ๏ผไบๅ็yamlๆฏๆ๏ผๅค็ฏๅข็ตๆดป็ฎก็๏ผๆ้ๆงๅถ็ญ, ไปฃ็ ๅๅทฒๅผๆบ, ๆจ็star ๆฏๆไปฌๅผๆบ็ๅจๅ๏ผ้ๅธธๆ่ฐข๏ผ๏ผ
- ๅคไปฃ็ ๆบ่ฝปๆพ้ๆ๏ผ gitlab/gihub/gitee/gitea/gogs ๏ผ
- ๅผบๅคง็ๆๅก้ๆ๏ผไธ่ฎบๆฏ้ฟ้ไบ /่ พ่ฎฏไบ๏ผ่ฟๆฏ่ชๅปบ k8s ๏ผไธ็ฎกๆฏ่ชๅปบ harbor ่ฟๆฏๅ ฌๆ้ๅไปๅบ๏ผๅๅฏไปฅ่ฝปๆพ้ๆ๏ผ
- ๆตๆฐด็บฟ็ตๆดป่ชๅฎไน
- ๆฏๆๅ็็ yaml ๅบ็จ็ผๆ
- ็ฏๅข็ตๆดปๆฐๅข /ๅ ้ค
- ้จ็ฝฒๆนๅผ็ฎๅ
- ๆดๅคๆๅพ ไฝ ็ไฝ้ช...
โโโโโโโโโโโ
โ โ
โ Git Scm โโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโ
โ โ โ โ AtomCI โ โ โ โ โ
โโโโโโโโโโโ โ โ โ โ โ โ โโโโโโโโโโโโโโโโโโ โ
โ โ Frontend (Vue) โ โ โ โ โ jnlp-agent pod1โ โ
โโโโโโโโบ โโโโโโบ โ โ โโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโ โ โ โ โ โโโโโบ โ
โ โ โ โ Backend (Go) โโโโโโค Jenkins โ โ โโโโโโโโโโโโโโโโโโ โ
โ Registry โโโโโโโค โ โ โ โ โ โ jnlp-agent pod2โ โ
โ โ โ โ โ โ โ โ โโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโ โ โโโโโโโโโโโโฌโโโโโโโโโโโโโ โ โ โ .... โ
โ โ โ โ โ โโโโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโ โ โโโโโโโโโโโโดโโโโโโโโโโโโโ โโโโโโโโโโโโค โ โ jnlp-agent podnโ โ
โ โ โ โ โ โk8s/dockerโ โ โโโโโโโโโโโโโโโโโโ โ
โ Kubernetesโ โ โ MySQL โ โ or โ โ โ
โ โโโโโโ โ โ โ warfile โ โ agent on kubernetes โ
โโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโ
ๅจ็บฟไฝ้ช๏ผ ้ๅธธๆ่ฐข@liuzilongๆไพ็kubernetes็ฏๅข๏ผ๏ผ
่ดฆๅท | ๅฏ็ |
---|---|
atomci | 123456 |
ๆณจ:
- ไฝ้ชๅธๆทไธบๆๆ็จๆท๏ผไธๆพ็คบโ็ณป็ป็ฎก็โ็้ ็ฝฎ้กต้ข, ๅฏๆฌๅฐๅฎ่ฃ ๅฎๆดไฝ้ชใ
- ๅ k8s่ตๆบๆ้๏ผ้จ็ฝฒ็ๆๅกไผๅฎๆถๆธ ็๏ผ้ฟๅ ่ตๆบ่ฟๅๅ ็จ
- ๆฆ่ฟฐๅๅฆไฝๅฎ่ฃ ้จ็ฝฒ ่ง้ข้พๆฅ
- ไป็ปๅๅฟซ้ๅผๅง ่ง้ข้พๆฅ
- 5ๅ้ๅ จๆต็จไฝ้ช ่ง้ข้พๆฅ
- ๅๅคไธๅฐๅฏไปฅๆญฃๅธธ่ฟ่ก็linuxๆๅกๅจ๏ผๆฏๆMacOS๏ผ
- ๅฎ่ฃ Docker ๅ Docker Compose
curl -sSL https://raw.githubusercontent.com/go-atomci/atomci/master/deploy/docker-compose/quick_start.sh | bash
- go
1.18
+ - node
v14.20.0
- yarn
v1.22.5
- mysql
5.7
> create database atomci character set utf8mb4;
# conf/app.conf
[DB]
url = root:root@tcp(127.0.0.1:3306)/atomci?charset=utf8mb4
[notification]
dingEnable = 1 # ๅฏ็จ้้้็ฅ๏ผ0๏ผไธๅฏ็จ๏ผ1๏ผๅฏ็จ
ding = ้้ๆบๅจไบบ
mailEnable = 1 # ๅฏ็จ้ฎไปถ้็ฅ๏ผ0๏ผไธๅฏ็จ๏ผ1๏ผๅฏ็จ
smtpHost = SMTPๆๅกๅจ
smtpPort = 465
smtpAccount = ้ฎไปถ่ดฆๅท
smtpPassword = ้ฎไปถๅฏ็
ๆณจ: ๅฏนไบ
[ldap]
,[jwt]
,[atomci]
ๅฏไปฅๅ็ ง้ๅฝ-ใ้ ็ฝฎ่ฏดๆใ่ฟ่กไฟฎๆน
# linux/mac็ฏๅข
$ make run
# windowns็ฏๅข๏ผๆๆฏๆฒกๆmakeๅฝไปค
$ go build -o atomci cmd/atomci/main.go; ./atomci
$ cd web
# ๅฎ่ฃ
ไพ่ต
$ yarn install #ไป
้ฆๆฌก่ฟ่กๆถ้่ฆๆง่ก
# ่ฟ่ก
$ yarn run dev
# ้ป่ฎค็จๆทๅ/ๅฏ็ admin/123456
http://your-ip:8081
$ cd web
$ pwd
# ./atomci/web/
$ cd web ; docker build .
$ pwd
# ./atomci
$ docker build .
ๅฆๆไฝ ไฝฟ็จ
docker-compsoe
ๆนๅผ้จ็ฝฒ็่ฏ๏ผๅฏไปฅ้่ฟๆฟๆข้ๅๅฐๅ็ๆนๅผ๏ผๅณๅฏไฝฟ็จmaster
ๅๆฏ็ๆๆฐไปฃ็ ๏ผ
ๅฏๆฅ้
AtomCI
็้กน็ฎ่ฎกๅ๏ผๅจๅฏนๅบissuesไธญๅๅค่ฎค้ข๏ผๆ่
็ดๆฅๆไบคPR๏ผๆ่ฐขไฝ ๅฏนAtomCI็่ดก็ฎ
่ดก็ฎๅ
ๆฌไฝไธ้ไบไปฅไธๆนๅผ๏ผ
- ๅธฎๅฉๆๆกฃ
- Bugไฟฎๅค
- ๆฐๅ่ฝๆไบค
- ไปฃ็ ไผๅ
- ๆต่ฏ็จไพๅฎๅ
่ฏทๅ้ Contribution Guide ่ทๅๆดๅค็ไฟกๆฏ๏ผ
Issuesๆฏๆฌ้กน็ฎๅฏไธ็ๆฒ้ๆธ ้๏ผๅฆๆๅจไฝฟ็จ่ฟ็จไธญ้ๅฐ้ฎ้ข๏ผ่ฏทๅ ๆฅ้ ๆๆกฃ๏ผๅฆๆไปๆ ๆณ่งฃๅณ๏ผ่ฏทๆฅ็็ธๅ ณๆฅๅฟ๏ผไฟๅญๆชๅพไฟกๆฏ๏ผ็ปๆไปฌๆไบค issue๏ผๆไปฌไผๅๆถๆ ่ฎฐใไฟฎๅคใ
AtomCI ๅ ไฝ ่ๅใ
้ ็ฝฎ้กน | ้ป่ฎคๅผ | ่ฏดๆ |
---|---|---|
default::appname |
atomci | ๅบ็จๅ |
default::httpport |
8080 | ๅบ็จไพฆๅฌ็ซฏๅฃ |
default::runmode |
dev | ่ฟ่กๆจกๅผdev |prod |
default::copyrequestbody |
true | ๆฏๅฆๅ ่ฎธๅจ HTTP ่ฏทๆฑๆถ๏ผ่ฟๅๅๅง่ฏทๆฑไฝๆฐๆฎๅญ่ |
ๆฅๅฟ้
็ฝฎ |
||
log::logfile |
log/atomci.log | ๆฅๅฟๆไปถ |
log::level |
7 | ๆฅๅฟ็บงๅซ |
log::separate |
["error"] | ๅ้error็ฌ็ซไธไธชๆไปถ, ้ป่ฎคๆฏatomci.error.log |
DB้
็ฝฎไฟกๆฏ |
||
DB::url |
root:root@tcp(127.0.0.1:3306)/atomci?charset=utf8mb4 | ๆฐๆฎๅบ็้พๆฅไฟกๆฏ |
DB::debug |
false | ๆฏๅฆๅผๅฏdebug |
DB::rowsLimit |
5000 | |
DB::maxIdelConns |
100 | |
DB::maxOpenConns |
200 | |
LDAP ้
็ฝฎไฟกๆฏ |
||
ldap::host |
ldap.xxx.com | |
ldap::port |
389 | |
ldap::bindDN |
ldap@xx.com | |
ldap::bindPassword |
Xxx.., | |
ldap::userFilter |
(samaccountname=%s) | |
ldap::baseDN |
OU=Xxx,DC=xx,DC=com | |
JWT ้
็ฝฎ |
||
jwt::secret |
changemeforsecurity | jwt็ๅ ๅฏไฝฟ็จ็ๅญๆฎต๏ผๅปบ่ฎฎไฟฎๆน |
atomci::url |
http://localhost:8080 | AtomCI ๅ่ฐๅฐๅ |