Pipeline jako kod w Jenkins z użyciem Jenkinsfile
Zdefiniuj deklaratywnie etapy budowania, testowania i wdrażania w pliku Jenkinsfile przechowywanym w repozytorium, aby sam pipeline był wersjonowany razem z aplikacją.
Pipeline jako kod w Jenkins z użyciem Jenkinsfile to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Potok jako kod
Zamiast ręcznie konfigurować zadania w interfejsie Jenkins, należy opisać cały potok w pliku Jenkinsfile przechowywanym w repozytorium. Potok staje się kodem: można go przeglądać, wersjonować i przenosić.
Deklaratywne a skryptowane
Jenkins oferuje dwie składnie. Potoki deklaratywne mają uporządkowaną strukturę i są przyjazne dla początkujących, natomiast potoki skryptowane wykorzystują pełnię możliwości Groovy. Skupimy się na potokach deklaratywnych.
Blok pipeline
Każdy deklaratywny plik Jenkinsfile zaczyna się od bloku pipeline, który zawiera element agent (miejsce wykonywania) oraz element stages.
pipeline {
agent any
stages {
stage('Build') {
steps { echo 'Building...' }
}
}
}Definiowanie etapów
Każdy element stage grupuje powiązane elementy steps. Etapy są wyświetlane jako kolumny w interfejsie Jenkins, zapewniając czytelny wizualny obraz postępu potoku.
stages {
stage('Build') { steps { sh 'make build' } }
stage('Test') { steps { sh 'make test' } }
}Uruchamianie kroków powłoki
Krok sh uruchamia polecenie powłoki na agencie. Można go używać do kompilowania kodu, uruchamiania testów lub budowania obrazu Docker.
steps {
sh 'docker build -t myapp:${BUILD_NUMBER} .'
}Zmienne środowiskowe
Blok environment definiuje zmienne dostępne we wszystkich krokach. Jenkins udostępnia również wbudowane zmienne, takie jak BUILD_NUMBER i GIT_COMMIT.
environment {
REGISTRY = 'registry.example.com'
IMAGE = 'myapp'
}Powiązywanie danych uwierzytelniających
Nigdy nie należy wpisywać sekretów bezpośrednio w kodzie. Należy przechowywać je w danych uwierzytelniających Jenkins i pobierać za pomocą pomocnika credentials(), aby były ukrywane w dziennikach.
environment {
REG_PASS = credentials('registry-password')
}Akcje po wykonaniu
Blok post jest uruchamiany po zakończeniu etapów, zależnie od wyniku. Doskonale nadaje się do wysyłania powiadomień i sprzątania.
post {
success { echo 'Pipeline succeeded' }
failure { echo 'Pipeline failed' }
always { sh 'docker image prune -f' }
}Etapy równoległe
Można przyspieszyć pracę, uruchamiając niezależne zadania w elemencie parallel — na przykład testy jednostkowe i integracyjne jednocześnie.
stage('Tests') {
parallel {
stage('Unit') { steps { sh 'make unit' } }
stage('Integration') { steps { sh 'make int' } }
}
}Etapy warunkowe
Dyrektywa when uruchamia etap tylko wtedy, gdy spełniony jest warunek — na przykład wdrażając zmiany wyłącznie z głównej gałęzi.
stage('Deploy') {
when { branch 'main' }
steps { sh './deploy.sh' }
}Potoki wielogałęziowe
Wystarczy wskazać repozytorium w Jenkins, a wykryje on każdą gałąź zawierającą plik Jenkinsfile i automatycznie utworzy dla niej osobny potok. Gałęzie funkcji otrzymują CI bez dodatkowej konfiguracji.
Szybkie sprawdzenie
Gdzie znajduje się definicja potoku deklaratywnego?
Podsumowanie
Można już definiować potoki jako kod:
pipeline { agent; stages }to szkielet deklaratywny- Kroki
shuruchamiają polecenia, aenvironmenticredentials()zarządzają konfiguracją post,paralleliwhenrozszerzają możliwości- Potoki wielogałęziowe automatycznie zapewniają CI każdej gałęzi
Plik Jenkinsfile znajduje się razem z kodem i rozwija się wraz z nim.
Często zadawane pytania
Czy lekcja „Pipeline jako kod w Jenkins z użyciem Jenkinsfile” jest bezpłatna?
Tak — pełny tekst „Pipeline jako kod w Jenkins z użyciem Jenkinsfile” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Co nauczysz się w „Pipeline jako kod w Jenkins z użyciem Jenkinsfile”?
Zdefiniuj deklaratywnie etapy budowania, testowania i wdrażania w pliku Jenkinsfile przechowywanym w repozytorium, aby sam pipeline był wersjonowany razem z aplikacją. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?
Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Pipeline jako kod w Jenkins z użyciem Jenkinsfile”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?
Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Wprowadzenie do Jenkins
- Budowanie obrazów Docker za pomocą Jenkins
- Automatyczne wdrażanie za pomocą Jenkins
- Pipeline jako kod w Jenkins z użyciem Jenkinsfile