Zintegrowałem Jenkins z Bitbucket za pomocą wtyczki Bitbucket . Zgodnie z Wiki wtyczki dane zadanie zostanie uruchomione, jeśli repozytorium jest ustawione w SCM zadania. Jak wiadomo, jeśli jeden zestaw SCM zostanie ustawiony w zadaniu Jenkinsa, zostanie on sklonowany na etapie przed kompilacją.
Jak na razie dobrze. Jednak główny cel zadania, które ustawiam, nie ma nic wspólnego z zawartością repozytorium; zamiast tego chcę tylko, aby zadanie przetworzyło ładunek wysłany przez Bitbucket. Można powiedzieć, że klonowanie repozytorium nie jest wielkim problemem, jeśli tak naprawdę nie jest to potrzebne. Nie sądzę, aby dodawanie niepotrzebnych kroków, pochłanianie czasu i zasobów nie było dobrą praktyką.
Pytanie brzmi więc: czy ktoś wie, jak ustawić SCM w zadaniu Jenkinsa, ale nie może sklonować repozytorium?
Odpowiedzi:
Tak, zdecydowanie. Robię to cały czas. Możesz określić opcje konfiguracji swojego potoku, a jedną z nich jest
skipDefaultCheckout
, co powoduje, że potok pomija domyślny etap „Deklaratywny: Checkout SCM”.skipDefaultCheckout
Opcja jest udokumentowana w rurociągu Składnia i oto przykład Jenkinsfile pokazując jak go używać:źródło
checkout scm
aby ręcznie sklonować tam, gdzie potrzebujesz. patrz devops.stackexchange.com/a/1916/2450 .Jeśli nie używasz Deklaratywnego potoku, możesz uniknąć wyewidencjonowania z SCM przez:
źródło
Myślę, że chcesz osiągnąć ładunek haka sieciowego w zadaniu Jenkinsa. Korzystanie z wtyczki bitbucket nie będzie konieczne i prawdopodobnie jest silnie zaprojektowane do klonowania repozytorium.
Wierzę, że ta odpowiedź na przepełnienie stosu może ci pomóc.
źródło