kzen.dev
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
Nayana Adassuriya
Nayana Adassuriya
Question

Jenkins scripted pipa atau pipa deklaratif

I'm mencoba untuk mengubah saya gaya lama proyek dasar alur kerja untuk pipa berdasarkan Jenkins. Sementara akan melalui docs saya menemukan ada dua sintaks yang berbeda bernama ditulis dan deklaratif. Seperti Jenkins web deklaratif sintaks rilis baru-baru ini (akhir tahun 2016). Meskipun ada sintaks baru rilis Jenkins masih mendukung scripted sintaks juga.

Sekarang, aku'm tidak yakin di mana situasi masing-masing dari kedua jenis ini akan menjadi pertandingan terbaik. ditulis sintaks akan menjadi usang segera? Jadi akan deklaratif menjadi masa depan Jenkins pipa?

Siapa saja yang dapat berbagi beberapa pemikiran tentang dua sintaks jenis.

87 2017-04-19T01:55:22+00:00 5
Vadim Kotov
Vadim Kotov
Pertanyaan edit 24 Mei 2017 в 2:11
Pemrograman
continuous-integration
jenkins
jenkins-pipeline
Solution / Answer
Nayana Adassuriya
Nayana Adassuriya
7 Oktober 2017 в 2:38
2017-10-07T02:38:50+00:00
Lebih
Sumber
Sunting
#33299292

Ketika Jenkins Pipa pertama kali dibuat, Groovy terpilih sebagai yayasan. Jenkins telah lama dikirim dengan aplikasi yang tertanam Groovy mesin untuk menyediakan teknologi scripting kemampuan untuk admin dan pengguna sama. Selain itu, pelaksana dari Jenkins Pipa ditemukan Groovy menjadi dasar yang kuat untuk membangun apa yang sekarang disebut sebagai "Scripted Pipa" DSL.

Karena itu adalah sepenuhnya fitur pemrograman lingkungan, Scripted Pipa menawarkan sejumlah besar fleksibilitas dan ekstensibilitas untuk Jenkins pengguna. Groovy learning-curve tidak biasanya diinginkan untuk semua anggota dari suatu tim, sehingga Deklaratif Pipa diciptakan untuk menawarkan lebih sederhana dan lebih berpendirian sintaks untuk authoring Jenkins Pipa.

kedua, keduanya pada dasarnya sama Pipa sub-sistem di bawahnya. Mereka berdua tahan lama implementasi "Pipa sebagai kode." Mereka berdua dapat menggunakan langkah-langkah yang dibangun ke dalam Pipa atau disediakan oleh plugin. Keduanya mampu memanfaatkan Ruang Perpustakaan

di Mana mereka berbeda namun dalam sintaks dan fleksibilitas. Deklaratif batas-batas apa yang tersedia untuk pengguna dengan lebih ketat dan pra-didefinisikan struktur, menjadikannya pilihan ideal untuk sederhana terus-menerus pengiriman pipa. Scripted memberikan beberapa batas, sejauh bahwa hanya membatasi pada struktur dan sintaks cenderung didefinisikan oleh Groovy itu sendiri, bukan dari Pipa-sistem tertentu, menjadikannya pilihan ideal untuk pengguna dan orang-orang dengan persyaratan yang lebih kompleks. Seperti namanya, Deklaratif Pipa mendorong deklaratif model pemrograman. Sedangkan Scripted Pipa mengikuti lebih penting model pemrograman.

Disalin dari https://jenkins.io/doc/book/pipeline/syntax/#compare

 Charles
Charles
Jawaban edit 26 November 2018 в 6:09
74
0
Anda punya pertanyaan? Tambahkan di situs dan dapatkan jawabannya secara instan
id.kzen.dev
 CodyK
CodyK
6 Desember 2017 в 8:07
2017-12-06T20:07:55+00:00
Lebih
Sumber
Sunting
#33299293

Hal lain untuk mempertimbangkan adalah deklaratif pipa memiliki script() langkah. Ini dapat menjalankan scripted pipa. Jadi rekomendasi saya akan menggunakan deklaratif pipa, dan jika diperlukan menggunakan skrip ' () untuk scripted pipa. Oleh karena itu anda mendapatkan yang terbaik dari kedua dunia.

Micha Wiedenmann
Micha Wiedenmann
Jawaban edit 18 Juli 2018 в 1:35
51
0
Anda punya pertanyaan? Tambahkan di situs dan dapatkan jawabannya secara instan
id.kzen.dev
 eamon1234
eamon1234
12 Agustus 2018 в 3:27
2018-08-12T15:27:54+00:00
Lebih
Sumber
Sunting
#33299294

Saya membuat beralih ke deklaratif baru-baru ini dari scripted dengan kubernetes agen. Sampai dengan akhir juli '18 deklaratif pipa didn't memiliki kemampuan penuh untuk menentukan kubernetes polong. Namun dengan penambahan yamlFile langkah anda sekarang dapat membaca pod template dari sebuah file yaml dalam repo.

Hal ini kemudian memungkinkan anda menggunakan misalnya vscode's besar kubernetes plugin untuk memvalidasi pod template, kemudian membaca ke Jenkinsfile dan menggunakan wadah dalam langkah-langkah sebagai anda silahkan.

pipeline {
  agent {
    kubernetes {
      label 'jenkins-pod'
      yamlFile 'jenkinsPodTemplate.yml'
    }
  }
  stages {
    stage('Checkout code and parse Jenkinsfile.json') {
      steps {
        container('jnlp'){
          script{
            inputFile = readFile('Jenkinsfile.json')
            config = new groovy.json.JsonSlurperClassic().parseText(inputFile)
            containerTag = env.BRANCH_NAME + '-' + env.GIT_COMMIT.substring(0, 7)
            println "pipeline config ==> ${config}"
          } // script
        } // container('jnlp')
      } // steps
    } // stage

Seperti disebutkan di atas, anda dapat menambahkan script blok. Contoh pod template dengan custom jnlp dan docker.

apiVersion: v1
kind: Pod
metadata:
  name: jenkins-pod
spec:
  containers:
  - name: jnlp
    image: jenkins/jnlp-slave:3.23-1
    imagePullPolicy: IfNotPresent
    tty: true
  - name: rsync
    image: mrsixw/concourse-rsync-resource
    imagePullPolicy: IfNotPresent
    tty: true
    volumeMounts:
      - name: nfs
        mountPath: /dags
  - name: docker
    image: docker:17.03
    imagePullPolicy: IfNotPresent
    command:
    - cat
    tty: true
    volumeMounts:
      - name: docker
        mountPath: /var/run/docker.sock
  volumes:
  - name: docker
    hostPath:
      path: /var/run/docker.sock
  - name: nfs
    nfs:
      server: 10.154.0.3
      path: /airflow/dags
15
0
 burnettk
burnettk
19 April 2017 в 2:23
2017-04-19T02:23:03+00:00
Lebih
Sumber
Sunting
#33299290

deklaratif muncul untuk menjadi yang lebih di masa depan-bukti pilihan dan salah satu yang orang yang merekomendasikan. it's hanya satu Visual Pipa Editor dapat dukungan. mendukung validasi. dan itu berakhir setelah sebagian dari kekuatan scripted karena anda bisa jatuh kembali ke scripted dalam banyak konteks. kadang-kadang ada orang yang datang dengan menggunakan kasus di mana mereka dapat't cukup melakukan apa yang mereka ingin lakukan dengan deklaratif, tapi ini umumnya orang-orang yang telah menggunakan scripted untuk beberapa waktu, dan fitur ini kesenjangan kemungkinan besar dalam waktu dekat.

lebih banyak konteks: https://jenkins.io/blog/2017/02/03/declarative-pipeline-ga/

13
0
Anda punya pertanyaan? Tambahkan di situs dan dapatkan jawabannya secara instan
id.kzen.dev
 Baghel
Baghel
30 Agustus 2017 в 10:18
2017-08-30T10:18:37+00:00
Lebih
Sumber
Sunting
#33299291

Jenkins dokumentasi dengan benar menjelaskan dan membandingkan kedua jenis.

Untuk kutipan: "Scripted Pipa menawarkan sejumlah besar fleksibilitas dan ekstensibilitas untuk Jenkins pengguna. Groovy learning-curve tidak biasanya diinginkan untuk semua anggota dari suatu tim, sehingga Deklaratif Pipa diciptakan untuk menawarkan lebih sederhana dan lebih berpendirian sintaks untuk authoring Jenkins Pipa.

Dua keduanya pada dasarnya sama Pipa sub-sistem di bawahnya."

Baca lebih lanjut di sini:https://jenkins.io/doc/buku/pipa/syntax/#membandingkan

6
0
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Andrei Kalinin
Terdaftar 2 minggu yang lalu
2
Koroleva Ego
Terdaftar 1 bulan yang lalu
3
Star Lenon
Terdaftar 1 bulan yang lalu
4
Данил Жевнеров
Terdaftar 1 bulan yang lalu
5
Анна Литвиненко
Terdaftar 2 bulan yang lalu
Anda punya pertanyaan? Tambahkan di situs dan dapatkan jawabannya secara instan
id.kzen.dev
ES
ID
JA
KO
ZH
© kzen.dev 2023
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi