มาติดตั้ง Jenkins เพื่อทำ CI/CD สำหรับ Android กันเถอะ (Step 1)

Kittipol Chuarpradit
3 min readApr 5, 2018

--

Thanks to Theerapat Hataitam , Wisanu Choungsuwanish

บทความนี้ผู้เขียนจะนำเสนอเรื่องของการทำ CI (continuous integration) และ CD (continuous delivery) โดยใช้การ Develop บน Android และนำ Source code ขึ้นไปไว้ที่ Gitlab จากนั้น จึง integration ไปที่ Jenkins เพื่อทำ CI และ CD

โดยผู้เขียนจัดทำบทความนี้ขึ้นเพื่อศึกษาและประกอบความเข้าใจในการทำงานของเครื่องมือ เพื่อผู้เขียนจะนำไปใช้งานด้านอื่นๆ ซึ่งตัว Gitlab เองก็มี CI/CD ของตัวเองอยู่ ผู้อ่านสามารถศึกษาและใช้งานได้ไม่ยากที่ ทำ CI/CD ใน Android ด้วย Gitlab CI

โดยผู้เขียนจะขอแบ่งขั้นตอนออกเป็นส่วนๆ ดังนี้

Step 1 : Install และ Setup Jenkins บน CentOS Server

Step 2 : Integration Jenkins กับ Gitlab

Step 3 : Build และ Run Unit Test ของ Application

Step 1 : Install และ Setup Jenkins บน CentOS Server

เริ่มต้นด้วยผู้อ่านต้องมี Server สำหรับติดตั้ง Jenkins ก่อน ซึ่งสามารถหาใช้บริการ Cloud Server ได้หลากหลายผู้ให้บริการ โดยผู้เขียนจะใช้บริการของ Google Cloud ซึ่งทาง Google Cloud เองก็มี Plugin สำหรับ Jenkins ให้ด้วยนะ สามารถศึกษาได้ที่ Using Jenkins for Distributed Builds on Compute Engine หรือใครจะใช้ Docker เพื่อสร้าง Container Jenkins ก็สามารถข้าม Step นี้ไปได้เลย โดยในบทความนี้จะใช้ OS CentOS 7 และพิมพ์คำสั่ง Install เอง เป็นตัวอย่างนะครับ เอาละมาเริ่มกันเลย

Install และ Update คำสั่ง

สำหรับผู้ที่สร้าง VM ขึ้นมาครั้งแรกก็ต้อง install คำสั่งต่างๆก่อน

$ sudo yum install wget$ sudo yum install epel-release$ sudo yum update$ sudo yum git

แล้วสั่ง Reboot

$ sudo reboot

สำหรับผู้ที่ใช้ Google Cloud ต้องไป Allow Port สำหรับ Jenkins ชะก่อน โดยเข้าเมนูตามรูปภาพได้เลยครับ

เมื่อเข้ามาแล้วก็ให้สร้าง Firewall rules โดยในบทความนี้จะกำหนด Port เป็น 8080 นะครับ สามารถตั้งค่าได้ดังนี้

  • Name > allow-8080
  • Targets > All instances in the network
  • Source IP ranges > 0.0.0.0/0
  • Protocols and ports > เลือก Specified protocols and ports และใส่ค่า tcp:8080

จากนั้นกด Save เป็นอันเสร็จการ Allow Port

Intall Java

เริ่มขั้นตอนติดตั้ง java กันโดยพิมพ์คำสั่ง

$ sudo yum install java-1.8.0-openjdk.x86_64

เมื่อ install เรียบร้อย ให้กำหนด environment variables 2 ตัว โดย run คำสั่งตามลำดับได้เลยครับ

$ sudo cp /etc/profile /etc/profile_backup$ echo ‘export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk’ | sudo tee -a /etc/profile$ echo ‘export JRE_HOME=/usr/lib/jvm/jre’ | sudo tee -a /etc/profile$ source /etc/profile

ผู้อ่านสามารถตรวจสอบว่ากำหนด environment variables เรียบร้อยแล้วโดย run คำสั่ง

$ echo $JAVA_HOME
$ echo $JRE_HOME

ถ้าแสดง Path ที่เราได้กำหนดก็เป็นอันเสร็จขั้นตอนการ Install Java

Install และ Setup Jenkins

พิมพ์คำสั่งสำหรับ เพิ่ม Repository Key ใน Server ตามลำดับ

$ sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo$ sudo rpm — import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

จากนั้นพิมพ์คำสั่งสำหรับ Install Jenkins

$ sudo yum install jenkins

จากนั้นสั่ง Start Service และ Set Post ของ Service เป็น 8080 โดย Run คำสั่งตามลำดับดังนี้

$ sudo systemctl start jenkins.service$ sudo systemctl enable jenkins.service$ sudo firewall-cmd — zone=public — permanent — add-port=8080/tcp$ sudo firewall-cmd — reload

รอสักพักเราก็จะได้ jenkins แล้ว โดยเข้า http://ipเครื่อง:8080/ หากติดตั้งสำเร็จจะแสดงหน้าจอตามรูป

ขั้นตอนนี้เราจะต้องไปเอา Admin Password ของ Jenkins จาก Path ที่หน้าจอแสดงขึ้นมาด้วยคำสั่ง

$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword

ก็จะได้ password นำมาใส่ที่หน้า Jenkins ได้เลยครับ รอสักพัก ถ้า Password ถูกต้อง Jenkins จะแสดงสำหรับ ติดตั้ง Plugin ซึ่งทางผู้เขียนก็แนะนำให้เลือกอันซ้ายนะครับ

เมื่อ Jenkins ติดตั้ง Plugin เรียบร้อยก็จะเป็นหน้าการตั้งค่า Username และ Password สำหรับ Admin เมื่อตั้งเสร็จเรียบร้อย ก็เป็นอันเสร็จ Step การติดตั้ง Jenkins แล้วนะครับ เราก็จะได้ Jenkins เป็นของตัวเองแล้วครับ

ในขั้นตอนถัดไปจะเป็นการทำให้ Jenkins และ Gitlab ติดต่อกันได้ สามารถเข้าได้ที่ลิงค์ด้านล่างเลยครับ

Step 2 : Integration Jenkins กับ Gitlab

Reference

--

--