Cách thực hiện: đẩy repo GitHub đến các máy chủ plugin wordpress


21

Tôi phát triển plugin của mình trên github nhưng khi triển khai, tôi phải sao chép các thay đổi của mình vào Wordpress SVN . Hiện tại tôi làm điều này bằng tay và sao chép qua từng tệp trong từng thư mục riêng lẻ, nhưng điều này rất tốn thời gian và dễ bị lỗi.

Tôi đã xem và thử một vài tập lệnh nhưng tôi nghĩ rằng tôi phải chạy sai vì chúng bị lỗi hoặc không sao chép chính xác các tập tin.

Vì vậy, câu hỏi của tôi là có ai đạt được điều này tự động và nếu vậy làm thế nào bạn làm điều đó?

Cảm ơn!


Mặc dù tôi nghĩ rằng đây là câu hỏi thú vị và hữu ích nhưng nó cũng nằm ngoài phạm vi vì đó là về sự tương tác của Git và Subversion và không có gì về nó cụ thể đối với WordPress. Tôi cần nghĩ điều gì sẽ là hành động tốt nhất ở đây ...
Hết

Tôi đã bắt đầu câu hỏi về meta để thảo luận về trường hợp này.
Rarst

@Rarst cảm ơn vì điều đó, xin lỗi vì đã đặt nhầm câu hỏi
studioromeo

Câu trả lời:


1

xem hướng dẫn này từ một đồng nghiệp trong nhóm của tôi: http://www.farbeyondprogramming.com/2011/09/81-how-to-deploy-a-wordpress-plugin-with-git-svn

nhưng anh ta không sử dụng giải pháp, làm việc riêng biệt dễ dàng hơn :(


Cảm ơn @bueltge. Vì vậy, tôi có đúng khi nghĩ rằng anh ta đã trở lại phương pháp thủ công?
studioromeo

4
Vì tình yêu của tất cả những gì là thánh, đừng làm theo hướng dẫn trên trang web đó. Nếu bạn đột nhiên thực hiện hàng trăm cam kết với SVN của chúng tôi, cá nhân tôi sẽ thực hiện mục tiêu của cuộc đời tôi là tìm bạn và đánh bạn bằng gậy. Hoặc có thể chỉ cấm bạn từ WordPress.org. ;) Vui lòng chỉ cam kết phiên bản cuối cùng, không phải mỗi một trong những thay đổi của bạn mà bạn đã cam kết git. Chúng tôi đánh giá cao lịch sử của bạn, nhưng chỉ có lịch sử có ý nghĩa. Vấn đề với git là mọi người cam kết vô số chuyện tào lao vô dụng, và chúng ta không cần phải biết tất cả những thứ đó, nói chung.
Otto

@Otto Lol! Không, tôi chỉ đơn giản là muốn có thể triển khai các thay đổi của mình cho repo SVN. Hiện tại làm điều này ghi đè thủ công các tệp trong repo svn đã kiểm tra của tôi nhưng đó là tẻ nhạt và dễ bị lỗi. Bạn có đề nghị nào không?
studioromeo

3
Thực hiện phản hồi tương tác các thay đổi Git của bạn sẽ cho phép bạn kết hợp chúng thành một cam kết SVN duy nhất. Thông tin thêm về cách thực hiện việc này có tại đây: stackoverflow.com/questions/158514/ cấp
Otto

1
@Otto " Tôi không biết, thành thật mà nói, tôi không sử dụng Git. Tôi thấy phiền phức. " Có thể được trả lời bằng một trích dẫn khác (trực tiếp từ bạn) " Cá nhân tôi sẽ đặt mục tiêu cuộc sống của mình là tìm bạn và đánh bại bạn với một cây gậy ":)
kaiser

1

Sau khi đọc những phản hồi này, tôi đã đẩy một trong số các plugin của mình lên GitHub và viết một tập lệnh release.sh . Tập lệnh này kiểm tra một phần plugin của tôi từ plugins.svn.wordpress.org bằng cách sử dụng --depth immediatesvà cập nhật các tệp trong trunk/assets/. Điều này sẽ đơn giản hóa việc đẩy định kỳ lên svn, sử dụng kho lưu trữ wordpress.org để phát hành thẻ thay vì duy trì lịch sử phát triển:

./release.sh
svn cp trunk tags/0.6
svn ci "Sending 0.6 from https://github.com/foo/bar to wordpress.org"

Một phiên bản chung hơn có thể hoạt động với nhiều plugin khác nhau, xử lý các tệp đã xóa và tự động cập nhật thẻ svn dựa trên các thẻ git.


1

Xem Cách xuất bản Plugin WordPress - Git từ @EAMann để biết mô tả chi tiết.


Nếu bạn định làm điều này, xin vui lòng thực hiện một cuộc nổi loạn tương tác và sau đó thay đổi tất cả các cam kết sẽ bị xóa, để bạn không thực hiện hàng tá cam kết nhỏ cho các máy chủ SVN. Thông tin thêm về cách thực hiện việc này có tại đây: stackoverflow.com/questions/158514/ cấp
Otto

5
@Otto Trong khi tôi hoàn toàn hiểu được mong muốn của bạn là giảm tải máy chủ :) Tôi thực sự, thực sự yêu thích các cam kết nguyên tử nếu tôi phải gỡ lỗi mã của người khác. H'm Cáp một liên kết tự động đến kho lưu trữ Git công cộng với lịch sử cam kết hoàn chỉnh có thể là một cải tiến hữu ích cho thư mục plugin.
fuxia

3
Phải đồng ý với @Otto về điều này. SVN của WordPress.org thực sự nên là kho lưu trữ phát hành, không phải là kho lưu trữ phát triển.
MikeSchinkel

1

Câu hỏi đã cũ nhưng giờ đây giải pháp đã có sẵn với các hành động của GitHub. Gần đây GitHub đã thêm Hành động Github quy trình làm việc tự động cho kho lưu trữ GitHub.

Và công ty nổi tiếng 10up đã tạo ra "Action WordPress Plugin Deployment".

Nó rất dễ dàng để thiết lập. Và theo @otto nói rằng chúng tôi không cần phải đẩy từng thay đổi lên svn, vì vậy chúng tôi có thể đặt tự động hóa trong khi tạo thẻ mới trên github.

Vì vậy, plugin github của chúng tôi sẽ tự động đẩy mã vào kho lưu trữ WordPress khi chúng tôi tạo thẻ phát hành mới.

Liên kết hữu ích:


0

Tôi không làm điều đó tự động, nhưng nó khá đơn giản:

Có xe tải SVN và chủ Git kiểm tra trong cùng một thư mục. Sử dụng Git cho hầu hết mọi thứ, như mọi người sẽ làm với bất kỳ dự án nào chỉ có Git.

Đặt stable tagđược trunk, và sau đó khi đã sẵn sàng để làm một phát hành, thẻ nó trong Git và sau đó ngay lập tức đẩy để cốp xe. Đừng lo lắng về việc chuyển sang SVN /tags, vì lịch sử phát hành của bạn an toàn trong Git (và Github).

Đó là về nó.

Để làm sạch nó lên, tôi thêm .svnvào .gitignore, và .git(và tests/, phpunit.xmlvv) để được bỏ qua bởi SVN.

Một tập lệnh release.sh thực sự sẽ không có gì nhiều hơn sau đây (một khi số phiên bản trong mã đã được cập nhật và tất cả đã cam kết với Git):

git tag $1
svn ci -m"Release: $1"
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.