Circleci Orbs

 - 

Bài viết cội sinh hoạt blog của mình: https://chienkira.github.io/blog/posts/%C3%A1p-d%E1%BB%A5ng-circle-ci/

thuở đầu trang blog này mình định deploy bằng tay vị nó đơn giản, thao tác cũng chẳng có gì - chạy chiếc shell script chấm dứt vào nháy đôi mắt thôi. Nhưng cơ mà tuần này chưa xuất hiện gì xuất xắc ho nhằm viết buộc phải bản thân quyết định thiết lập CI mang lại em nó rồi lấy ý nhằm viết bài xích này reviews về CI luôn luôn.

Bạn đang xem: Circleci orbs

Giới thiệu CI cùng Circle CI

CI

CI viết tắt của Continuous Integration (Tích thích hợp liên tục)Trong tiến trình làm cho phần mềm, lầm lỗi lớn số 1 rất có thể xẩy ra không hẳn là khi developer code ra cái gì tởm lợm! Ta biết nó tởm lợm, ta sửa lại nó vậy là ngừng. Nhưng một thao tác làm việc sai mặc dù nhỏ tuổi trong khi deloy hoàn toàn có thể dẫn mang lại tai nạn đáng tiếc khôn lường. Không tất cả nhì em gái nào xinch như nhau được nhau :)) giống như vậy không có gì đảm bảo an toàn rằng vào hàng vạn hàng vạn lần các bạn triển khai deploy, không có một lỗi lầm thao tác làm việc nào xảy ra.

Vì lý cho nên, công ty nhà fan bạn hướng đến một phương thức thực hiện ứng dụng ưu việt hơn. Với điểm mạnh là an toàn hơn, quá trình lại được auto hóa, CI (và cả CD nữa) đang là xu thế thực thụ. Nói mang đến đây thì cũng không thể rõ CI thực tiễn nó là đồ vật gi cả buộc phải ko ạ? CI nó y hệt như hình trạng kiến thiết pattern là triết lý thôi vận dụng nó ra sao đặc trưng với ta hơn. Vậy bắt buộc bản thân đã lý giải tiếp thông qua bài toán ra mắt tool Circle CI nghỉ ngơi ngay dưới nhé.

Circle CI

Nhỏng ngơi nghỉ bên trên kể, nó là một tool để giúp ta thực tại hóa CI. Có các tool CI không giống cũng nổi tiếng nữa (Travis CI, Jenkins...), nguyên nhân mình chọn Circle CI chỉ đơn giản dễ dàng vị bên trên đơn vị làm cho cùng với nó những rồi yêu cầu gồm tay nghề thôi.

Bản chất Circle CI là sử dụng docker, trong cấu hình Circle CI ta đã chỉ định các docker image vẫn sử dụng với những job, trong những job lại có những step, trong những step là cụ thể các command. Ngoài ra còn tồn tại cấu hình filter đỡ đần ta linc hoạt kiểm soát và điều chỉnh sao cho chỉ run những job khi có merge/push vào một số ít branch nhất quyết vân vân.

Mô tả quy trình run 1 job trên Circle CI:

Developer chỉ cần push hoặc merge vào 1 branch, Circle CI auto biết event kia và khởi đụng lên job đã được thiết đặt tương ứng.Ban đầu Circle CI pull docker image về với run lên trên môi trường cloud của nóTiếp theo nó chạy các step đã có được cài đặt trong docker container, thường thì step thứ nhất luôn luôn là checkout tức là git checkout rước source về (mang định lưu lại vào tlỗi mục ~/project)Các step tiếp theo sau được chạy tùy thuộc vào độ sáng tạo của công ty, ví dụ job nhằm build thì thường xuyên là npm install rồi npm run abcxyz tuyệt job nhằm deploy thì hoàn toàn có thể là aws s3 sync xuất xắc serverless deploy...Sau Khi toàn bộ các step sẽ chạy xong xuôi, job dứt. Nếu exit code của job là error thì khoác định ta sẽ cảm nhận mail thông tin failed nữa.

Nói tóm lại, sau thời điểm cài đặt cùng thông số kỹ thuật ta chỉ bài toán dev còn các quá trình nhỏng build, chạy chạy thử, deploy vân vân được auto hóa hoàn toàn với chạy liền bên trên môi trường xung quanh cloud mạnh khỏe miễn giá tiền của Circle CI.

Áp dụng Circle CI cho chienkira/blog

Sau phía trên bản thân đã áp dụng Circle CI để thiết lập CI giúp bản thân tự động deploy cùng publish trang blog mỗi lúc tất cả push thay đổi gì đấy lên github.

※ Blog của bản thân viết bởi hugo, publish trải qua github pages

Chọn docker image để gia công việc

Trước tiên là cần tìm kiếm em docker image ngon ngon để xài.

Chúng ta đề nghị tránh lấy mấy image offical hào bóng đẳng cấp linux giỏi node vân vân. Bọn nó xịn xò thiệt, tin yêu được thật cơ mà nhưng mà "nguyên thủy" thấy tởm. Nếu sử dụng mấy image kia thì nhằm sử dụng được câu hỏi ta lại phải cài thêm ông A anh B, dẫn đến mỗi job bên trên Circle CI chỉ riêng biệt đoạn pull docker image kết thúc install những tool thì cũng mang đến mấy phút rồi...

*

Kinch nghiệm của bản thân là lên thẳng docker hub rồi tìm kiếm loại image nào bao gồm sẵn các sản phẩm bản thân nên kéo về xài. Cẩn thận hơn thế thì check qua dockerfile của nó coi base từ bỏ image nào, run các lệnh gì mang lại bảo đảm an toàn.

Yêu cầu của image lần này là bắt buộc có hugo với git. (các image trên Thị Trường ko gồm git phải buộc phải cẩn thận, ko gồm git là lệnh checkout của Circle CI bị tiêu diệt ngay lập tức

*
)

Ok tìm kiếm thôi, từ khóa "hugo git" và links trang hiệu quả search đây: https://hub.docker.com/search?q=hugo%20git&type=image.Image đầu tiên trong danh sách kết quả bản thân nhìn thấy là ưng cái bụng lập tức.

Container with Hugo, Git & Bash installed. Made to work with wercker.

Chechồng qua test docker tệp tin, base là alpine => hết sức vơi nữa. Ok để có thể nữa thì mình sẽ pull image này về bên trên máy kiểm tra mặt hàng em nó!

Run em nó:

docker run --rm -it andthensome/alpine-hugo-git-bash /bin/shVào vào em nó rồi thì check hàng:

Cài đặt Circle CI

1. Đăng nhtràn vào Circle CI

trước hết cần được đăng ký/đăng nhập lệ Circle CI.

Mngơi nghỉ link https://circleci.com/vcs-authorize/ cùng chọn Login with github, singin xong xuôi màn hình bối cảnh website của Circle CI sẽ tiến hành xuất hiện thêm.Trên bối cảnh này ta hoàn toàn có thể browse các project trên thông tin tài khoản github của mình cùng team, thiết lập Circle CI cho các em nó, quan sát và theo dõi các job sẽ chạy vân vân cùng vân vân. Mình đánh giá đồ họa trực quan cùng dễ dàng thực hiện, đầy đủ đọc tin.

Xem thêm: " Cayenne Pepper Là Gì ? Nghĩa Của Từ Cayenne Pepper Trong Tiếng Việt

2. Setup Circle CI mang lại project

Chọn thực đơn "Địa chỉ cửa hàng PROJECTS" sống mặt tay trái, vào các mục những repositories được hiển thị ra mình chọn blog vày lần này bạn muốn thiết đặt Circle CI mang lại nó.

*

Tại màn hình tiếp theo, vào mục language giả dụ như không tồn tại ngữ điệu project bạn thực hiện thì cũng đừng lo lắng. Việc chọn rước một ngôn ngữ chỉ là nhằm web nó lưu ý ra ngôn từ sample đến file config.yml thôi. Mình luôn luôn chọn ngữ điệu Other.

Nhìn tiếp xuống dưới hoàn toàn có thể thấy gợi ý công việc tiếp sau bắt buộc làm nhằm hoàn toàn setup Circle CI. Tóm tắt lại là nó bảo ta hãy sản xuất tệp tin .Circleci/config.yml ở trong tlỗi mục cội của repository, xem thêm ngôn từ sample dưới đây và sửa đổi tệp tin config.yml rồi sau cuối ấn nút Start building.

Hướng dẫn là thế nhưng mà lại dở người gì làm cho hệt như lời nó, tôi vừa làm vừa mò cơ mà. Thế yêu cầu các bạn cứ lạc quan ấn luôn luôn nút ít Start building để hoàn tất câu hỏi setup Circle CI đến project nhé. Mình luôn làm cho núm, dĩ nhiên lần thứ nhất build Circle CI đã báo ngay lập tức ra lỗi sau, tuy vậy ko có gì cả.

No configuration was found in your project. Please refer to https://Circleci.com/docs/2.0/ khổng lồ get started with your configuration.

*

Từ bây chừ mỗi khi push code lên github, CI job sẽ auto được khởi đụng lên rồi.Vậy chờ gì nữa, qua bước tiếp theo thông số kỹ thuật cụ thể những job cùng step mang đến Circle CI thôi.

3. Cấu hình Circle CI

Trước không còn chế tạo ra file config.yml nhỏng Circle CI vẫn dạy dỗ.

mkdir .circlecitouch .circleci/config.ymlNội dung ban sơ file config.yml bản thân đang nhằm nhỏng sample của Circle CI:

version: 2jobs: build: docker: - image: debian:stretch steps: - checkout - run: name: Greeting command: emang lại Hello, world.Tiếp theo mình vẫn sửa lại địa điểm docker image, bản thân sửa chữa vào cái image mình tìm thấy nghỉ ngơi trên.

docker: - image: andthensome/alpine-hugo-git-bashMình chỉ muốn chạy job Lúc bao gồm push lên branch master thôi nên bản thân đã thêm cấu hình này vào job:

jobs: build: branches: only: - masterBlog của bản thân được publish thông qua github pages, chỉ việc push nội dung lên branch cố định và thắt chặt nhưng mà github sẽ điều khoản là gh-pages thì từ tương khắc content sẽ được serve sầu làm việc domain name https://chienkira.github.io/blog.Bây Giờ, bài toán build blog (xuất hiện câu chữ html tĩnh của blog) với push nó lên branch gh-pages đã làm được script hóa vào tệp tin publish.sh rồi. Do kia trong Circle CI bản thân hi vọng chỉ việc chạy tệp tin script này là kết thúc luôn. Thêm step vào config.yml nhỏng sau:

... docker: - image: andthensome/alpine-hugo-git-bash steps: - run: name: build site và push to lớn github-pages command: sh publish.shRồi demo commit với xem Circle CI chạy ra sao nhé.git commit -am "add circle ci" &và git push

Check trên screen Circle CI có thể thấy job được khởi hễ nhỏng nó có thiết kế mà lại nó đã failed.

*
Cliông chồng vào coi chi tiết chất vấn có thể biết cthị xã gì sẽ xảy ra trong docker container.Ở đây bản thân chạm chán lỗi nlỗi bên dưới - blog của bản thân mình cần sử dụng theme chảnh, nó đòi nên tất cả hugo version cao hơn.

Google một hồi bản thân thêm được step sau để nâng cấp hugo lên version 0.50 vào loại image alpine này.

- run: name: nâng cấp hugo command: | app android update && game android add ca-certificates && update-ca-certificates &và apk add openssl &và apk add openssh-client wget https://github.com/gohugoio/hugo/releases/download/v0.50/hugo_0.50_linux-64bit.tar.gz tar xzf hugo_0.50_linux-64bit.tar.gz -C /usr/local/bin/ Và thêm một step nhằm config git nữa là bản thân hoàn chỉnh chấm dứt cấu hình Circle CI.Các bạn cần có thể xem thêm file config.yml ở đầu cuối ở đây: https://github.com/chienkira/blog.

Xem thêm: Độ Dốc 1/12 Là Gì, Tính Toán Đường Dốc, Cách Tính Phần Trăm Độ Dốc Chuẩn

Commit đợt tiếp nhữa rồi đánh giá web Circle CI, job vẫn chạy thành công xanh biếc.

*

Kể từ bài bác này là blog của mình đã làm được publish tự động rồi. Mặc dù lần này, blog đơn giản và dễ dàng buộc phải quá trình CI không tồn tại gì nhiều với tinh vi mà lại mục đích auto hóa thì vẫn thành công xuất sắc.Circle CI là khí cụ miễn mức giá và hoàn hảo, nếu bạn gồm project như thế nào hoàn toàn có thể vận dụng hãy trải đời thử một đợt nhé.

Bài viết gốc sinh hoạt blog của mình: https://chienkira.github.io/blog/posts/%C3%A1p-d%E1%BB%A5ng-circle-ci/