Sprytne Okazje — promocje, kody rabatowe i wyprzedaże

Generator pliku Jenkinsfile

Wygeneruj gotowy plik Jenkinsfile (Groovy DSL) dla Jenkins CI/CD. Konfiguruj agenta, Docker, testy, wdrożenie i opcje pipeline bez pisania kodu.

Bezpieczne (SSL)
Przetwarzanie Lokalne
100% Darmowe
Instrukcja
  • 1
    Wprowadź dane
    Wpisz treść, wklej tekst lub załaduj plik z dysku.
  • 2
    Kliknij przycisk
    Narzędzie natychmiast przetworzy Twoje dane w przeglądarce.
  • 3
    Pobierz wynik
    Skopiuj gotowy tekst lub zapisz plik na urządzeniu.
function runTool() {
  return "Wynik gotowy w 0.1s";
}
17 znaków
1 znaków

Styl

Deklaratywny

deklaratywny zalecany dla nowych pipeline-ów

Agent

Dowolny węzeł (any)

Stage-y

3

Checkout, Build, Test

Limit czasu

30 min

timeout(time: N, unit: 'MINUTES')

// Generated by Toolsti Jenkinsfile Builder
// Pipeline: MyApp CI Pipeline
pipeline {
  agent any
  options {
    buildDiscarder(logRotator(numToKeepStr: '30'))
    timeout(time: 30, unit: 'MINUTES')
    skipDefaultCheckout(true)
    timestamps()
    ansiColor('xterm')
    disableConcurrentBuilds()
  }
  environment {
    JAVA_TOOL_OPTIONS = '-Xmx1g'
    MAVEN_OPTS = '-Dmaven.repo.local=.m2'
  }
  stages {
    stage('Checkout') {
      steps {
        checkout scm
      }
    }
    stage('Build') {
      steps {
        sh 'mvn -B -DskipTests package'
      }
    }
    stage('Test') {
      steps {
        sh 'mvn -B test'
      }
    }
  }
  post {
    always {
      junit testResults: '**/target/surefire-reports/*.xml', allowEmptyResults: true
      archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true, allowEmptyArchive: true
      cleanWs()
    }
  }
}
Kolejność stage-y w tabeli = kolejność generowana w bloku stages
ElementCo generuje silnik
Deklaratywny pipeline { agent → options → triggers → environment → stages → post }; opcje wg checkboxów: buildDiscarder(logRotator(numToKeepStr: '30')), timeout(time: 30, unit: 'MINUTES'), skipDefaultCheckout(true), timestamps(), ansiColor('xterm'), disableConcurrentBuilds()
Skryptowy node('etykieta') { stage('...') { sh '...' } } — lżejszy szkielet Groovy: Checkout (checkout scm albo GitSCM z URL i gałęzią), Build, Test, Lint, Extra Steps; bez bloków options i post
Agent any → agent any; etykieta → agent { label 'linux' }; docker → agent { docker { image 'maven:3.9...' args '...' reuseNode true } } — dokładnie te trzy warianty obsługuje formularz
Stage-y wg opcji stałe: Checkout, Build; opcjonalne: Test (komenda testów), Lint (checkbox + komenda lint), Extra Steps (dodatkowe kroki), Docker Build (checkbox; przy push z withCredentials), Deploy (checkbox + komenda wdrożenia)
Przykładowy stage stage('Build') { steps { sh 'mvn -B -DskipTests package' } } — komenda wieloliniowa trafia do bloku sh w potrójnych apostrofach (heredoc Groovy)
post { always } junit testResults: '**/target/surefire-reports/*.xml', allowEmptyResults: true; archiveArtifacts artifacts: '**/target/*.jar', fingerprint: true; cleanWs() przy włączonym czyszczeniu przestrzeni roboczej
Wyzwalacze i env cron(wyzwalacz harmonogram) pojawia się tylko, gdy podasz wyrażenie cron; zmienne środowiskowe z pola env_vars trafiają do bloku environment (klucz = 'wartość')

Jenkinsfile trafia do repozytorium — traktuj go jak kod: bez haseł i tokenów, przeglądany w pull requestach. Plik ma nazwę bez rozszerzenia i leży w katalogu głównym projektu albo w ścieżce wskazanej w zadaniu (Pipeline script from SCM).

Warto wiedzieć — CI/CD a sekrety

Sekrety poza plikiem

Jenkinsfile leży w repozytorium, więc każde hasło wpisane dosłownie (w env_vars, komendach czy Deploy) staje się tajemnicą firmową dla wszystkich czytających git. Poświadczenia trzymaj w Jenkins Credentials Store i wstrzykuj przez withCredentials — kod tego narzędzia przy pushu do Dockera generuje dokładnie ten wzorzec (credentialsId).

docker login bez śladu

Wygenerowany stage logowania używa echo "${DOCKER_PASS}" | docker login --password-stdin — hasło idzie strumieniem, a nie flagą -p, która zostaje w historii procesów i outputach ps. To samo dotyczy npm publish, helm registry i każdego CLI z flagą hasła.

Logi builda też wyciekają

Jenkins maskuje wartości wypisane w bloku withCredentials, ale już echo $MOJ_TOKEN spoza tego bloku trafia do konsoli builda wprost. Ogranicz widoczność logów (Project-based security), rotuj sekrety po incydencie i nie loguj pełnych komend z --verbose.

Higiena pipeline-u

buildDiscarder czyszczy stare buildy (domyślnie 30), timeout zabija zawieszone joby, disableConcurrentBuilds chroni przed równoległym deploym na ten sam serwer, a cleanWs() w post{always} nie przenosi artefaktów między buildami. Te cztery opcje to minimum porządku w CI.

Oceń to narzędzie:

Powiązane narzędzia

Inne narzędzia, które mogą Ci się przydać

Builder pliku Jenkinsfile

Narzędzie online do generowania gotowych plików Jenkinsfile dla Jenkins CI/CD. Wystarczy wypełnić formularz — narzędzie tworzy poprawny, działający skrypt pipeline w formacie Groovy DSL, gotowy do umieszczenia w repozytorium.

Jenkins CI/CD Declarative Pipeline Scripted Pipeline Docker w Jenkins darmowe online

Do czego służy

Builder pliku Jenkinsfile pozwala każdemu programiście i inżynierowi DevOps szybko wygenerować plik konfiguracyjny dla Jenkins bez konieczności ręcznego pisania składni Groovy DSL. Narzędzie obsługuje oba style pipeline — deklaratywny (zalecany przez Jenkins) oraz skryptowy. Możesz skonfigurować agenta (dowolny węzeł, węzeł z etykietą lub kontener Docker), etapy budowania, testowania, lintowania i wdrożenia, integrację z rejestrami Docker, zbieranie raportów JUnit i artefaktów, zmienne środowiskowe, harmonogram cron oraz opcje takie jak znaczniki czasu, kolory ANSI czy wyłączenie równoległych buildów.

Jak używać

1. Wpisz nazwę projektu i wybierz styl pipeline (deklaratywny lub skryptowy). 2. Skonfiguruj agenta — dowolny węzeł, węzeł z etykietą lub agent Docker z konkretnym obrazem. 3. Podaj komendy budowania, testowania (opcjonalnie) i lintowania (opcjonalnie). 4. W razie potrzeby włącz budowanie obrazu Docker i wdrożenie. 5. Kliknij „Przetwórz" — gotowy Jenkinsfile pojawi się w ciemnym edytorze po prawej stronie. Skopiuj go do schowka lub pobierz bezpośrednio jako plik Jenkinsfile i umieść w głównym katalogu repozytorium.

Jak działa generator Jenkinsfile

Generator nie analizuje repozytorium i nie łączy się z serwerem Jenkinsa. Działa w całości w przeglądarce: wartości z formularza trafiają do szablonu Groovy DSL, a wynik jest zwykłym tekstem. Nic nie jest wysyłane na żadną maszynę i nic nie jest wykonywane — wpisane komendy są wyłącznie przepisywane do pliku, a uruchomi je dopiero agent Jenkinsa po commicie do repozytorium.

Mechanizm sprowadza się do trzech kroków: odczyt pól, złożenie bloków i sformatowanie całości. Każde pole odpowiada konkretnej dyrektywie — agent, environment, options, triggers, stages, post. Puste pole nie tworzy bloku: jeśli nie podasz komendy testów, w pliku nie pojawi się żaden etap testowania, a jeśli nie zaznaczysz archiwizacji artefaktów, nie zobaczysz wywołania archiveArtifacts. Dzięki temu wynik nie zawiera pustych sekcji, które trzeba by usuwać ręcznie.

Drugi mechanizm to wybór stylu. W trybie deklaratywnym generator buduje szkielet pipeline { agent ... stages { stage { steps { sh '...' } } } } i domyka go blokiem post z sekcjami always, success i failure. W trybie skryptowym powstaje blok node { ... } z krokami opakowanymi w Groovy, a zamiast sekcji post stosuje się konstrukcję try/catch/finally. Generator pilnuje przy tym wcięć, cudzysłowów i kolejności bloków, bo w pipeline deklaratywnym kolejność sekcji nie jest dowolna, a błędne wcięcie to najczęstsza przyczyna komunikatu o nieoczekiwanym kroku.

Przykład: Jenkinsfile dla aplikacji Node.js krok po kroku

  1. Wpisz nazwę projektu, na przykład sklep-api, i pozostaw styl deklaratywny, czyli Declarative Pipeline. Nazwa posłuży do opisania pipeline'u w pliku.
  2. W sekcji agenta wybierz opcję Docker i podaj obraz node:alpine, żeby wszystkie kroki wykonywały się w kontenerze z Node.js, a nie na współdzielonym agencie z nieprzewidywalnym środowiskiem.
  3. Uzupełnij komendy: budowanie — npm ci, testy — npm test, lintowanie — npm run lint. Każda z nich trafi do osobnego etapu i zostanie wywołana krokiem sh.
  4. Zaznacz zbieranie raportów JUnit oraz archiwizację artefaktów, np. katalogu dist. Dodaj zmienną środowiskową NODE_ENV o wartości production i wpisz harmonogram cron w formacie Jenkinsa, na przykład H 2 * * 1-5.
  5. Włącz opcje timestamps(), ansiColor('xterm') i disableConcurrentBuilds(), żeby log miał znaczniki czasu, kolory w konsoli, a dwa buildy tej samej gałęzi nie nakładały się na siebie.
  6. Kliknij „Przetwórz”. W edytorze po prawej stronie pojawi się gotowy plik z blokiem pipeline, agentem Docker, trzema etapami i sekcją post. Skopiuj go do schowka i zapisz w katalogu głównym repozytorium pod nazwą Jenkinsfile, a następnie dodaj do kontroli wersji razem z resztą kodu.

Mapowanie pól formularza na dyrektywy Jenkinsfile

Pole w formularzuDyrektywa w plikuKiedy się pojawia
Styl pipelinepipeline { } albo node { }Zawsze — decyduje o całej strukturze pliku
Agentagent any, agent { label '...' } lub agent { docker { image '...' } }Zawsze, na początku bloku pipeline
Komenda budowaniastage('Build') { steps { sh '...' } }Gdy pole budowania nie jest puste
Komenda testówstage('Test') oraz krok junitGdy podano komendę testów
Lintowaniestage('Lint') { steps { sh '...' } }Gdy podano komendę lintowania
Zmienne środowiskoweenvironment { NAZWA = 'wartosc' }Gdy dodano co najmniej jedną parę klucz–wartość
Harmonogramtriggers { cron('...') } w stylu deklaratywnymGdy wpisano wyrażenie cron
Opcje buildaoptions { timestamps(); ansiColor('xterm'); disableConcurrentBuilds() }Dla każdej zaznaczonej opcji osobny wpis
Artefakty i obraz DockerarchiveArtifacts, docker build i docker pushGdy włączono archiwizację lub budowanie obrazu

Praktyczne wskazówki

  • Trzymaj jeden etap na jedną odpowiedzialność — osobny stage dla budowania, testów i lintowania daje czytelny widok w interfejsie Jenkinsa i pozwala od razu zobaczyć, który krok padł.
  • Nie wpisuj sekretów wprost do pliku — tokeny rejestru Docker, klucze wdrożeniowe i hasła trzymaj w Jenkins Credentials, a w Jenkinsfile odwołuj się do nich przez credentials(). Wygenerowany plik łatwo trafia do repozytorium, więc wszystko, co w nim zapiszesz, staje się publiczne dla osób z dostępem do kodu.
  • Ustawiaj opcje na poziomie całego pipeline'u — znaczniki czasu, kolory ANSI i blokada równoległych buildów dotyczą całego uruchomienia, a nie pojedynczego etapu, dlatego należą do sekcji options, a nie steps.
  • Nadaj plikowi standardową nazwę i miejsce — konwencja to plik Jenkinsfile w katalogu głównym repozytorium; wtedy konfiguracja joba typu pipeline z SCM nie wymaga podawania własnej ścieżki.
  • Wersjonuj zmiany jak kod produkcyjny — modyfikacje Jenkinsfile wprowadzaj przez pull request i sprawdzaj na gałęzi testowej, zanim pójdą na gałąź główną.

Czego narzędzie nie zrobi

  • Nie waliduje komend — polecenia są przepisywane dosłownie. Literówka w komendzie albo brak odpowiedniego skryptu w pliku konfiguracyjnym projektu ujawni się dopiero podczas builda na agencie.
  • Nie sprawdza dostępnych wtyczek — agent Docker, zbieranie raportów JUnit, kolory ANSI i kroki rejestru obrazów wymagają odpowiednich wtyczek zainstalowanych na kontrolerze Jenkinsa. Generator nie ma wglądu w konfigurację serwera.
  • Nie tworzy bibliotek współdzielonych ani logiki multibranch — wygenerowany plik to pojedynczy pipeline. Dyrektywy bibliotek, własne kroki i konfiguracja skanowania gałęzi pozostają po stronie joba i repozytorium.
  • Nie zna realiów Twojego środowiska — etykiety węzłów, nazwy poświadczeń, ścieżki artefaktów, strefa czasowa Jenkinsa i nazwy rejestrów to wartości, których narzędzie nie zgadnie. Po wygenerowaniu pliku trzeba je dopasować ręcznie.
  • Nie generuje pliku Dockerfile ani skryptów pomocniczych — jeśli pipeline buduje obraz, sam Dockerfile i konfiguracja aplikacji muszą już istnieć w repozytorium.

Najczęstsze pytania

Czym różni się pipeline deklaratywny od skryptowego?

Pipeline deklaratywny (Declarative Pipeline) to nowszy, zalecaný format z czytelną, ustrukturyzowaną składnią opartą na blokach pipeline { }. Obsługuje wbudowane opcje jak timeouty, wyzwalacze i sekcję post. Pipeline skryptowy (Scripted Pipeline) to starszy format oparty na bloku node { } z pełną swobodą Groovy — przydatny przy skomplikowanej logice warunkowej.

Czy wygenerowany Jenkinsfile od razu działa z moim projektem?

Tak — wygenerowany plik zawiera kompletną, poprawną składnię Groovy DSL. Wystarczy umieścić go w głównym katalogu repozytorium (jako plik o nazwie Jenkinsfile) i wskazać go w konfiguracji zadania Jenkins (Pipeline from SCM). Ewentualne dostosowania (np. konkretne komendy buildowania) podajesz bezpośrednio w formularzu.

Jak dodać zmienne środowiskowe do pipeline?

W polu „Zmienne środowiskowe" wpisz pary klucz=wartość, każdą w nowej linii, np. JAVA_TOOL_OPTIONS=-Xmx1g. Narzędzie automatycznie umieści je w sekcji environment { } pipeline, dostępne we wszystkich stage'ach.

Czy mogę używać agenta Docker?

Tak. Wybierz typ agenta „Agent Docker" i podaj nazwę obrazu (np. maven:3.9-eclipse-temurin-17 lub node:20-alpine). Opcjonalnie podaj dodatkowe argumenty Docker. Wygenerowany Jenkinsfile użyje bloku agent { docker { ... } }, a Jenkins automatycznie uruchomi build wewnątrz kontenera.

Czy wygenerowany plik musi nazywać się Jenkinsfile?

Nie musi, ale to domyślna konwencja Jenkinsa. W jobie typu pipeline z SCM można wskazać inną nazwę lub ścieżkę, natomiast trzymanie pliku o nazwie Jenkinsfile w katalogu głównym repozytorium upraszcza konfigurację i jest powszechnie stosowane.

Czy agent Docker w Jenkinsfile wymaga dodatkowej instalacji?

Tak. Potrzebna jest wtyczka Docker Pipeline oraz działający demon Docker dostępny dla agenta. Bez tego krok z agentem kontenerowym zakończy się błędem już na starcie builda.

Co oznacza litera H w harmonogramie cron?

H to skrót od hash — Jenkins rozkłada nim obciążenie, żeby wiele jobów nie startowało w tej samej sekundzie. Standardowy cron tego nie obsługuje, dlatego wyrażenie z H działa tylko w konfiguracji triggerów Jenkinsa.

Który styl pipeline wybrać — deklaratywny czy skryptowy?

Domyślnie deklaratywny, bo jest czytelniejszy, ma wbudowane sekcje post, triggers i options oraz lepiej znosi błędy składni. Styl skryptowy wybierz wtedy, gdy potrzebujesz pętli, warunków i własnej logiki w Groovy.

Czy mogę od razu użyć gotowego pliku na produkcji?

Traktuj go jako poprawny szkielet, nie jako gotową konfigurację. Sprawdź komendy, etykiety agentów, nazwy poświadczeń i ścieżki artefaktów, a całość przepuść najpierw przez build na gałęzi testowej.

Zainstaluj Webp.pl Miej narzędzia we własnej kieszeni!