Halo semuanya.
Artikel ini ditulis dengan gaya "DevOps for Housewives" sederhana dari ibu rumah tangga yang sama. Ini akan menjelaskan kejutan apa yang mungkin Anda temui saat menyiapkan proyek di TeamCity. Saya juga akan memberikan rekomendasi bagaimana masalah ini dapat diatasi.
Hal berikut ini berdasarkan pengalaman saya selama dua tahun menyiapkan build TeamCity, membaca laporan bug, dan bertukar pendapat dengan rekan kerja di lantai pabrik. Saya tidak berpura-pura menjadi kebenaran tertinggi, karena pendekatan SDD (Stackoverflow Driven Development) terutama digunakan dalam pekerjaan.
Sedikit bantuan:
- TeamCity β CI (Continous Integration) . "" Gitlab CI, Github Actions .
- (Project) β , . TeamCity ->-> .
- (Build) β . " ", " ", " ". .
- (Build step) β " " "runner type". Bash , Docker .
TeamCity :
- ~30 , Bash, Ansible Python.
- Android , Web , Docker, k8s . , , .
- , Kotlin DSL ( ).
, . "".
1
( ). : , git , cron . .
: . 2008 .
, : . . 1 , 1 . , . .
, build chain ( ). , .
2 Build chain or not β
( + ) build chain. , . , ?
: ( ). . , ( ). , .
, ? , . β . , , , . , "" , ( , ), .
, "" , , : . . : , .
3
3*N , . , , . "", . N , . , , . , , .
, , YAML Developer'.
4
Kotlin DSL ( , ). , : , ?
: " ". : ( ).
- , . β Kotlin DSL.
: / , . , - ID , .
5 TeamCity API
"" 4 DevOps. TeamCity , ("Deployment Frequency" "Lead Time for Changes").
API , . , - , , . , "Assign investigation", . .
, API β build chain - "" . . Python . .
6 Bash
, :
./command_1.sh # always fail
ls # always success
. :
./command_1.sh # always fail
if [ $? -ne 0 ]; then
echo "##teamcity[buildProblem description='Build failed']"
fi
ls # always success
7
TeamCity -, API . , *
. : . echo
β . :
cat > constants.json <<- EOM
{
"key": "%value%"
}
EOM
, , . Python , , JSON. ? , : JSON, , TeamCity. , : JSON. JSON TeamCity . JSON , .
8
. ( Kotlin DSL + TeamCity API), . . ( Firefox Network).
-
- load: 9.87 s
- DOMContentLoaded: 4.92 s
- Finish: 34.39 s
- Size/transferred size of all requests: 10.69 MB / 2.42 MB
- Requests: 345
-
- load: 4.59 s
- DOMContentLoaded: 1.27 s
- Finish: 27.42 s
- Size/transferred size of all requests: 11.53 MB / 2.23 MB
- Requests: 120
Finish β . . , ?
9
. Overview. . 99% . ( -) β ", stderr
", ", stderr
". Ansible - "WARNING: Deprecation setting...". TeamCity. .
10
, (Build agents). TeamCity master , , . (), TeamCity .
β . - , , . , - JAVA_HOME
. . . - , . ( TeamCity "").
β , . , "". , . . " !" β . : build chain? , , , . , "Run build on the same agent". , ?
β . (, root
, ). - , . 90% β print("Hello, World!")
.
( ). , . " β ".