Bắt đầu thiết lập cơ sở hạ tầng xây dựng

Xem: 113    Tải: 0   Thảo luận: 0   Mục: Ứng dụng mobile   Lĩnh vực: Game - Giải trí

0 điểm   ( 0 đánh giá ) File đã được kiểm thử


Cơ sở hạ tầng xây dựng của chúng tôi có trách nhiệm xây dựng libgdx cho tất cả các nền tảng được hỗ trợ (Windows, Linux, Mac OS X, Android, iOS, HTML). Ngày đầu của mã Java cũ nhàm chán, chúng ta cũng cần phải biên dịch mã nguồn gốc cho mỗi nền tảng và kiến trúc (32, 64-bit nếu có).

Chúng tôi giải quyết vấn đề này bằng cách sử dụng cross-biên dịch trên một máy chủ Linux để biên dịch mã nguồn gốc cho Windows, Linux và Android. Chúng ta cũng sử dụng một máy Mac để biên dịch iOS và Mac OS X nhị phân bản địa.

Các phần sau đây tài liệu làm thế nào để thiết lập xây dựng cơ sở hạ tầng này.

Thiết lập các máy chủ Linux

Các máy chủ Linux có phải là một cài đặt 64-bit. Chúng tôi sử dụng Ubuntu 13.10, phiên bản mới hơn hoặc phân phối Linux khác nên làm việc chỉ là tốt. Các gói Debian sau đây có thể được cài đặt từ kho chính thức

  • unzip
  • zip
  • daemon
  • git
  • openjdk-7-jdk
  • jenkins (latest)
    • wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
    • thêm vào deb http://pkg.jenkins-ci.org/debian binary/ to /etc/apt/sources.list
    • sudo apt-get update followed by sudo apt-get install jenkins, sẽ cài đặt các phiên bản mới nhất Jenkins và cung cấp một đường dẫn cập nhật trong tương lai thay vì sử dụng các phiên bản Jenkins từ kho của Ubuntu
    • sau khi cài đặt, open /etc/default/jenkins and set HTTP_HOST and AJP_HOST để 0.0.0.0 để kiểm tra cho các kết nối trên mọi thiết bị mạng
    • người sử dụng thiết lập, cho phép an ninh toàn cầu bằng cách sử dụng cơ sở dữ liệu người dùng của Jenkins, cho phép bất kỳ người dùng đăng nhập vào bất cứ điều gì
    • cài đặt plugin sau: Sao chép vào Slave Plugin, Git Plugin, Mailer, Maven Dự án Plugin, tham số kích hoạt Plugin, Gradle Plugin
    • Tới trang web "Cấu hình hệ thống" và thiết lập các địa điểm Ant và lắp đặt
  • gcc, g++, gcc-multilib, g++-multilib (linux compilers, 32- and 64-bit)
  • mesa-common-dev, libxxf86vm-dev, libxrandr-dev, libx11-dev:i386 (Linux OpenGL development, only needed for jglfw, 64-bit only)
  • mingw-w64 (windows compilers, 32- and 64-bit)
  • ccache (optional, see ccache section below)
  • lib32z1 (cause Android SDK tools require it, aapt to be specific...)

Các phần mềm sau đây phải được cài đặt bằng tay

  • Ant 1.9.3+ (sửa chữa một lỗi đó là rất quan trọng để giảm thời gian xây dựng!)
    • Tải về phân phối nhị phân mới nhất, giải nén nó vào / opt / ant
    • Thêm PATH=$PATH:/opt/ant/bin to /etc/profile
    • Hãy chắc chắn rằng người dùng có thể thực hiện Jenkins Ant
  • Maven 3+
    • Tải về phân phối nhị phân mới nhất, giải nén nó vào / opt / maven
    • Thêm PATH=$PATH:/opt/mave/bin to /etc/profile
    • Hãy chắc chắn rằng người dùng có thể thực hiện Jenkins Maven
    • modify /opt/maven/conf/settings.xml bao gồm các thông tin cho việc triển khai chụp SonaType (hỏi Mario)
  • Android NDK
    • Tải tar.bz2 mới nhất, giải nén vào / opt / android-ndk
    • Thêm ANDROID_NDK=/opt/android-ndk to /etc/profile
    • Thêm NDK_HOME=/opt/android-ndk to /etc/profile
    • Hãy chắc chắn rằng người dùng có thể thực hiện Jenkins ndk-build
  • [Android SDK]
    • Tải .tgz mới nhất, giải nén vào / opt / Android-sdk
    • Thêm ANDROID_HOME=/opt/android-sdk to /etc/profile
    • Trong /opt/android-sdk/tools, run ./android update sdk --no-ui để cài đặt tất cả các nền tảng, xây dựng các công cụ, vv

Thiết lập các máy chủ Mac OS X

Chúng tôi cần một máy Mac để xây dựng bản xứ dành cho iOS và Mac OS X. host này sau đó sẽ được sử dụng như một nô lệ Jenkins để xây dựng các bộ phận của dự án libgdx. Sự phụ thuộc này được thể hiện trong Công Việc Jenkins trách nhiệm xây dựng libgdx, xem dưới đây. Mac cần phải có những điều sau đây được cài đặt:

  • JDK 8+
  • XCode, cài đặt thông qua Mac App Store
    • Hãy chắc chắn rằng các tiện ích dòng lệnh cũng được cài đặt, tìm kiếm Google để làm thế nào để làm điều này với XCode mới nhất.
    • bạn không cần phải có giấy phép các nhà phát triển để biên dịch cho một thiết bị, bạn chỉ có thể triển khai một
  • Ant 1.9.3, cài đặt thông qua Homebrew
  • (Tùy chọn) ccache qua Homebrew

Khi Mac được thiết lập, bạn có thể chuyển sang thiết lập những công việc trên Jenkins

Thiết lập libgdx việc Jenkins

Với máy chủ Linux của bạn chạy Jenkins, đi đến http://JENKINS_ADDRESS:8080.

Thiết lập Jenkins Mac Slave

  • On the landing page, click on Manage Jenkins, then go to Manage Nodes.
  • Click on New Node, give it the name Mac, select Dumb Slave and press OK.
  • Set the Remote FS root to a folder of your choice, e.g. /Users/badlogic/jenkins
  • Set Usage to Leave this machine for tied jobs only
  • Set Launch method to Launch Slave agents via Java Web Start

Bây giờ bạn có thể khởi động máy Mac của bạn, mở trình duyệt và điều hướng đến http: // JENKINS_ADDRESS: 8080 / computer / Mac /. Nhấn vào nút Launch để tải về Java tập tin bắt đầu Web, nhấp đúp chuột vào nó để chạy các nô lệ. Một khi nó đang chạy, bạn nên xem đánh dấu là được trực tuyến trong trường hợp Jenkins của bạn.

Thiết lập các công việc Jenkins libgdx Mac

Công việc Mac gọi vào kịch bản Ant build-mac-ios.xml, sau đó sao chép tất cả các máy Mac và iOS thư viện nguồn gốc đến nút chủ Linux mà sau đó sẽ tiếp tục xây dựng phần còn lại của libgdx. Đối với điều này chúng ta cần tạo một công việc, chúng ta hãy gọi nó libgdx-mac.

  • Click New Item, enter libgdx-mac as the name, and select Freestyle Project, press OK
  • Click Discard Old Builds, set max # builds to keep to 1
  • Click Restrict where this project can be run and enter the name of the Mac slave (Mac)
  • Under Source Code Management, select git and specify the libgdx repo URLhttps://github.com/libgdx/libgdx.git, leave the rest as is (branch master etc.)
  • Under Build, click Add build step, select Invoke Ant, set Targets to -f build-mac-ios.xml -v
  • Under Post-build Actions, click Add post-build action, select Copy files back to the job's workspace on the master node, and for Files to copy specify **/*.a,**/*.dylib. UncheckRun After Result Is Finalised?. Click on Advanced, then check Override destination folder and set it to /var/lib/jenkins/workspace/libgdx hoặc bất cứ nơi nào không gian làm việc của bạn libgdx sống trên các máy chủ Linux. Điều này sẽ sao chép tất cả các máy Mac và iOS thư viện thuần trở lại các nút chính, mà sẽ gói nó với các thư viện nguồn gốc cho các nền tảng khác
  • Under Post-build Actions, click Add post-build action, select E-mail Notification, người nhận, sử dụng một không gian như một dấu phân cách.

Thiết lập Jenkins libgdx Job

Công việc chính được thực thi trên máy chủ Linux, trong đó xây dựng tất cả mọi thứ liên quan đến Java, tất cả Windows, Linux và Android file gốc, viện dẫn việc Mac và bản sao các thổ dân Mac và iOS trên, sau đó cuối cùng gói tất cả lên gọn gàng và phân phối hàng đêm xây dựng trang web và đẩy vật Maven để SonaType. Đây là cách mà công việc của thiết lập

 

  • Click New Item, enter libgdx as the name, and select Freestyle Project, press OK
  • Click Discard Old Builds, set max # builds to keep to 1
  • Under Source Code Management, select git and specify the libgdx repo URLhttps://github.com/libgdx/libgdx.git, leave the rest as is (branch master etc.)
  • Under Build Triggers, select Poll SCM and set Schedule to @hourly
  • Under Build, click Add build step, select Trigger/call builds on other projects, setProjects to build to libgdx-mac, check Block until the triggered projects finish their builds
  • Under Build, click Add build step, select Invoke Ant, set Targets to -f build.xml -Dbuild-natives=true -Dversion=nightly -v
  • (Optional) Under Build, click Add build step, select Execute shell, sau đó viết một kịch bản để sao chép các kết quả đầu ra của việc xây dựng libgdx (đêm zip) vào một máy chủ web của bạn lựa chọn. Xem ví dụ dưới đây
  • Under Build, click Add build step, select Invoke top-level Maven targets, set Goals toclean deploy
  • Under Post-build Actions, click Add post-build action, select E-mail Notification, specify the recipients, use a space as a separator.

Shell Script để sao chép đêm xây dựng máy chủ web

rm -rf /srv/www/libgdx.badlogicgames.com/public_html/nightlies/*.zip
rm -rf /srv/www/libgdx.badlogicgames.com/public_html/nightlies/*.zip.MD5
rm -rf /srv/www/libgdx.badlogicgames.com/public_html/nightlies/dist
rm -rf /srv/www/libgdx.badlogicgames.com/public_html/nightlies/docs
rm -rf /srv/www/libgdx.badlogicgames.com/public_html/nightlies/config
cp $WORKSPACE/libgdx-nightly.zip /srv/www/libgdx.badlogicgames.com/public_html/nightlies/libgdx-nightly-`date +%Y%m%d`.zip
cp $WORKSPACE/libgdx-nightly.zip.MD5 /srv/www/libgdx.badlogicgames.com/public_html/nightlies/libgdx-nightly-`date +%Y%m%d`.zip.MD5
ln -s /srv/www/libgdx.badlogicgames.com/public_html/nightlies/libgdx-nightly-`date +%Y%m%d`.zip /srv/www/libgdx.badlogicgames.com/public_html/nightlies/libgdx-nightly-latest.zip
ln -s /srv/www/libgdx.badlogicgames.com/public_html/nightlies/libgdx-nightly-`date +%Y%m%d`.zip.MD5 /srv/www/libgdx.badlogicgames.com/public_html/nightlies/libgdx-nightly-latest.zip.MD5
cp -r  $WORKSPACE/dist/docs /srv/www/libgdx.badlogicgames.com/public_html/nightlies/docs
cp -r  $WORKSPACE/dist/ /srv/www/libgdx.badlogicgames.com/public_html/nightlies/
cp -r $WORKSPACE/extensions/gdx-setup-ui/config /srv/www/libgdx.badlogicgames.com/public_html/nightlies/
rm -rf /srv/www/libgdx.badlogicgames.com/public_html/nightlies/.svn

CCACHE

Các bản xây dựng có thể mất nhiều thời gian, như vậy chúng tôi muốn chỉ xây dựng những gì thay đổi. C của chúng tôi / C ++ xây dựng hệ thống được dựa trên một bộ tùy chỉnh các script Ant mà không hỗ trợ gia tăng xây dựng (nhưng là siêu dễ dàng để thiết lập, xem jnigen. Và thậm chí (C) Make xây dựng không nhất thiết giúp bạn gia tăng xây dựng. Cũng , bạn muốn xóa xây dựng của bạn nếu bạn xuất bản các bức ảnh chụp, vì vậy bất kỳ gia tăng build bạn nhận được từ một C thích hợp / C ++ xây dựng công cụ không thực sự giúp đỡ.

Để giải quyết vấn đề này, chúng tôi sử dụng ccache đó lưu trữ kết quả tổng hợp (các tập tin đối tượng). Ccache hoạt động như một proxy để C / C ++, băm tập tin bất kỳ mã nguồn bạn vượt qua nó (mở rộng macro Preprocessor và bao gồm), kiểm tra nếu nó có phù hợp nhị phân băm trong bộ nhớ cache của nó. Nếu có, nó có thể trực tiếp trả lại hồ sơ đối tượng thay vì phải gọi GCC. Đó là tốt đẹp, vì nó cho chúng ta loại gia tăng xây dựng ngay cả khi chúng ta sạch ra bất cứ kết quả xây dựng trước đó!

Linux thiết lập máy chủ ccache

  • Install ccache via apt-get install ccache
  • Create a directory /opt/ccache owned by the jenkins user
  • Add a line at the bottom of /etc/profile like this: export PATH=/opt/ccache:$PATH
  • Add a line at the bottom of /etc/profile like this: export NDK_CCACHE="ccache", this will make the Android NDK use ccache!
  • For each compiler executable (gcc, g++, i686-w64-mingw32-gcc, i686-w64-mingw32-g++, x86_64-w64-mingw32-gcc, x86_64-w64-mingw32-g++), create a script that looks analogous to this:
ccache /usr/bin/x86_64-w64-mingw32-gcc "$@"

And that's it. Through this, we proxy all compiler calls through ccache which will speed up our build considerably.

Mac thiết lập máy chủ ccache

  • Install ccache through Homebrew
  • Create a directory /opt/ccache owned by the jenkins user
  • Add a line at the bottom of /etc/profile like this: export PATH=/opt/ccache:$PATH
  • For each compiler executable (gcc, g++), create a script that looks analogous to this:
ccache /usr/bin/g++ "$@"

Qua đây, chúng tôi ủy quyền tất cả các trình biên dịch gọi cho Mac OS X biên soạn bản địa thông qua ccache, đẩy nhanh tiến độ xây dựng của bạn. Tôi vẫn chưa tìm ra cách để làm công việc này với bản iOS của chúng tôi được xây dựng.

Bắt đầu thiết lập cơ sở hạ tầng xây dựng

Bắt đầu thiết lập cơ sở hạ tầng xây dựng Đăng ngày 07-11-2016  Cơ sở hạ tầng xây dựng của chúng tôi có trách nhiệm xây dựng libgdx cho tất cả các nền tảng được hỗ trợ (Windows, Linux, Mac OS X, Android, iOS, HTML). Ngày đầu của mã Java cũ nhàm chán, chúng ta cũng cần phải biên dịch mã nguồn gốc cho mỗi nền tảng và kiến trúc (32, 64-bit nếu có). Chúng tôi giải quyết vấn đề này bằng cách sử dụng cross-biên dịch trên một máy chủ Linux để biên dịch mã nguồn gốc cho Windows, Linux và Android. Chúng ta cũng sử dụng một máy Mac để biên dịch iOS và Mac OS X nhị phân bản địa. 5/10 113

Thảo luận:

Để bình luận bạn phải đăng nhập thành viên.

File tương tự

Files cùng mục

 

File tải nhiều nhất

Megacode.vn - Thư viện mã nguồn chia sẻ, tải file cho cộng đồng
Copyright © 2013-2016. All rights reserved. Bản quyền thuộc VinaGon
Địa chỉ: Số 38 Hàng Bè, Hàng Bạc, Hoàn Kiếm, Hà Nội.
Văn phòng giao dịch: Phòng 28, Tầng 6, HH1A Linh Đàm, Hoàng Mai, Hà Nội
Email: info@vinagon.com | Website: www.vinagon.com | Điện thoại: (+844) 6. 32.979.36;
logo megacode

Megacode đã đăng ký với Bộ Công Thương
Thư viện mã nguồn mở lớn nhất Việt Nam.



Hỗ trợ khách hàng trên Megacode
Hỗ trợ kỹ thuật cho thành viên:
Tổng đài: (+844) 6. 32.979.36
Số di động (Hotline): 0969.091.265
Thời gian làm việc:
Sáng: 8h-12h; Chiều: 13h30-17h30
(Nghỉ chiều T7, CN và các ngày lễ, tết)
Chat với Megacode
https://www.facebook.com/megacodevn