ntuwang / atomci

๐Ÿณ ไธบ**ไผไธš่€Œๆฅ๏ผŒไปฅๅบ”็”จไธบไธญๅฟƒ็š„ไบ‘ๅŽŸ็”Ÿcicdๅนณๅฐ

Home Page:https://go-atomci.github.io/atomci-press/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

atomci

A+ codecov License

AtomCI ่‡ดๅŠ›ไบŽ่ฎฉไธญๅฐไผไธšๅฟซ้€Ÿ่ฝๅœฐKubernetes๏ผŒไปฃ็ ๅ‡ๅทฒๅผ€ๆบ, ๆ‚จ็š„star ๆ˜ฏๆˆ‘ไปฌๅผ€ๆบ็š„ๅŠจๅŠ›๏ผŒ้žๅธธๆ„Ÿ่ฐข๏ผˆ๏ผš

ๆžถๆž„ๅ›พ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚         โ”‚
โ”‚  Gitlab โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚         โ”‚      โ”‚      โ”‚ 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   โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜           โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

ๆบ่ตท

่ง†้ข‘ๆผ”็คบ

  1. ๆฆ‚่ฟฐๅŠๅฆ‚ไฝ•ๅฎ‰่ฃ…้ƒจ็ฝฒ ่ง†้ข‘้“พๆŽฅ
  2. ไป‹็ปๅŠๅฟซ้€Ÿๅผ€ๅง‹ ่ง†้ข‘้“พๆŽฅ
  3. 5ๅˆ†้’Ÿๅ…จๆต็จ‹ไฝ“้ชŒ ่ง†้ข‘้“พๆŽฅ

ๅŠŸ่ƒฝไป‹็ป

>่ฏท็งปๆญฅ

ๅฆ‚ไฝ•ๆœฌๅœฐ่ฟ่กŒ

ๅ‰็ฝฎๆกไปถ

  • go 1.15+
  • node v12.22.1
  • 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

ไธ€้”ฎ้ƒจ็ฝฒๆœ€ๆ–ฐ็‰ˆๆœฌ

  1. ๅ‡†ๅค‡ไธ€ๅฐๅฏไปฅๆญฃๅธธ่ฟ่กŒ็š„linuxๆœๅŠกๅ™จ๏ผˆๆ”ฏๆŒMacOS๏ผ‰
  2. ๅฎ‰่ฃ…Docker ๅ’Œ Docker Compose
curl -sSL https://raw.githubusercontent.com/go-atomci/atomci/master/deploy/docker-compose/quick_start.sh | bash

ๅฆ‚ไฝ•ๆž„ๅปบ้•œๅƒ

ๅ‰็ซฏ

$ cd web
$ pwd
# ./atomci/web/
$ cd web ; docker build . 

ๅŽ็ซฏ

$ pwd
# ./atomci
$ docker build .

ๅฆ‚ๆžœไฝ ไฝฟ็”จ docker-compsoeๆ–นๅผ้ƒจ็ฝฒ็š„่ฏ๏ผŒๅฏไปฅ้€š่ฟ‡ๆ›ฟๆข้•œๅƒๅœฐๅ€็š„ๆ–นๅผ๏ผŒๅณๅฏไฝฟ็”จmasterๅˆ†ๆ”ฏ็š„ๆœ€ๆ–ฐไปฃ็ ๏ผŽ

่ดก็Œฎ

AtomCI ๆฌข่ฟŽๅนถ้ผ“ๅŠฑ็คพๅŒบ่ดก็Œฎ๏ผŽ ่ฏทๅ‚้˜…Contribution Guide ่Žทๅ–ๆ›ดๅคš็š„ไฟกๆฏ๏ผŽ

ไบ’ๅŠจไบคๆต

AtomCIๅผ€ๅ‘่€…

Wechat


ๅทฒ็Ÿฅ้—ฎ้ข˜

AtomCI ไปๅœจไธๆ–ญๅฎŒๅ–„ไธญ๏ผˆ้—ฎ้ข˜ๅˆ—่กจ๏ผ‰๏ผŒ ๅฆ‚ๆžœไฝ ๅ‘็Žฐไฝ ๆƒณ็”จ็š„ไธ€ไบ›ๅŠŸ่ƒฝไธ่ƒฝๆญฃๅธธๅทฅไฝœ็š„่ฏ๏ผŒ็ƒฆ่ฏทๅˆ›ๅปบissue๏ผŒๆˆ‘ไปฌไผšๅŠๆ—ถๆ ‡่ฎฐใ€ไฟฎๅคใ€‚

AtomCI ๅ› ไฝ ่€Œๅ˜ใ€‚


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 ๅ›ž่ฐƒๅœฐๅ€

About

๐Ÿณ ไธบ**ไผไธš่€Œๆฅ๏ผŒไปฅๅบ”็”จไธบไธญๅฟƒ็š„ไบ‘ๅŽŸ็”Ÿcicdๅนณๅฐ

https://go-atomci.github.io/atomci-press/

License:Apache License 2.0


Languages

Language:Go 49.7%Language:Vue 32.0%Language:JavaScript 13.0%Language:CSS 4.3%Language:SCSS 0.6%Language:Shell 0.3%Language:Makefile 0.1%Language:Dockerfile 0.1%Language:HTML 0.1%