Wypróbowaliśmy już podejścia wymienione poniżej:
- https://github.com/oliverlockwood/jenkinsfile-idea-plugin
- https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij
Po wielu godzinach przeszukiwania sieci przez wiele dni nadal nie znaleźliśmy pomocnego źródła w tej sprawie. Dlatego wydaje się sensowne zadać tutaj nowe pytanie.
Rozwijamy nasze projekty Java w idei IntelliJ i chcemy zintegrować nasze kompilacje z Jenkins. Kiedy tworzymy plik Jenkins w Idea, nie otrzymujemy podświetlania składni ani automatycznego uzupełniania. Ponieważ jesteśmy nowi w Jenkins, te funkcje byłyby dla nas naprawdę przydatne. Jak możemy sprawić, by Idea była bardziej pomocna dzięki Jenkinsfiles?
Jeśli nie ma możliwości uzyskania podświetlania składni i automatycznego uzupełniania dla pliku Jenkins w pomyśle, jakie inne edytory byłyby pomocne?
Proszę zanotować:
- pracujemy nad projektami java, a nie świetnymi projektami.
Wypróbowaliśmy już wtyczkę https://github.com/oliverlockwood/jenkinsfile-idea-plugin . Kiedy wtyczka jest aktywowana, plik Jenkins jest rozpoznawany jako taki, ale zamiast podświetlania składni otrzymujemy komunikat o błędzie, patrz poniżej.
pipeline { agent { docker 'maven:3.3.3' } stages { stage('build') { steps { sh 'echo Hello, World!' } } } }
Pomysł podkreśla „p” z „potoku” jako błąd. Komunikat o błędzie brzmi:
JenkinsTokenType.COMMENT, JenkinsTokenType.CRLF lub JenkinsTokenType.STEP_KEY oczekiwano, otrzymano „p”
Dzięki za pomoc!
Odpowiedzi:
Jeśli chcesz, aby IDEA rozpoznawał plik Jenkinsfile jako plik Groovy, możesz dodać ciąg „Jenkinsfile” jako prawidłowy wzorzec nazwy pliku (zwykle zawiera zakończenia plików) dla plików Groovy. Jest to obsługiwane „zaraz po wyjęciu z pudełka”, bez konieczności stosowania dodatkowej wtyczki (z wyjątkiem wtyczki „Groovy”, która jest już częścią IDEA).
W tym celu przejdź do menu ustawień, otwórz element „Edytor”, a następnie „Typy plików”. Teraz wybierz „Groovy” z górnej listy i dodaj „Jenkinsfile”. Możesz również użyć wyrażenia regularnego, takiego jak „Jenkinsfile *”, jeśli chcesz być bardziej elastyczny w kwestii opcjonalnego zakończenia pliku dla Jenkinsfile.
Teraz ustawienie powinno wyglądać następująco:
Twój przykład wygląda teraz tak w IDEA (z motywem Draculi):
Tak więc IDEA zapewnia teraz podświetlanie składni i automatyczne uzupełnianie, o ile wiem. Sugeruje istniejące nazwy funkcji / metod podczas pisania, ale nie jestem programistą Groovy, więc nie mogę stwierdzić, czy brakuje niektórych sugestii.
źródło
*.declarative
został przypisany typ pliku tekstowego.Inną opcją jest użycie shabangu na wierzchu pliku Jenkins w ten sposób
#!/usr/bin/env groovy
. Możesz również wypróbować gdsl: https://st-g.de/2016/08/jenkins-pipeline-autocompletion-in-intellij, ale jak dotąd nie obsługuje on deklaratywnych potoków: https: //issues.jenkins-ci .org / przeglądaj / JENKINS-40127źródło
Poniżej znajduje się opinia, którą otrzymaliśmy od IntelliJ . Zajmiemy się tym, jeśli będziemy w stanie zapewnić działające rozwiązanie.
Andrey Dernov, IntelliJ, 14 grudnia, 07:50 CET
Witaj Georg, nie ma specjalnego wsparcia Intellisense Editor do edycji plików Jenkins w IDE. Będziesz musiał napisać do tego niestandardową wtyczkę językową.
Lub możesz rozważyć wdrożenie takiej obsługi, pisząc Kotlin DSL. Kilka przykładów na początek.
źródło
Patrząc na kod źródłowy wygląda na to, że KOMENTARZE nie są zdefiniowane (są zakomentowane w kodzie)
STEP_KEY jest zdefiniowany jako: STEP_NAME = "sh" | "równolegle"
Nie jestem pewien, czy wtyczka robi znacznie więcej i nie była aktualizowana od 2 lat.
źródło
Jeśli dodasz
nagłówek do pliku jenkins, powinieneś uzyskać świetne podświetlanie składni w IDE.
źródło
Użyj w
sh
ten sposób, a błąd powinien zniknąć (zadziałał dla mnie) ...steps { sh """ echo 'Hello, World!' """ }
źródło