Bài 1 – React Native DevOps các khái niệm và các cài đặt căn bản

Hướng dẫn setup jenkins agent để bắt đầu build mobile bằng jenkins cho devloper an tâm phát triển sản phẩm Tóm tắt Các khái niệm Yêu cầu phần cứng Kiểm sót source code Provisioning profiles ios Môi trường build (environment) Hướng dẫn Thiết lập máy tính ban đầu Cài đặt các ứng dụng Thêm New

Hướng dẫn setup jenkins agent để bắt đầu build mobile bằng jenkins cho devloper an tâm phát triển sản phẩm

Tóm tắt

Các khái niệm

  • Yêu cầu phần cứng
  • Kiểm sót source code
  • Provisioning profiles ios
  • Môi trường build (environment)

Hướng dẫn

  • Thiết lập máy tính ban đầu
  • Cài đặt các ứng dụng
  • Thêm New node vào jenkins master
  • Chạy test job

Các khái niệm

Tổng quan hệ thống

image.png

Yêu cầu phần cứng

  • Ở đây mình sử dụng phần cứng là Mac Mini M1 2020 (3.2Ghz Apple M1 Chip With 8-CPU, 16G RAM, SSD 512), còn các bạn muốn sử dụng trên cloud thì có thể tham khảo máy chủ ở đây macincloud.com
  • Máy Mac Mini mình sẽ để ở công ty vào chỉ build được ở mạng nội bộ của công ty qua địa chỉ IP của máy, còn các bạn có thể đưa ra network bằng cách NAT ip ra mạng hoặc sử dụng dịch vụ trên Mac Cloud

Kiểm sót source code

Hướng dẫn này mình sẽ sử dụng Github để quản lý soucre code, Jenkins và GitHub sử dụng cùng nhau mang lại sự nhất quán và tốc độ cho đội develop. Jenkins chạy tất cả các loại luồng DevOps tự động, như xác minh xây dựng hàng giờ, xây dựng hàng đêm, xây dựng yêut theo yêu cầu của bạn, và nhiều cách khác.

Provisioning profiles ios

  • Phần yêu thích nhất của tôi trong phát triển iOS là Provisioning profiles. Tôi thích phương pháp Android vì sự đơn giản của nó, đặc biệt là khi quản lý các loại build. Cách tiếp cận của Apple để xây dựng các điểm đến là hạn chế và yêu cầu thêm công việc từ nhà phát triển để kiểm tra tất cả các trường hợp.
  • Để sử được được Provisioning profiles thì ta dùng Match , lưu trữ và cập nhật hồ sơ cung cấp iOS và chứng chỉ ký kết. Tất cả các tệp được tạo bởi khớp sau đó được lưu trữ trong kho lưu trữ Github được mã hóa, với khóa giải mã được chia sẻ bởi nhóm develop.

Môi trường build (environment)

  • Phát hành một dự án React Native (RN) để sản xuất đòi hỏi rất nhiều công cụ. Ở mức tối thiểu, một bản phát hành thành công sẽ sử dụng Node.js, NPM / Yarn, Xcode và Android Studio. Các dự án kết hợp SDK của bên thứ 3 thêm độ phức tạp và công cụ bổ sung vào các bản phát hành. Quản lý sự phức tạp này là rất quan trọng để tạo ra một quy trình build.

  • Điều rất quan trọng đối với tất cả các developer làm việc trong dự án là có cùng một môi trường. Tự động tăng version trong môi trường cho RN không đơn giản so với các nền tảng khác – có rất nhiều công cụ và rất nhiều nơi để phạm sai lầm nhỏ. Sự khác biệt nhỏ giữa máy phát triển và máy xây dựng có thể dẫn đến thời gian lãng phí thời gian của developer, và có khả năng ngồi bù đầu để tìm ra lỗi khi build.

  • Việc thiết lập và cài đặt Jenkins buộc phải chuẩn hóa môi trường xây dựng cho chính bạn và nhóm develope. Phát triển trong cùng một môi trường chạy các bản build của bạn.

Hướng dẫn

Thiết lập máy tính ban đầu

1. Cập nhật hệ điều hành mới nhất

Để bộ build chạy mượt và đồng bộ môi trường với developer thì chúng ta cần update hệ thống bằng cách update hệ điều hành:

  1. Chọn biểu tượng trái táo Screenshot 2023-02-06 at 11.51.18.png
  2. Chọn ‘Software Update’
  3. Cập nhật macOS

2. Cài đặt Xcode

  1. Mở ứng dụng Appstore

  2. Tìm kiếm xcode

  3. Bấm vào tải về và cài đặt

  4. Mở xcode hoàn thành các thiết lập ban đầu

Screenshot 2023-02-06 at 12.20.40.png

Nhấp vào Agree

Screenshot 2023-02-06 at 12.21.22.png

Nhấp vào Install

Screenshot 2023-02-06 at 12.21.46.png

Nhấp vào Continue

Screenshot 2023-02-06 at 12.22.01.png

Hoàn thành thiết lập

Screenshot 2023-02-06 at 12.22.48.png

3. Cài đặt xcode cli

Mở termianl và gõ lệnh

xcode-select --install

Screenshot 2023-02-06 at 13.02.34.png

Nhấp vào Install

Screenshot 2023-02-06 at 13.03.13.png

Nhấp vào Agree

Screenshot 2023-02-06 at 13.04.25.png

Cài đặt thành công
Screenshot 2023-02-06 at 13.11.01.png

Ta tiếp tục dùng lệnh

sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
sudo xcodebuild -license

Screenshot 2023-02-06 at 13.22.20.png

Bật chế độ nhà phát triển bằng lệnh

DevToolsSecurity -enable

Screenshot 2023-02-06 at 13.23.11.png

4. Cài đặt Android Studio

Vào trang chủ Android Studio để tải https://developer.android.com/studio

Screenshot 2023-02-06 at 13.24.46.png

Nhấp vào Download Android Studio Electric Eel

Screenshot 2023-02-06 at 13.25.29.png

Chọn Screenshot 2023-02-06 at 13.25.42.png vì mình đang sử dụng chi M1 của Apple

Sau khi tải xong mở tiệp vừa tải về, kéo sang thư mục Application

Screenshot 2023-02-06 at 13.56.19.png

sau đó mở Android sutudio trong thư mục Application

Screenshot 2023-02-06 at 13.58.50.png

Nhấp vào Open

Screenshot 2023-02-06 at 13.59.57.png

Nhấp vào Ok

Screenshot 2023-02-06 at 14.00.27.png

Nhấp vào Next

Screenshot 2023-02-06 at 14.00.44.png

Chọn Standard, sau đó tiếp tục nhấp vào Next

Screenshot 2023-02-06 at 14.01.37.png

Nhấp vào Next

Screenshot 2023-02-06 at 14.02.37.png

Nhấp vào Next

Screenshot 2023-02-06 at 14.02.50.png

Chọn Accept, sau đó tiếp tục nhấp vào Finish

Screenshot 2023-02-06 at 14.09.15.png

Nhấp vào Finish

Screenshot 2023-02-06 at 14.09.32.png

5. Cài đặt Android SDK

Android Studio hiện đã được thiết lập. Thiết lập các thành phần SDK cần thiết trên màn hình chào mừng.

Nhấp vào More Actions, sau đó chọn SDK Manager, Tick theo trên hình và sau đó nhấp vào OK

Screenshot 2023-02-06 at 14.34.21.png

Screenshot 2023-02-06 at 14.34.56.png

6. Cài đặt phần miềm CLI

  1. Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. JDK 11
brew tap homebrew/cask-versions
brew install --cask zulu11

Screenshot 2023-02-06 at 14.39.45.png

7. Cài đặt .zshrc

Mở tiệp .zshrc và thêm vào dòng bên dưới

# Android
export ANDROID_SDK="$HOME/Library/Android/sdk"
export ANDROID_SDK_TOOLS="$ANDROID_SDK/tools"
export ANDROID_SDK_TOOLS_BIN="$ANDROID_SDK_TOOLS/bin"
export ANDROID_PLATFORM_TOOLS="$ANDROID_SDK/platform-tools"
export PATH="$PATH:$ANDROID_SDK:$ANDROID_SDK_TOOLS"
export PATH="$PATH:$ANDROID_SDK_TOOLS_BIN:$ANDROID_PLATFORM_TOOLS"
# Fastlane
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

Screenshot 2023-02-06 at 14.43.24.png

dùng lệnh để apply cấu hình

source $HOME/.zshrc

Screenshot 2023-02-06 at 14.44.31.png

8. Cài đặt Jenkins

Ta cài đặt jenkins bằng lệnh

brew install jenkins-lts

Screenshot 2023-02-06 at 14.47.37.pngScreenshot 2023-02-06 at 14.50.50.png

Sau khi cài đặt thành cộng ta start bằng lệnh

brew services start jenkins-lt

Screenshot 2023-02-06 at 14.52.41.png

Sau đó ta vào đường dẫn http://127.0.0.1:8080/login?from=%2F để login vào hệ thống

Screenshot 2023-02-06 at 14.56.47.png

ta lấy password mặt định bằng lệnh

cat /Users/duytran/.jenkins/secrets/initialAdminPassword

Screenshot 2023-02-06 at 14.57.38.png

Phần tiếp theo tham khảo ở bài

9. Cài đặt fastlane

Ta cài đăt bằng lệnh fastlane

brew install fastlane

Screenshot 2023-02-06 at 15.04.35.pngimage.png

Như vậy bạn đã hiểu và cài đặt được cơ bản server build jenkins cho React native, bài tiếp theo mình sẽ hướng dẫn build đẩy lên firebase distribution

Nguồn: viblo.asia

Bài viết liên quan

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ

Cách sử dụng SFTP (Giao thức truyền file qua SSH an toàn hơn)

SFTP là cách an toàn để truyền files giữa các máy tính, gữa máy local và web hostin

Hotlinking: Key Reasons to Avoid and Methods to Protect Your Site

Hotlinking might seem an easy way to acquire website assets, but in reality, it brings several disad

Sự Khác Nhau Giữa Domain và Hosting Là Gì?

Sự khác nhau giữa domain và hosting là gì? Bài này giải thích ngắn và dễ hiểu nh