2016-12-04 16 views
7

Yapmaya çalıştığım şey, standart AWS araçlarıyla aşağıdaki CI akışını oluşturmaktır: Github'ta bir Çekme İsteği oluşturulduğunda veya güncellendiğinde bir taahhüt oluşturmaya çalışın. Ya da benim emrimdeki herhangi bir dalın yapısını çalıştırın. Codeship, Travis ve diğer birçok CI hizmetinin sunduğu çok benzer.Tarif edilen CI iş akışı oluşturmak için AWS CodeBuild ve CodePipeline birleştirmek mümkün mü?

CodeBuild + CodePipeline ile mümkün mü? CodePipeline'da kesin bir şube belirlemem gerektiğini ve ne yazık ki, Github Pull isteklerinin buna nasıl dahil edileceğini bulamadım. Belki onu gözden kaçırdım?

+0

CI, yapıların otomatik olarak tetiklendiğini ima eder. CodeBuild veya CodePipeline'da otomatik bir tetikleyici nasıl ayarlanacağını göremiyorum. Çok karıştı. – Levitron

+0

Kod eklemeye bir şube ekledikten sonra, boru hattında bir yapı oluşturmayı tetikliyor gibi görünüyor. Çekme İstekleri'nde bunu otomatik olarak nasıl yapacağımı merak ediyorum. Jenkins'de '$ {sha1}' kullanıyoruz.Garip olan şey, Github'da CodePipeline'ın değişiklikleri açıkça görmesine rağmen listelenmiş bir entegrasyon veya webhooks görmüyorum. –

cevap

2

Bu Lambda ve S3 kullanarak biraz elle yapılabilir benziyor - https://aws.amazon.com/blogs/devops/integrating-git-with-aws-codepipeline/

Webhooks deposuna aktarıldığında bir taahhüt bir HTTP POST düzenlenmek suretiyle bir uzak hizmetinin bildirilmesi. AWS Lambda, Amazon API Ağ Geçidi üzerinden HTTP POST'unu alır ve daha sonra deponun bir kopyasını indirir. Deponun sıkıştırılmış bir kopyasını bir sürüm S3 kovasına yerleştirir. AWS CodePipeline, zip dosyasını S3'te bir kaynak olarak kullanabilir; Git deposu güncellendiğinde boru hattı tetiklenecektir.

+1

Oh ... Devam etmek için çok fazla hareketli parça var. Hayır, teşekkürler Amazon, Codeship'e yapıştıracağım o zaman :) – elgris

+0

Bu blog yazısı, AWS CodePipeline'ı üçüncü taraf Git-deposu olan webhooks ('GitHub Enterprise, Bitbucket, GitLab veya başka bir Git sunucusu') ile bütünleştirmeyi kapsar. GitHub'un Çekme İsteği özelliği ile ilgisi yok. – wjordan

+0

Gelecek selamlar! Aslında, şimdi (2017 sonbaharından itibaren), aşağıda @Clare Liguori durumu olarak Github'u CodeBuild kaynağı olarak seçebilirsiniz. Bir repoya bastığınızda bu AWS Codebuild yapısını otomatik olarak çalıştırır ve buisdstatus'u uygun şekilde günceller. AWS Codepipeline ile ilgili notlarına bakın, ancak CodeBuild Just Works'ü biliyorum ... – RyanWilcox

3

CodePipeline, Product and Service Integrations with AWS CodePipeline'da listelenen, hem GitHub hem de CodeBuild ile temel, tam yönetilen entegrasyonları destekler. Bu entegrasyonlar ile, CodeHuild'i, GitHub'daki bir şubeye bir taahhüt gönderildiğinde bir taahhüt oluşturmayı çalıştırmak için CodePipeline ile birlikte kullanmak mümkündür. CodeBuild'i CodePipeline'ı Build eylem sağlayıcısı olarak tümleştirme ile ilgili ayrıntılar için bkz. Use AWS CodePipeline with AWS CodeBuild to Run Builds ve Github'u CodePipeline ile Source eylem sağlayıcısı olarak tümleştirme hakkında ayrıntılar için Four-Stage Pipeline Tutorial'a bakın.

Şu anda, Github'daki Çekme İsteği özelliği resmi CodePipeline entegrasyonunda desteklenmiyor, hiçbir şeyi göz ardı etmediniz. GitHub Çekme İsteği tümleştirmesini (not yet CodePipeline olsa da) destekleyen ilginç bir AWS-ekosistem açık kaynak projesi (henüz v1.0 değil) için LambCI ürününü incelemek isteyebilirsiniz.

0

AWS CodeBuild ile Github Pull Request derleme durumu tümleştirmesi için https://www.deploytoproduction.com deneyebilirsiniz. Birden fazla havuz için bir abonelik planı olan tek bir Github deposu için ücretsizdir. Hizmet şu anda CodePipeline ile entegre değil, ancak yakında geliyor.

PR Build Passed Screenshot

şeyi kendiniz inşa etmek istiyorsa, Sırayla CodeBuild işlerini tetikler veya başlatmak için S3 bir obje iter bir lambda fonksiyonu tetiklemek için webhook işlevini kullanan GitHub'dan üzerinde yeni entegrasyon yapabilir bir CodePipeline.

Tam açıklama bu hizmetin

3

CodeBuild artık doğrudan sadece bir parçası olarak bir yapı çalışmasına arıyorsanız, (Lambda ara adım olmadan) GitHub çekme isteklerini bina destekleyen yazarı değilim PR. Bir PR'nin parçası olarak CodePipeline ile daha fazla adım atmak için, diğer cevapların önerdiği gibi bazı iskeleler kurmanız gerekecektir. https://aws.amazon.com/about-aws/whats-new/2017/09/aws-codebuild-now-supports-building-github-pull-requests/

+0

Bir çözümün bağlantısı memnuniyetle karşılandı, ancak lütfen yanıtınızın onsuz yararlı olduğundan emin olun: [link'in çevresine bağlantı ekleyin] (// meta.stackexchange.com/a/8259) böylece diğer kullanıcılarınız bunun ne olduğunu ve neden orada olduğuna dair bir fikre sahip olacaklar, ardından hedef sayfanın kullanılamaması durumunda linklediğiniz sayfanın en alakalı bölümünü belirtin. [Bir linkten biraz daha fazla olan cevaplar silinebilir.] (// stackoverflow.com/help/deleted-answers) – paper1111

+0

Bu bağlantı soruyu yanıtlayabilirken, cevabın temel kısımlarını burada eklemek ve sunmak daha iyidir. referans için bağlantı. Bağlantılı sayfa değiştiğinde yalnızca bağlantı yanıtları geçersiz olabilir. - [Yorum Yaz] (/ review/düşük kaliteli yazılar/17473286) – sa77

+0

Bu soruya bir cevap vermemektedir. Bir yazardan eleştiri yapmak veya açıklama istemek için yazılarının altında bir yorum bırakın. - [Yorum yaz] (/ review/düşük kaliteli yazılar/17473286) – Patrick