Дженкинс Workflow потрясающий. Просто добавьте Jenkinsfile вместе с исходным кодом, и вы можете легко построить конвейер для вашего проекта. Обладая рабочим процессом, CloudBees и сообщество Jenkins предоставляют нам первоклассный инструмент для обеспечения непрерывной конвейерной доставки с Jenkins.
Если вы еще не слышали, Apple недавно открыла Swift (3 декабря 2015 г.). Язык Swift теперь доступен для скачивания на GitHub . В сегодняшнем посте мы кратко рассмотрим работу Apple Swift в рабочем процессе Jenkins.
Но подождите … разве нам не нужен узел сборки OS X с XCode для этого? Что за хлопоты, верно? Ну, на самом деле вам больше не нужен XCode или OS X для сборки и запуска кода Swift. Вы можете прочитать подробности на странице Apple Swift GitHub , но Swift теперь официально поддерживается в Ubuntu Linux. Итак, вы можете собрать и запустить Swift в Ubuntu, но это означает, что мне нужно настроить узел сборки Ubuntu Linux с помощью Swift. У меня нет времени на это.
Теперь, вот отличная часть: Jenkins Workflow имеет отличную поддержку Docker; надеюсь, вы уже использовали его (если не можете прочитать больше о Дженкинс и Докере на веб-сайте CloudBees ). И уже есть образ Docker для Ubuntu Linux с установленным Swift . Мне понадобилось всего несколько минут, чтобы:
- Создать новый репозиторий GitHub
- Создать файл Jenkinsfile
- Запустите новое «Вычисление папок» в моем проекте Jenkins GitHub Organization (см. Этот замечательный пост Кишора Бхатии о новых функциях Branch Source и Multibranch Workflow для Jenkins )
- Посмотрите, как работа выполняет тривиальную команду Swift
Вот Jenkinsfile (Отказ от ответственности: я еще не разработчик Swift):
//run this job on a docker enabled build node
node('docker-cloud') {
//this will pull the swift image, run it, and execute the following block of steps
docker.image('swiftdocker/swift:latest').inside {
//trivial, yes - but it works
sh 'swift --version'
}
}
Вот часть вывода консоли при выполнении задания Jenkins:
Status: Downloaded newer image for swiftdocker/swift:latest
[Workflow] Run build steps inside a Docker container : Start
$ docker run -t -d -u 1000:1000 -w /home/jenkins/workspace/team-productivity/beedemo-sa/apple-swift-on-linux/master -v /home/jenkins/workspace/team-productivity/beedemo-sa/apple-swift-on-linux/master:/home/jenkins/workspace/team-productivity/beedemo-sa/apple-swift-on-linux/master:rw -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** -e ******** swiftdocker/swift:latest cat
[Workflow] withDockerContainer {
[Workflow] sh
[master] Running shell script
+ swift --version
Swift version 2.2-dev (LLVM 46be9ff861, Clang 4deb154edc, Swift 778f82939c)
Target: x86_64-unknown-linux-gnu
[Workflow] } //withDockerContainer
$ docker stop 0326b40b0bf1cb1ae5c23595e9892a86a422a1c4cb8e9489465c56b552cb6b50
$ docker rm -f 0326b40b0bf1cb1ae5c23595e9892a86a422a1c4cb8e9489465c56b552cb6b50
[Workflow] Run build steps inside a Docker container : End
[Workflow] } //node
[Workflow] Allocate node : End
[Workflow] End of Workflow
GitHub has been notified of this commit’s build result
Finished: SUCCESS
Я знаю, что это тривиальный пример Swift, но тот факт, что вы можете так легко и быстро создать среду сборки Swift для Jenkins, ну, это довольно круто!
Примечание. Если вы еще не используете Docker с Jenkins и / или Workflow, вот несколько ресурсов, которые помогут вам начать работу: