Làm cách nào tôi có thể kiểm tra thay đổi được thực hiện cho Jenkinsfile tại địa phương?


210

Khi viết các đường ống jenkins dường như rất bất tiện khi cam kết mỗi thay đổi mới để xem nó có hoạt động không.

Có cách nào để thực thi chúng cục bộ mà không cam kết mã không?

Câu trả lời:


139

Bạn không thể thực thi tập lệnh Pipeline cục bộ, vì toàn bộ mục đích của nó là tập lệnh Jenkins. (Đó là một lý do tại sao tốt nhất là giữ mã Jenkinsfilengắn và giới hạn mã thực sự liên quan đến các tính năng của Jenkins; logic xây dựng thực tế của bạn nên được xử lý bằng các quy trình bên ngoài hoặc công cụ xây dựng mà bạn gọi thông qua một dòng shhoặc batbước.)

Nếu bạn muốn kiểm tra sự thay đổi để Jenkinsfilesống nhưng không có cam kết đó, sử dụng các Replay tính năng được thêm vào trong 1,14

JENKINS-33925 theo dõi mong muốn cho khung kiểm tra tự động.


Bài đăng trên blog cho biết có nút 'phát lại'. Bất cứ ý tưởng ở đâu? Tôi dường như không thể xác định vị trí của nó.
BoltzmannBrain

8
@BoltzmannBrain, hãy truy cập trang Jenkins của công việc xây dựng của bạn. Ở phía bên trái, bạn sẽ thấy danh sách các lần chạy trước đó. Khi bạn di chuột qua ID chạy bản dựng (ví dụ: "# 123") hoặc ngày chạy bản dựng, một mũi tên nhỏ xuất hiện. Nhấp vào nó cho thấy một menu ngữ cảnh có tùy chọn "Phát lại". Tùy chọn này cũng có sẵn trên trang của bản dựng.
Chúc ngủ ngon Nerd Pride

2
Concference cho phép bạn thực thi các tập lệnh cục bộ của mình đối với máy chủ xây dựng mục tiêu, do đó bạn có thể xác thực nó sẽ thực sự hoạt động trên máy chủ từ xa trước khi thực hiện các thay đổi của bạn. concference.ci/fly-cli.html . Tính năng phát lại của Jenkins có phần giống với tính năng này ngoại trừ nó có những hạn chế và bạn phải tạo bản dựng trước để phát lại.
mdo123

2
Bạn có thể có một cái nhìn cho dự án này nhằm cung cấp những gì bạn đang tìm kiếm.
Romain

1
Hãy xem JenkinsPipelineUnit ( github.com/jenkinsci/JenkinsPipelineUnit )
user864279

78

Tôi có một giải pháp phù hợp với tôi. Nó bao gồm một jenkins địa phương chạy trong docker và hook web git để kích hoạt đường ống trong jenkins địa phương trên mỗi cam kết. Bạn không còn cần phải đẩy đến kho lưu trữ github hoặc bitbucket của mình để kiểm tra đường ống.

Điều này chỉ được thử nghiệm trong môi trường linux.

Nó khá đơn giản để thực hiện công việc này mặc dù hướng dẫn này là một chút dài. Hầu hết các bước đều ở đó.

Đây là những gì bạn cần

  • Docker cài đặt và làm việc. Đây không phải là một phần của hướng dẫn này.
  • Một Jenkins chạy trong bến tàu địa phương. Giải thích như thế nào dưới đây.
    • Các quyền thích hợp (khóa truy cập ssh) cho người dùng docker Jenkins cục bộ của bạn để lấy từ repo git cục bộ của bạn. Giải thích như thế nào dưới đây.
    • Một dự án đường ống Jenkins lấy từ kho git cục bộ của bạn. Giải thích bên dưới.
    • Một người dùng git trong Jenkins địa phương của bạn với các quyền tối thiểu. Giải thích bên dưới.
  • Một dự án git với một web hook sau cam kết kích hoạt dự án đường ống. Giải thích bên dưới.

Đây là cách bạn làm điều đó

Docker Jenkins

Tạo một tệp có tên Dockerfile thay cho lựa chọn của bạn. Tôi đang đặt nó để /opt/docker/jenkins/Dockerfilelấp đầy nó với điều này:

FROM jenkins/jenkins:lts
USER root
RUN apt-get -y update && apt-get -y upgrade
# Your needed installations goes here
USER jenkins

Xây dựng hình ảnh local_jenkins

Điều này bạn sẽ chỉ cần thực hiện một lần hoặc sau khi bạn đã thêm một cái gì đó vào Dockerfile.

$ docker build -t local_jenkins /opt/docker/jenkins/

Bắt đầu và khởi động lại local_jenkins

Thỉnh thoảng bạn muốn bắt đầu và khởi động lại jenkins một cách dễ dàng. Ví dụ, sau khi khởi động lại máy của bạn. Đối với điều này, tôi đã tạo một bí danh mà tôi đặt trong .bash_aliasesthư mục nhà của tôi.

$ echo "alias localjenkinsrestart='docker stop jenkins;docker rm jenkins;docker run --name jenkins -i -d -p 8787:8080 -p 50000:50000 -v /opt/docker/jenkins/jenkins_home:/var/jenkins_home:rw local_jenkins'" >> ~/.bash_aliases
$ source .bash_aliases  # To make it work

Đảm bảo /opt/docker/jenkins/jenkins_homethư mục tồn tại và bạn có quyền đọc và ghi quyền đối với người dùng.

Để bắt đầu hoặc khởi động lại jenkins của bạn, chỉ cần gõ:

$ localjenkinsrestart

Tất cả mọi thứ bạn làm trong jenkins địa phương của bạn sẽ được lưu trữ trong thư mục / opt / docker / jenkins / jenkins_home và được bảo quản giữa các lần khởi động lại.

Tạo khóa truy cập ssh trong docker jenkins của bạn

Đây là một phần rất quan trọng để làm việc này. Đầu tiên chúng ta khởi động container docker và tạo một bash shell cho nó:

$ localjenkinsrestart
$ docker exec -it jenkins /bin/bash

Bây giờ bạn đã nhập vào container docker, cái này bạn có thể thấy bởi một cái gì đó giống như jenkins@e7b23bad10aa:/$trong thiết bị đầu cuối của bạn. Băm sau @ sẽ chắc chắn khác nhau.

Tạo chìa khóa

jenkins@e7b23bad10aa:/$ ssh-keygen

Nhấn enter trên tất cả các câu hỏi cho đến khi bạn nhận được lời nhắc trở lại

Sao chép chìa khóa vào máy tính của bạn. Từ trong container docker máy tính của bạn là 172.17.0.1, bạn có nên tự hỏi.

jenkins@e7b23bad10aa:/$ ssh-copy-id user@172.17.0.1

user = tên người dùng của bạn và 172.17.0.1 là địa chỉ IP cho máy tính của bạn từ trong container docker.

Bạn sẽ phải nhập mật khẩu của bạn tại thời điểm này.

Bây giờ, hãy thử hoàn thành vòng lặp bằng cách ssh-ing vào máy tính của bạn từ trong thùng chứa docker.

jenkins@e7b23bad10aa:/$ ssh user@172.17.0.1

Lần này bạn không cần nhập mật khẩu. Nếu bạn làm như vậy, một cái gì đó đã đi sai và bạn phải thử lại.

Bây giờ bạn sẽ ở trong thư mục nhà máy tính của bạn. Hãy thử lsvà có một cái nhìn.

Đừng dừng lại ở đây vì chúng ta có một chuỗi vỏ ssh mà chúng ta cần phải thoát ra.

$ exit
jenkins@e7b23bad10aa:/$ exit

Đúng! Bây giờ chúng tôi đã trở lại và sẵn sàng để tiếp tục.

Cài đặt Jenkins của bạn

Bạn sẽ tìm thấy Jenkins địa phương trong trình duyệt của bạn tại http: // localhost: 8787 .

Lần đầu tiên bạn trỏ trình duyệt của mình đến Jenkins địa phương, bạn sẽ thấy tuyệt vời với Trình hướng dẫn cài đặt. Mặc định là tốt, hãy chắc chắn rằng bạn cài đặt plugin đường ống trong khi thiết lập.

Thiết lập jenkins của bạn

Điều rất quan trọng là bạn kích hoạt bảo mật dựa trên ma trận trên http: // localhost: 8787 / configureSecuritytự cung cấp cho mình tất cả các quyền bằng cách thêm chính mình vào ma trận và đánh dấu vào tất cả các ô. (Có một biểu tượng tick-all-box ở phía bên phải)

  • Chọn Jenkins’ own user databaselàm vương quốc bảo mật
  • Chọn Matrix-based securitytrong phần Ủy quyền
  • Viết tên người dùng của bạn trong trường User/group to add:và nhấp vào [ Add ]nút
  • Trong bảng trên, tên người dùng của bạn sẽ xuất hiện với biểu tượng người bên cạnh. Nếu nó được gạch chéo, bạn gõ tên người dùng của bạn không chính xác.
  • Đi đến bên phải của bảng và nhấp vào nút tick-all-hoặc đánh dấu thủ công tất cả các hộp trong hàng của bạn.
  • Vui lòng xác minh rằng hộp kiểm Prevent Cross Site Request Forgery exploitsđược bỏ chọn. (Vì Jenkins này chỉ có thể truy cập từ máy tính của bạn nên đây không phải là vấn đề lớn)
  • Nhấp vào [ Save ]và đăng xuất khỏi Jenkins và nhập lại chỉ để đảm bảo nó hoạt động. Nếu không, bạn phải bắt đầu lại từ đầu và làm trống /opt/docker/jenkins/jenkins_homethư mục trước khi khởi động lại

Thêm người dùng git

Chúng tôi cần cho phép git hook của chúng tôi đăng nhập vào Jenkins địa phương của chúng tôi với các quyền tối thiểu. Chỉ cần nhìn thấy và xây dựng công việc là đủ. Do đó, chúng tôi tạo một người dùng được gọi gitbằng mật khẩu login.

Hướng trình duyệt của bạn đến http: // localhost: 8787 / securityRealm / addUser và thêm gitlàm tên người dùng và loginmật khẩu. Bấm vào [ Create User ].

Thêm quyền cho người dùng git

Vào http: // localhost: 8787 / configureSecurity trang trong trình duyệt của bạn. Thêm người dùng git vào ma trận:

  • Viết gitvào trường User/group to add:và bấm vào[ Add ]

Bây giờ là lúc để kiểm tra các hộp cho quyền tối thiểu cho người dùng git. Chỉ những thứ này là cần thiết:

  • tổng thể: đọc
  • công việc: xây dựng
  • công việc: khám phá
  • công việc: đọc

Hãy chắc chắn rằng Prevent Cross Site Request Forgery exploitshộp kiểm được bỏ chọn và nhấp vào[ Save ]

Tạo dự án đường ống

Chúng tôi giả sử rằng chúng tôi có tên người dùng uservà dự án kích hoạt git của chúng tôi với Jenkinsfiletên được gọi projectvà được đặt tại/home/user/projects/project

Trong http: // localhost: 8787 Jenkins của bạn thêm một dự án đường ống mới. Tôi đặt tên cho nó là hookpipeline để tham khảo.

  • Bấm vào New Itemtrong menu Jenkins
  • Đặt tên cho dự án hookpipeline
  • Nhấp vào Đường ống
  • Nhấp chuột [ OK ]
  • Đánh dấu vào hộp kiểm Poll SCMtrong phần Build Triggers. Để trống Lịch trình.
  • Trong phần Đường ống:
    • lựa chọn Pipeline script from SCM
    • trong Repository URLtrường nhậpuser@172.17.0.1:projects/project/.git
    • trong Script Pathtrường nhậpJenkinsfile
  • Lưu dự án hookpipeline
  • Xây dựng hookpipeline bằng tay một lần, điều này là cần thiết để Poll SCM bắt đầu hoạt động.

Tạo móc git

Chuyển đến /home/user/projects/project/.git/hooksthư mục và tạo một tệp có tên post-commitnày:

#!/bin/sh
BRANCHNAME=$(git rev-parse --abbrev-ref HEAD)
MASTERBRANCH='master'

curl -XPOST -u git:login http://localhost:8787/job/hookpipeline/build
echo "Build triggered successfully on branch: $BRANCHNAME"

Làm cho tập tin này thực thi:

$ chmod +x /home/user/projects/project/.git/hooks/post-commit

Kiểm tra móc sau cam kết:

$ /home/user/projects/project/.git/hooks/post-commit

Kiểm tra Jenkins nếu dự án hookpipeline của bạn được kích hoạt.

Cuối cùng thực hiện một số thay đổi tùy ý cho dự án của bạn, thêm các thay đổi và thực hiện một cam kết. Điều này bây giờ sẽ kích hoạt các đường ống trong Jenkins địa phương của bạn.

Những ngày hạnh phúc!


Tôi đã phải thay thế docker build -t local_jenkins /opt/docker/jenkins/Dockerfilevới docker build -t local_jenkins /opt/docker/jenkinsvì Docker phàn nàn về "không thể để chuẩn bị bối cảnh: bối cảnh phải là một thư mục".
Etienne Neveu

1
Tôi đang gặp lỗi này trong Mac. Ai đó có thể vui lòng giúp tôi về điều này? >> LRI: ssh: kết nối với máy chủ 172.17.0.1 cổng 22: Kết nối bị từ chối -
Manoj Shrestha

@ManojShrestha: IP 172.17.0.1 là ip mặc định cho máy đang chạy các container docker. Bạn có thể sử dụng ip máy (MAC: s) của bạn để thay thế.
javabeangrinder

@ManojShrestha: Bạn cũng có thể thử tìm hiểu ip gateway của thiết lập của bạn như thế này: $ docker inspect jenkins | grep Gateway
javabeangrinder

2
Nếu máy chủ docker của bạn được cài đặt trên macOS và bạn muốn ssh đăng nhập vào nó từ bên trong container docker thì bạn nên ssh user@docker.for.mac.localhost thay vì sử dụng địa chỉ IP. Đồng thời đảm bảo rằng bạn đã bật tính năng Đăng nhập từ xa từ Tùy chọn hệ thống của macOs -> Menu Thư mục được chia sẻ
Paolo Angioletti

60

TL; DR


Thử nghiệm dài hạn Jenkins Pipeline ngày càng trở nên khó khăn. Không giống như cổ điển cách tiếp cận cấu hình công việc khai báo nơi người dùng bị giới hạn ở những gì UI tiếp xúc với Jenkins Pipeline mới là ngôn ngữ lập trình đầy đủ cho quy trình xây dựng nơi bạn trộn phần khai báo với mã của riêng bạn. Là nhà phát triển giỏi, chúng tôi cũng muốn có một số thử nghiệm đơn vị cho loại mã này.

Có ba bước bạn nên tuân theo khi phát triển Jenkins Pipelines. Các bước 1. nên bao gồm 80% các trường hợp sử dụng.

  1. Làm càng nhiều càng tốt trong các tập lệnh xây dựng (ví dụ: Maven, Gradle, Gulp, v.v.). Sau đó, trong các kịch bản đường ống của bạn chỉ cần gọi các nhiệm vụ xây dựng theo đúng thứ tự. Đường ống xây dựng chỉ phối hợp và thực hiện các nhiệm vụ xây dựng nhưng không có logic chính nào cần thử nghiệm đặc biệt.
  2. Nếu quy tắc trước đó không thể được áp dụng đầy đủ thì hãy chuyển sang thư viện Chia sẻ Đường ống nơi bạn có thể tự mình phát triển và kiểm tra logic tùy chỉnh và tích hợp chúng vào đường ống.
  3. Nếu tất cả những điều trên không làm bạn thất vọng, bạn có thể thử một trong những thư viện xuất hiện gần đây (tháng 3-2017). Khung thử nghiệm Đơn vị Đường ống Jenkins hoặc pipeUnit (ví dụ). Kể từ năm 2018 cũng có Jenkinsfile Runner , một gói để thực hiện các đường ống Jenkins từ một công cụ dòng lệnh.

Ví dụ

Các pipelineUnit GitHub repo chứa một số mẫu Spock về cách sử dụng khuôn khổ thử nghiệm Jenkins Pipeline Unit


1
Bạn cũng có thể bao gồm một so sánh ngắn gọn của hai thư viện?
sorin

23

Jenkins có tính năng 'Phát lại', cho phép bạn nhanh chóng phát lại công việc mà không cần cập nhật nguồn:

Tính năng phát lại


1
Lưu ý rằng nó hiển thị trên trang xây dựng, không phải trang dự án hoặc chi nhánh.
ArtOfWarfare

17

Tại thời điểm viết (cuối tháng 7 năm 2017) với plugin Blue Ocean, bạn có thể kiểm tra cú pháp của một đường ống khai báo trực tiếp trong trình chỉnh sửa đường ống trực quan . Trình chỉnh sửa, hoạt động từ Giao diện người dùng Blue Ocean khi bạn nhấp vào "cấu hình" chỉ cho các dự án github (đây là sự cố đã biết và họ đang làm việc để làm cho nó hoạt động trên git, v.v.).

Nhưng, như đã giải thích trong câu hỏi này, bạn có thể mở trình soạn thảo duyệt tới:

[Jenkins URL]/blue/organizations/jenkins/pipeline-editor/

Sau đó bấm vào giữa trang và nhấn Ctrl+S, điều này sẽ mở một textarea nơi bạn có thể dán một tập lệnh khai báo đường ống. Khi bạn nhấp vào Cập nhật , nếu có lỗi cú pháp, trình chỉnh sửa sẽ cho bạn biết lỗi cú pháp ở đâu. Giống như trong ảnh chụp màn hình này:

Như một bài kiểm tra nhanh, tôi đã gõ sai "bước" thay vì "bước"

Nếu không có lỗi cú pháp, textarea sẽ đóng và trang sẽ trực quan hóa đường ống của bạn. Đừng lo lắng nó sẽ không tiết kiệm được gì (nếu đó là một dự án github, nó sẽ cam kết thay đổi Jenkinsfile).

Tôi mới biết về Jenkins và điều này khá hữu ích, không có điều này tôi đã phải thực hiện một Jenkinsfile nhiều lần, cho đến khi nó hoạt động (rất khó chịu!). Hi vọng điêu nay co ich. Chúc mừng.


2
Đó là bởi vì vào năm 2017, Jenkins vẫn nhắm đến việc giải quyết các vấn đề về kỹ sư phần mềm theo điểm nhấn;) .... Ít nhất, Atom có ​​một kẻ nói dối Groovy đàng hoàng. Chỉ Groovy nhưng nó giúp.
sorin

Trình chỉnh sửa với tô sáng cú pháp cũng là một phần của giao diện người dùng jenkins cổ điển.
Vadimo

6

Một chút muộn cho bữa tiệc, nhưng đó là lý do tại sao tôi viết jenny, một sự tái hiện nhỏ của một số bước cốt lõi của Jenkinsfile. ( https://github.com/bmustiata/jenny )


Không có hành vi phạm tội, nhưng trừ khi bạn liên tục cập nhật công cụ của mình, nó sẽ khá vô dụng vì cú pháp đường ống luôn ở trong tình trạng thay đổi liên tục, có vẻ như hiện tại.
krad

Không được thực hiện. Từ những gì tôi đã thấy cho đến nay, cú pháp đường ống, nó được chuẩn hóa khá nhiều cho các bước đường ống cơ bản ( jenkins.io/doc/pipeline/steps/workflow-basic-steps ). Tôi đang sử dụng nó được 2 năm rồi mà không gặp phải bất kỳ thay đổi không tương thích ngược nào. Các plugin Jenkins không nên được sử dụng imho và API thay đổi có thể được trừu tượng hóa bằng các lệnh tùy chỉnh trong các thư viện dùng chung, nơi bạn sẽ có các đảm bảo API. Nếu bạn đang nói về cú pháp khai báo, điều đó có thể đúng. Tôi chỉ sử dụng API lập trình trong các đường ống của mình và đó là những gì Jenny hỗ trợ. Đá rắn :)
bogdan.mustiata

5

Theo như tôi biết thì Plugin Pipeline này là "Engine" của cơ chế Jenkinsfile mới, vì vậy tôi khá tích cực, bạn có thể sử dụng nó để kiểm tra các tập lệnh của mình.

Tôi không chắc chắn nếu có bất kỳ bước bổ sung cần thiết khi bạn sao chép nó vào Jenkinsfile, tuy nhiên cú pháp vv phải hoàn toàn giống nhau.

Chỉnh sửa: Tìm thấy tài liệu tham khảo trên "cơ", kiểm tra này mô tả tính năng, đoạn cuối cùng, mục đầu tiên.


5

Trong thiết lập phát triển của tôi - thiếu một trình soạn thảo Groovy thích hợp - rất nhiều vấn đề Jenkinsfile bắt nguồn từ các lỗi cú pháp đơn giản . Để giải quyết vấn đề này, bạn có thể xác thực Jenkinsfile theo trường hợp Jenkins của bạn (đang chạy tại $JENKINS_HTTP_URL):

curl -X POST -H $(curl '$JENKINS_HTTP_URL/crumbIssuer/api/xml?xpath=concat(//crumbRequestField,":",//crumb)') -F "jenkinsfile=<Jenkinsfile" $JENKINS_HTTP_URL/pipeline-model-converter/validate

Lệnh trên là một phiên bản sửa đổi một chút từ https://github.com/jenkinsci/pipeline-model-def định-plugin / wiki / xác nhận-(or-linting)-a-Declarative-Jenkinsfile- from-the-command- line


4
Đây chỉ là thứ tôi đang tìm kiếm - thật không may, nó chỉ hoạt động cho các đường ống khai báo và các đường ống không có kịch bản :(
thom_nic

2

Ngoài tính năng Phát lại mà những người khác đã đề cập (ditto về tính hữu dụng của nó!), Tôi cũng thấy những điều sau đây cũng hữu ích:

  1. Tạo một công việc Pipeline thử nghiệm trong đó bạn có thể nhập mã Pipeline hoặc trỏ đến repo / nhánh của Jenkinsfile để nhanh chóng kiểm tra một cái gì đó. Để kiểm tra chính xác hơn, hãy sử dụng Đường ống Multibranch trỏ đến ngã ba của chính bạn, nơi bạn có thể nhanh chóng thực hiện các thay đổi và cam kết mà không ảnh hưởng đến sản phẩm. Những thứ như BRANCH_NAME env chỉ khả dụng trong Multibranch.
  2. Vì Jenkinsfile là mã Groovy, chỉ cần gọi nó bằng "Groovy Jenkinsfile" để xác thực cú pháp cơ bản.

Sử dụng các công việc riêng biệt mà bạn có thể ẩn đi và không gây nhầm lẫn cho người dùng của mình là một trong những điều quan trọng nhất. Tôi chỉnh sửa các tập tin Jenkins với IntelliJ. Nó là khá tốt trong việc hiển thị lỗi cú pháp. Tuy nhiên, nút trả lời là điều quan trọng. Tôi tạo một nhánh với sự thay đổi cơ bản chạy - nó thường sai một chút. Sau đó tôi chỉnh sửa Jenkinsfile và sao chép và dán nó vào cửa sổ Phát lại và chạy lại - Tôi lặp lại điều này cho đến khi nó hoạt động tốt và sau đó cam kết phiên bản làm việc.
johnfo

1

Đặt khóa SSH của bạn vào hồ sơ Jenkins của bạn, sau đó sử dụng công cụ khai báo khai báo như sau:

ssh jenkins.hostname.here declarative-linter < Jenkinsfile

Điều này sẽ làm một phân tích tĩnh trên Jenkinsfile của bạn. Trong trình chỉnh sửa bạn chọn, xác định phím tắt chạy tự động lệnh đó. Trong Visual Studio Code, đây là những gì tôi sử dụng, đi đến Nhiệm vụ> Định cấu hình tác vụ, sau đó sử dụng JSON sau đây để tạo lệnh Xác thực Jenkinsfile :

{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "Validate Jenkinsfile",
      "type": "shell",
      "command": "ssh jenkins.hostname declarative-linter < ${file}"
    }
  ]
}

0

Tôi đang sử dụng phát lại trong tương lai, để thực hiện một số cập nhật và chạy nhanh.


1
Bạn có thể vui lòng cung cấp thêm một số thông tin về cách bạn thực hiện công việc này?
kosnik

1
Tôi đang sử dụng Bit-xô làm trình quản lý nguồn, sau đó tôi đã tạo một dự án trên Jenkins muốn tự động khám phá kho lưu trữ của mình, tôi khuyên bạn nên đăng bài này. Sau mỗi lần nhấn vào repo của tôi, Jenkins sẽ tự động phát tệp Jenkins của tôi và nếu thất bại, trên menu bên trái có một nút có tên là Phát lại, ==> nút này mở trình chỉnh sửa chứa tệp Jenkins của bạn, bạn có thể chỉnh sửa và phát lại công việc ,
AhmedDrira

0

Với một số hạn chế và đối với các đường ống dẫn kịch bản, tôi sử dụng giải pháp này:

  1. Công việc đường ống với một kịch bản Groovy nội tuyến:

node('master') {
    stage('Run!') {
                def script = load('...you job file...')
    }
}

  1. Jenkinsfile để thử nghiệm có cấu trúc tương tự như đối với lesfurets:

def execute() {
 ... main job code here ...
}
execute()
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.