ืงืขืกืืืืขืจืืืง ืืืคึผืืืืืึทื ื ืืื ืึท ืกืคึผืขืฆืืขื ืฆืืืึทื ื ืืื ืืืืืืืืืจื ืึทื ืืืืืงืืื ื ืืืึธืก ืืื ืืขื ืืฆื ืฆื ืืขืฉืืืื ื, ืืขืฉืึธืืขื ืืื ืืคืืฉืึทื ืืื ืื ืกืืจืืืขื ื ืคืึทืจืฉืืื ืคืึทื ืืงืฉืึทื ื ืืื ืืืืืืืืืจื.
ืืขืจ ืืืืคึผื ืืขืืึทื ืง ืืื ืฆื ืฉืึทืคึฟื ืึท ืคืึทืจืืึธืืืขื ืึธืืึทืืืืืื ืคึผืจืึธืฆืขืก ืืืึธืก ืึทืืึทืื ืื ืืขืืืขืืึธืคึผืขืจ ืฆื ืืขืฉืืืื ื ืฆืืฉืืขืื ืื ืคืึทืจืืืง ืคึผืจืึธืืืงื ืฆื ืืขืจ ืืึทื ืืฆืขืจ. ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื, ืงืขืกืืืืขืจืืืง ืขื ืืขืจืื ืืขื ืืขื ืขื ืืขืืืื ืืื ืคึผืจืึธืืืงืฆืืข - ืืึธืก ืืื ืืขืจืืคื ืึท ืงืขืกืืืืขืจืืืง ืขืงืกืคึผืจืขืก ืจืขืจื - ืืื ืืข (CD ืจืขืจื - ืืื ืืข).
Skillbox ืจืขืงืึทืืขื ืื: ืคึผืจืึทืงืืืฉ ืงืืจืก
"ืืึธืืื ืืขืืืขืืึธืคึผืขืจ ืคึผืจืึธ" .ืืืจ ืืขืจืืึธื ืขื ืืืจ: ืคึฟืึทืจ ืึทืืข ืืืืขื ืขืจ ืคืื "ืืืจ" - ืึท ืึทืจืึธืคึผืจืขืืขื ืขื ืคืื 10 ืจืืื ืืืขื ืืืจ ืคืึทืจืฉืจืืึทืื ืืื ืงืืื ืกืงืืืืึธืงืก ืงืืจืก ื ืืฆื ืื ืคึผืขืจืืึธืืฉืึทื ืึทื ืงืึธื "ืืืจ".
ืฆื ืงืึธื ืืจืึธืืืจื ืื ืืืืคื, ืืืจ ืงืขื ืขื ื ืืฆื ืึท ืืจืืื ืงืืื ืคืื ืืืฉืืจืื, ืึทืจืืึทื ืืขืจืขืื ื ืืึทืฆืึธืื ืืื ืืึธืจ ืคืจืื. ืืขืจ ืึทืจืืืงื ืืืฉืจืืืื ืืจืื ืคืื ืื ืืขืจืกื ืคืึธืืงืก ืกืึทืืืฉืึทื ื ืฆืืืืฉื ืืขืืืขืืึธืคึผืขืจืก ืืืึธืก ืงืขื ืขื ืืืื ื ืืฆืืง ืคึฟืึทืจ ืืขืืขืจ ืคึผืจืึธืืจืึทืืืกื.
ืืืฉืขื ืงืื ืก
ืืึธืจ ืืื-ืงืึทื ืืืื ื ืึธืคึฟื ืืงืืจ ืึธืืึทืืืืฉืึทื ืกืขืจืืืขืจ. ืขืก ืืื ืืืขืจื ืืจืืขืื ืืื ืฆื ืึธืืึทืืืื ืึทืืข ืืื ืื ืคืื ืืึทืกืงืก ืฉืืึทืืืช ืฆื ืืืืขื, ืืขืกืืื ื, ืฉืืคึผืื ื ืึธืืขืจ ืืืคึผืืืืื ื ืืืืืืืืืจื.
ืืื ืืืื ืคึผืืกื ืจืขืงืืืืจืขืืขื ืฅ:
- 256 ืืขืืืืืืื ืืึทืจืึทื, 1 ืืืืืืืื ืืขืงืข ืคึผืืึทืฅ.
ืึธืคึผืืืืึทื:
- 1 ืืืืืืืื ืืึทืจืึทื, 50 ืืืืืืืื ืฉืืืขืจ ืคืึธืจ.
ืฆื ืึทืจืืขืื, ืืืจ ืืืขื ืืืื ืืึทืจืคึฟื ื ืึธื ืืืืืืืืืจื - Java Runtime Environment (JRE) ืืืขืจืกืืข 8.
ืื ืึทืจืงืึทืืขืงืืฉืขืจ (ืคืึทืจืฉืคึผืจืืืื ืงืึทืืคึผืืืืื ื) ืงืืงื ืืื ืืึธืก:
Jenkins Server ืืื ืึท ืืึทื ืืึธื ืืืจืื ื ืืืึธืก ืืื ืคืึทืจืึทื ืืืืึธืจืืืขื ืคึฟืึทืจ GUI ืืึธืกืืื ื, ืืื ืืขืืื ื ืืื ืึธืจืืึทื ืืืืื ื ืืื ืขืงืกืึทืงืืืืื ื ืื ืืื ืฆืข ืืืืขื.
Jenkins Node / Slave / Build Server - ืืขืืืืกืขืก ืืืึธืก ืงืขื ืขื ืืืื ืงืึทื ืคืืืืขืจื ืฆื ืืืจืืคืืจื ืืืืขื ืึทืจืืขื ืืื ืืืืึทืฃ ืคืื ืื ืืืจ (ืืืืคึผื ื ืึธืืข).
ืื ืกืืึทืืืจืื ื ืคึฟืึทืจ ืืื ืืงืก
ืขืจืฉืืขืจ ืืืจ ืืึทืจืคึฟื ืฆื ืืืืื ืื Jenkins ืจืืคึผืึทืืึทืืึธืจื ืฆื ืื ืกืืกืืขื:
cd /tmp && wget -q -O โ
ืืขืจืืืึทื ืืืงื ืคึผืขืงื ืจืืคึผืึทืืึทืืึธืจื:
sudo apt update
ืื ืกืืึทืืืจื Jenkins:
sudo apt ืื ืกืืึทืืืจื ืืืฉืขื ืงืื ืก
ื ืึธื ืืขื, Jenkins ืืืขื ืืืื ืืืจืขืืืืื ืืื ืื ืกืืกืืขื ืืืจื ืื ืคืขืืืงืืึทื ืคึผืึธืจื 8080.
ืฆื ืงืึธื ืืจืึธืืืจื ืื ืคืึทื ืืงืฉืึทื ืึทืืืื, ืืืจ ืืึทืจืคึฟื ืฆื ืขืคึฟืขื ืขื ืื ืึทืืจืขืก ืืื ืืขื ืืืขืืขืจืขืจ
ืืืฆื ืึทืืฅ ืืื ืืจืืื ืฆื ืืืื, ืืืจ ืงืขื ืขื ืึธื ืืืืื ืงืจืืืืืื ื ืกื / ืกื ืคืืึธืื. ืื ืืจืึทืคืืงืึทื ืฆืืืื ื ืคืื ืื ืืืึธืจืงืืขื ืืฉ ืงืืงื ืืื ืืึธืก:
Jenkins Strengths:
- ืกืงืึทืืึทืืืืืื ืฆืืืขืฉืืขืื ืืืจื ืื ืืืจ / ืฉืงืืึทืฃ ืึทืจืงืึทืืขืงืืฉืขืจ;
- ืึทืืืืืืึทืืืืึทืื ืคืื REST XML / JSON API;
- ืื ืคืืืืงืืื ืฆื ืคืึทืจืืื ืื ืึท ืืจืืืก ื ืืืขืจ ืคืื ืืงืกืืขื ืฉืึทื ื ืืึทื ืง ืฆื ืคึผืืืืื ืก;
- ืึทืงืืืื ืืื ืงืขืกืืืืขืจ ืืืืึทืืืืื ื ืงืื.
ืงืึธื ืก:
- ืขืก ืืื ืงืืื ืึทื ืึทืืืืืงืึทื ืืืึธืง;
- ื ืื ืืืืขืจ ืืึทื ืืฆืขืจ-ืคืจืืึทื ืืืขื ืฆืืืื ื.
TeamCity
ืืขืฉืขืคื ืึทื ืืืืืงืืื ื ืคึฟืื JetBrains. ืืขืจ ืกืขืจืืืขืจ ืืื ืืื ืืื ืคึผืฉืื ืกืขืืึทืคึผ ืืื ืึท ืืืกืืขืฆืืืื ื ืฆืืืื ื. ืื ืคืขืืืงืืึทื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืื ืึท ืืจืืืก ื ืืืขืจ ืคืื ืคืึทื ืืงืฉืึทื ื, ืืื ืื ื ืืืขืจ ืคืื ืื ืืืฆื ืคึผืืืืื ืก ืืื ืงืขืกืืืืขืจ ืื ืงืจืืกืื ื.
ืจืืงืืืืืจื Java Runtime Environment (JRE) ืืืขืจืกืืข 8.
ืื ืกืขืจืืืขืจ ืืึทืื ืืืึทืจื ืจืขืงืืืืจืขืืขื ืฅ ืืขื ืขื ื ืื-ืงืจืืืืฉ:
- ืืึทืจืึทื - 3,2 ืืืืืืืื;
- ืคึผืจืึทืกืขืกืขืจ - ืฆืืืืืขื ืืืง-ืืึทืจืฅ, 3,2 ืืื;
- ืงืึธืืื ืืงืึทืฆืืข ืงืึทื ืึทื ืืื ืึท ืงืึทืคึผืึทืฆืืืขื ืคืื 1 ืื / s.
ืืขืจ ืกืขืจืืืขืจ ืึทืืึทืื ืืืจ ืฆื ืืขืจืืจืืืื ืืืื ืคืึธืจืฉืืขืืื ื:
- 60 ืคึผืจืึทืืืฉืขืงืก ืืื 300 ืืืืขื ืงืึทื ืคืืืืขืจืืืฉืึทื ื;
- 2 ืื ืึทืืึทืงืืืฉืึทื ืคึฟืึทืจ ืืืืขื ืงืืึธืฅ;
- 50 ืืืืขื ืืืขื ืื;
- ืื ืคืืืืงืืื ืฆื ืึทืจืืขืื ืืื 50 ื ืืฆืขืจืก ืืื ืื ืืืขื ืืืขืจืกืืข ืืื 30 ืืืืขืจื ืืื ืื IDE;
- 100 ืงืึทื ืขืงืฉืึทื ื ืคืื ืคืื ืืจืืืกื ืืืง ืืืงืก, ืืืืฉืึทืืืึทืื ืคึผืขืจืคืึธืจืกืข ืืื ืกืืืืืขืจืกืืึธื. ืื ืืืจืืฉื ืืืืขื ืืืืฉื ืฆืืื ืืื 120 ืกืขืงืื ืืขืก;
- ืืขืจ ืืื 150 ืืึธืืืคืืงืึทืืืึธื ืก ืคึผืขืจ ืืึธื;
- ืืจืืขืื ืืื ืื ืืึทืืึทืืืืก ืืืืฃ ืืืื ืกืขืจืืืขืจ;
- JVM ืกืขืจืืืขืจ ืคึผืจืึธืฆืขืก ืกืขืืืื ืืก: -Xmx1100m -XX:MaxPermSize=120m.
ืึทืืขื ื ืืืืขืจืคืขื ืืฉื ืืขื ืขื ืืืืืจื ืืืืฃ ืคืืืกื ืืืง ืึทืกืขืืืืื. ืื ืืืืคึผื ืึทืจืืขื ืคืื ืื ืกืขืจืืืขืจ ืืื ืฆื ืืึธื ืืืึธืจ ืึทืืข ืงืึธื ื ืขืงืืขื ืืืขื ืื ืืื ืคืึทืจืฉืคึผืจืืืื ืื ืจืื ืึทืกืขืืืืื ืฆื ืื ืืืขื ืื ืืืืืจื ืืืืฃ ืงืึทืืคึผืึทืืึทืืืืึทืื ืจืขืงืืืืจืขืืขื ืฅ, ืจืืคึผืึธืจืืื ื ืื ืจืขืืืืืึทืื. ืึทืืขื ืฅ ืงืืืขื ืืื ืึท ืคืึทืจืฉืืืื ืงืืึทื ืคืื ืคึผืืึทืืคืึธืจืืก ืืื ืึธืคึผืขืจืืืืื ื ืกืืกืืขืืขื, ืคึผืืืก ืึท ืคืึทืจ-ืงืึทื ืคืืืืขืจื ืกืืืืืืข.
ืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืื ืืืืขื ืจืขืืืืืึทืื ืืื ืกืืึธืจื ืืื ืื ืืึทืืึทืืืืก. ืืคึฟืจื, ืืึธืก ืืื ืืขืฉืืืืข ืืื ืื ืืขืจืข ืขื ืืขื ืืึทืื, VCS ืขื ืืขืจืื ืืขื, ืึทืืขื ืฅ, ืืืืขื ืงืืื, ืืึทื ืืฆืขืจ ืึทืงืึทืื ืฅ ืืื ืคึผืขืจืืืฉืึทื ื. ืื ืืึทืืึทืืึทืกืข ืืื ื ืืฉื ืึทืจืืึทื ื ืขืืขื ืืืืื ืืืืขื ืืึธืืก ืืื ืึทืจืืึทืคืึทืงืฅ.
ืื ืกืืึทืืืจืื ื ืคึฟืึทืจ ืืื ืืงืก
ืฆื ืืึทื ืืืึทืื ืื ืกืืึทืืืจื TeamCity ืืื ืึท Tomcat ืกืขืจืืืืขื ืงืึทื ืืืื ืขืจ, ืืืจ ืืึธื ื ืืฆื ืื TeamCity ืึทืจืงืืืื: TeamCity .tar.gz. ืืจืืคืงืืคืืข
tar -xfz TeamCity.tar.gz
/bin/runAll. ืฉ [ืึธื ืืืื|ืืึทืืื]
ืืืขื ืืืจ ืขืจืฉืืขืจ ืึธื ืืืื, ืืืจ ืืึทืจืคึฟื ืฆื ืืืืกืงืืืึทืื ืืขื ืืืคึผ ืคืื ืืึทืืึทืืืืก ืืื ืืืึธืก ืื ืคึฟืึทืจืืึทืืืื ื ืืึทืื ืืืขื ืืืื ืกืืึธืจื.
ืื ืคืขืืืงืืึทื ืงืึทื ืคืืืืขืจืืืฉืึทื ืืืืคื ืืืืฃ
ืื ืกืืจืขื ืืงืืก ืคืื TeamCity:
- ืคึผืฉืื ืกืขืืึทืคึผ;
- ืืึทื ืืฆืขืจ-ืคืจืืึทื ืืืขื ืฆืืืื ื;
- ืึท ืืจืืืก ื ืืืขืจ ืคืื ืืขืืืื-ืืื ืคืึทื ืืงืฉืึทื ื;
- ืฉืืืฆื ืืื ืกื;
- ืขืก ืืื ืึท RESTful API;
- ืืื ืืึทืงืืืืขื ืืืืฉืึทื;
- ืืื ืืืืขืจืืืึทื.
ืงืึธื ืก:
- ืืืืืืขื ืื ืืึทืืจืืืฉืึทื;
- ืืึธืก ืืื ืึท ืืึทืฆืึธืื ืืขืฆืืึทื;
- ื ืงืืืื ืข ืงืืืื (ืืืึธืก, ืึธืืขืจ, ืืืืงืกื).
GoCD
ืึทื ืึธืคึฟื ืืงืืจ ืคึผืจืืืขืงื ืืืึธืก ืจืืงืืืืืขืจื Java Runtime Environment (JRE) ืืืขืจืกืืข 8 ืคึฟืึทืจ ืื ืกืืึทืืืจืื ื ืืื ืึธืคึผืขืจืึทืฆืืข.
ืกืืกืืขื ืืืืขืจืคืขื ืืฉื:
- ืืึทืจืึทื - 1 ืืืืืืืื ืืื ืืืื, ืืขืจ ืืื ืืขืกืขืจ;
- ืคึผืจืึทืกืขืกืขืจ - ืฆืืืืืขื ืืืง-ืืึทืจืฅ, ืืื ืึท ืืึทืจืฅ ืึธืคืืงืืึทื ืคืื 2 ืืื;
- ืฉืืืขืจ ืคืึธืจ - ืืืึท ืืื ืืกืืขืจ 1 ืืืืืืืื ืคืื ืคืจืื ืคึผืืึทืฅ.
ืึทืืขื ื:
- ืืึทืจืึทื - ืืืึท ืืื ืืกืืขืจ 128 ืืขืืืืืืื, ืคึผืจืขืคืขืจืึทืืื ืืขืจ;
- ืคึผืจืึทืกืขืกืขืจ - ืืืึท ืืื ืืกืืขืจ ืงืกื ืืืงืก ืืื.
ืืขืจ ืกืขืจืืืขืจ ืื ืฉืืจื ืื ืึธืคึผืขืจืึทืฆืืข ืคืื โโืืืขื ืื ืืื ืืื ืึท ืืึทืงืืืขื ืฆืืืื ื ืคึฟืึทืจ ืื ืืึทื ืืฆืขืจ:
ืกืืึทืืขืก / ืืืฉืึธืืก / ืืึทืกืงืก:
ืื ืกืืึทืืืจืื ื ืคึฟืึทืจ ืืื ืืงืก
ืืืืืขืจืงืึธื "ืืขื
ืืจืืึทืื
add-apt-repository ppa: openjdk-r/ppa
ืึทืคึผื-ืืึทืงืืืขื ืืขืจืืืึทื ืืืงื
apt-get install -y openjdk-8-jre
apt-get install go-server
apt-get install go-agent
/etc/init.d/go-server [ืึธื ืืืื|ืืึทืืื|ืกืืึทืืืก|ืจืืกืืึทืจื]
/etc/init.d/go-agent [ืึธื ืืืื|ืืึทืืื|ืกืืึทืืืก|ืจืืกืืึทืจื]
ืืืจื ืคืขืืืงืืึทื, GoCd ืืืืคื ืืืืฃ
ืื ืกืืจืขื ืืงืืก ืคืื GoCd:
- ืึธืคึฟื ืืงืืจ;
- ืคึผืฉืื ืื ืกืืึทืืืจืื ื ืืื ืงืึทื ืคืืืืขืจืืืฉืึทื;
- ืืื ืืึทืงืืืืขื ืืืืฉืึทื;
- ืืจืืืก ืืึทื ืืฆืขืจ ืฆืืืื ื:
- ืื ืคืืืืงืืื ืฆื ืืืืึทืื ืื GoCD ืืืคึผืืืืืึทื ื ืคืื ืฉืจืื-ืืืจื-ืฉืจืื ืืื ืืืื ืืืื ืื ื:
- ืืืกืืขืฆืืืื ื ืึทืจืืืกืืืืึทืื ืคืื ืื ืจืขืจื - ืืื ืืข ืกืืจืืงืืืจ:
- GoCD ืึธืคึผืืืืืืขืก ืื ืงืึธืืคึผืึทืงืืืืกืง ืืืึธืจืงืคืืึธืื ืืื ืื ืืขืจืกื ืคืึธืืงืก ืืืึธืืงื ืื ืืืืืจืึทื ืืึทื ืฅ ืึทืจืืึทื ืืขืจืขืื ื Docker, AWS;
- ืื ืืขืฆืืึทื ืืืื ืขืก ืืขืืืขื ืฆื ืคืึทืจืจืืืื ืคึผืจืึธืืืขืืก ืืื ืื ืจืขืจื - ืืื ืืข, ืคึฟืึทืจ ืืืึธืก ืขืก ืืื ืืจืึทืงืื ื ืืขืืขืจ ืขื ืืขืจืื ื ืคืื ืืืขืจืืขืื ืฆื ืืืคึผืืืืืึทื ื ืืื ืคืึทืงืืืฉ ืฆืืื.
ืงืึธื ืก:
- ืืื ืืื ืืกืืขืจ ืืืื ืึทืืขื ื ืืื ืืืจืฃ;
- ืขืก ืืื ืงืืื ืงืึทื ืกืึธืื ืฆื ืืืืึทืื ืึทืืข ืืขืขื ืืืงื ืืึทืกืงืก;
- ืฆื ืืืกืคืืจื ืืขืืขืจ ืืึทืคึฟืขื, ืืืจ ืืึทืจืคึฟื ืฆื ืฉืึทืคึฟื ืืืื ืึทืจืืขื ืคึฟืึทืจ ืื ืจืขืจื - ืืื ืืข ืงืึทื ืคืืืืขืจืืืฉืึทื;
- ืฆื ืื ืกืืึทืืืจื ืืขื ืคึผืืืืื, ืืืจ ืืึทืจืคึฟื ืฆื ืืึทื ืื .jar ืืขืงืข ืฆื /plugins/external ืืื ืจืืกืืึทืจื ืื ืกืขืจืืืขืจ;
- ืืขืคืืขืจืขื ืงืืืื ืงืื.
ืืื ืึท ืืกืงื ื
ืืึธืก ืืขื ืขื ืืืืื ืืจืื ืืืฉืืจืื, ืืื ืคืึทืงื ืขืก ืืขื ืขื ืคืืืข ืืขืจ. ืขืก ืืื ืฉืืืขืจ ืฆื ืงืืืึทืื, ืึทืืื ืืืจ ืืืฉืืืื ืืึทืจืคึฟื ืฆื ืืึทืฆืึธืื ืืคืืขืจืงืืึทืืงืืึทื ืฆื ื ืึธื ืึทืกืคึผืขืงืฅ.
ืืขืจ ืขืคึฟืขื ืขื ืืงืืจ ืงืึธื ืคืื ืื ืืขืฆืืึทื ืืืื ืขืก ืืขืืืขื ืฆื ืคึฟืึทืจืฉืืืื ืืืึธืก ืขืก ืืื, ืคึผืืืก ืืืืื ื ืืึท ืคึฟืขืึดืงืืืื ืคืึทืกืืขืจ. ืืืขืจ ืืืื ืขืคึผืขืก ืืื ื ืืฉื ืึทืจืืขืื, ืืืจ ืืืื ืคืึทืจืืึธืื ืืืืื ืืืืฃ ืืื ืืื ืื ืืืืฃ ืคืื ืื ืงืื. ืืึทืฆืึธืื ืืืฉืืจืื ืฆืืฉืืขืื ืฉืืืฆื ืืืึธืก ืงืขื ืืื ืืืื ืงืจืืืืฉ.
ืืืื ืืืืขืจืืืื ืืื ืืืื ืฉืคึผืืฅ ืืืืืขืจืงืืึทื, ืขืก ืืื ืืืขืจื ืืจืืขืื ืืื ืึท ืืืืข ืืขืฆืืึทื. ืืืื ื ืื, ืืฉืืืื ื ืึท ืกืึทืึทืก ืืืืืื ื ืืื ืึท ืืื ืึธืคึผืฆืืข.
ืืื ืืขืกืึธืฃ, ืืื ืกืืจ ืฆื ืขื ืฉืืจ ืึท ืืืืช ืขืคืขืงืืืื ืงืขืกืืืืขืจืืืง ืืืคึผืืืืืึทื ื ืคึผืจืึธืฆืขืก, ืืืจ ืืึทืจืคึฟื ืฆื ืคืึธืจืืืืืจื ืงืจืืืืืจืืึท ืืืขืืขื ืก ืกืคึผืขืกืืคืืงืก ืืืขื ืืึธืื ืืืจ ืฆื ืฉืืึธื ืื ืงืืื ืคืื ืคืึทืจืึทื ืขื ืืืฉืืจืื.
Skillbox ืจืขืงืึทืืขื ืื:
- ืฆืืืื-ืืึธืจ ืคึผืจืึทืงืืืฉ ืงืืจืก
"ืืื ืืื ืึท ืืืขื ืืขืืืขืืึธืคึผืขืจ ืคึผืจืึธ" .- ืึธื ืืืื ืงืืจืก
"C# ืืขืืืขืืึธืคึผืขืจ" .- ืคึผืจืึทืงืืืฉ ืืึธืจ ืงืืจืก
"PHP ืืขืืืขืืึธืคึผืขืจ ืคึฟืื 0 ืฆื ืคึผืจืึธ" .
ืืงืืจ: www.habr.com