Jenkins jest narzędziem służącym do automatyzacji budowania, testowania i deploymentu projektów. Aby uzyskać dostęp należy w systemie helpdeskowym założyć nowe zgłoszenie zawierające:
System dostępny jest pod adresem https://jenkins.wmi.amu.edu.pl. Logowanie odbywa za pomocą poświadczeń domenowych (jak w laboratoriach).
Możliwe jest połączenie Jenkinsa z wydziałowym systemem Git. W tym celu należy skonfigurować pipeline Jenkinsa oraz samo repozytorium.
długi łańcuch znaków
adres SSH repozytorium
(np. git@git.wmi.amu.edu.pl:s123456/projekt.git)adres HTTPS repozytorium
(bez .git na końcu) (np. https://git.wmi.amu.edu.pl/s123456/projekt)W konfiguracji repozytorium Git:
https://jenkins.wmi.amu.edu.pl/gogs-webhook/?job=NAZWA-PIPELINE
(np. https://jenkins.wmi.amu.edu.pl/gogs-webhook/?job=s123456-projekt)długi łańcuch znaków z konfiguracji Jenkinsa
jenkins
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOuVvhUjr+UosOx3IEBUi0IfV8Erv2OL3Er5pUHbjxNo
Możliwe jest dodanie obsługi połączeń do zewnętrznego hosta SSH z poziomu pipeline. Docelowym zastosowaniem może być kopiowanie zbudowanej i przetestowanej wersji projektu oraz wykonanie akcji na serwerze, na przykład zrestartowanie serwera WWW.
Klucz publiczny używany przez Jenkins do zewnętrznych połączeń SSH:
ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBKRso2eJ1wXHqD83Ii8Qem0kDWY5sCFVS6OczBpOPT+66nvOt5Z0VNajjZLkA5BXh0ZoZ+RqDQdi4JMndPvcEwY= jenkins-ssh-external
W celu aktywacji tej funkcji konieczne jest założenie nowego zgłoszenia w systemie helpdeskowym zawierającego:
W odpowiedzi zostanie przesłana nazwa konfiguracji, którą należy użyć w Jenkinsfile
zgodnie z dokumentacją.
Jenkinsfile
Poniższa sekcja spowoduje przesłanie pliku build.tar.gz
na docelowy serwer SSH:
stage('SSH-publish') {
steps {
sshPublisher(
continueOnError: false,
failOnError: true,
publishers: [
sshPublisherDesc(
configName: "NAZWA_KONFIGURACJI_Z_ODPOWIEDZI_NA_ZGŁOSZENIE_HELPDESK",
transfers: [sshTransfer(sourceFiles: 'build.tar.gz')],
verbose: true
)
]
)
}
}
Poniższa sekcja spowoduje skasowanie pliku build.tar.gz
poprzez SSH
stage('SSH-exec') {
steps {
sshPublisher(
continueOnError: false,
failOnError: true,
publishers: [
sshPublisherDesc(
configName: "NAZWA_KONFIGURACJI_Z_ODPOWIEDZI_NA_ZGŁOSZENIE_HELPDESK",
transfers: [sshTransfer(execCommand: 'rm build.tar.gz')],
verbose: true
)
]
)
}
}