Статьи

Создайте быстрый конвейер с технологическим процессом Jenkins

Дженкинс 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 . Мне понадобилось всего несколько минут, чтобы:

  1. Создать новый репозиторий GitHub 
  2. Создать файл Jenkinsfile 
  3. Запустите новое «Вычисление папок» в моем проекте Jenkins GitHub Organization (см. Этот замечательный пост Кишора Бхатии о новых функциях Branch Source и Multibranch Workflow для Jenkins )
  4. Посмотрите, как работа выполняет тривиальную команду 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, вот несколько ресурсов, которые помогут вам начать работу:

  • http://jenkins-ci.org/node/644
  • https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Docker+Workflow+Plugin
  • https://github.com/jenkinsci/docker-workflow-plugin
  • https://www.cloudbees.com/blog/orchestrating-workflows-jenkins-and-docker