6

Tôi có dự án Gradle bao gồm một dự án chính và 2 dự án khác bao gồm sử dụng chỉ thị includeFlat. Mỗi dự án trong số 3 dự án này đều có repo riêng trên GitHub. Để xây dựng nó, tôi kiểm tra tất cả 3 dự án thành một thư mục chung phổ biến sau đó cd vào dự án chính và chạy gradle build. Và nó hoạt động tuyệt vời!Xây dựng nhiều dự án Gradle trong Jenkins với AWS CodePipeline

Bây giờ tôi cần triển khai ứng dụng kết quả đến AWS EB (Elastic Beanstalk) cũng hoạt động tốt khi tôi tạo các tạo tác cục bộ và sau đó triển khai thủ công. Tôi muốn tự động hóa quá trình vì vậy tôi đang cố gắng để thiết lập nó bằng cách sử dụng CodePipelines + Jenkins như mô tả trong this document điều chỉnh cho Gradle.

Vấn đề là nếu tôi chỉ định 3 nguồn trong đường ống, tôi kết thúc với các dự án của tôi được trích xuất trên đầu trang của nhau tạo ra một mớ hỗn độn trong không gian làm việc Jenkins. Tôi cần phải bằng cách nào đó cấu hình từng dự án để được xuất ra thư mục riêng của mình trong vùng làm việc Jenkins và tôi không thấy cách nào để làm điều đó (ít nhất là trong giao diện người dùng). Tôi cần bằng cách nào đó để cd vào thư mục chính để chạy gradle build và một lần nữa tôi không chắc chắn cách thực hiện điều đó

PS Những gợi ý tuyệt vời từ @Phil nhưng không may là dường như CodePipeline does not currently support Các mô-đun con hoặc phụ đề Git

+0

Bạn không thể sử dụng thứ gì đó như git submodules? https://git-scm.com/docs/gitsubmodules – Phil

+0

Ý tưởng thú vị mặc dù tôi rất thích có cấu trúc dự án phẳng – Bostone

+0

Nhưng bạn chưa có bản repos riêng cho từng dự án? Bạn có thể tạo một dự án cha khác bao gồm tất cả chúng vào các thư mục riêng của chúng như các mô-đun phụ và sử dụng nó cho xây dựng của bạn – Phil

Trả lời

0

Tôi sẽ bắt đầu xây dựng chung, khi những thay đổi xảy ra trên bất kỳ 3 repos nào. Với nói rằng 5 phút chậm trễ, để có xây dựng duy nhất, ngay cả khi thay đổi được giới thiệu với nhiều hơn thì một repo.

Tôi không thể thấy cách tốt để đối phó với triển khai theo cách khác hơn là sử dụng eb deploy ... cách cũ ... Vui lòng cài đặt các công cụ aws tại máy jenkins của bạn. Tạo công việc triển khai được kích hoạt khi xây dựng thành công. Và đặt kịch bản bash triển khai ở đó. Vui lòng đặt thêm chi tiết về triển khai của bạn, theo cách đó tôi có thể trợ giúp với tập lệnh triển khai.

+0

Jenkins đã chạy trên EC2. Tôi không rõ bạn đang đi đâu với cái này? Tôi nghĩ rằng tôi đã nêu rõ vấn đề của tôi đủ rõ ràng: 3 dự án GitHub, 1 master, 2 subprojects (includeFlat). Tôi nghĩ rằng những gì bạn đang đề xuất là khá nhiều những gì tôi mô tả trong bình luận của tôi để đăng bài chính: có một kích hoạt trên các dự án liên quan, bỏ qua mã ban đầu và làm scm từ kịch bản gradle (bash trong trường hợp của bạn). Tại thời điểm này nó không có giá trị rắc rối cho tôi, tiếc là – Bostone

+0

Trên jenkins của bạn cài đặt aws công cụ, với tiện ích 'eb'.Tạo công việc sẽ triển khai tạo tác của bạn. Hoặc theo cách khác - làm jenkis những gì bạn đang làm bằng tay. Có lẽ với các kịch bản, không phải trong giao diện điều khiển aws, nhưng đó chỉ là công cụ khác nhau. –

Các vấn đề liên quan