@vhung Nếu kế hoạch deploy của bạn phức tạp (hoặc có thể trở nên phức tạp sau này), bạn có thể tham khảo sử dụng các công cụ auto deploy, ví dụ như Shipit, hay Ansible.
Nếu đơn giản chỉ cần chạy một hai lệnh thì bạn có thể chạy thẳng chúng ở phần config SSH như hướng dẫn ở CircleCI Document
jobs:build:#...deploy:machine:enabled:truesteps:-run:name: Deploy Over SSH
command:|
ssh $SSH_USER@$SSH_HOST "<remote deploy command>"
@thangtd90@HuyDQ Hiện tại thì dự án mình chưa viết test, mình đang deploy trên VPS, dùng ssh để access vào. Mình chỉ cần khi merge code thì circleci trigger event đó, access vào server và chạy lệnh npm run build thôi, như vậy thì cấu hình có phức tạp lắm ko nhỉ.
Thực ra có 1 biện pháp để khắc phục của 2 loại force push, hay việc "Đừng fetch mà không merge", và tất cả những vấn đề về git khác nữa...
Đó là học thật kỹ git command trước khi dùng nó. Mọi người khi chuyển từ svn sang git, thường với tâm thế nghĩ nó chỉ như nhau, nhưng thực tế làm với git phải học rất rất rất nhiều, y như việc học 1 ngôn ngữ lập trình mới vậy. Nếu chịu đầu tư thời gian nghiên cứu kỹ nó, thì không có gì phải lo cả, cả force push, ... fetch thoải mái. Cá nhân mình cũng thường fetch chứ không pull ngay, cá nhân mình không đồng ý quan điểm đừng fetch mà không merge, đơn giản vì nếu ai đó không hiểu lý do tại sao làm như thế, họ sẽ chỉ có pull và pull y như học vẹt, và nếu 2 người làm chung branch mà chỉ có pull và pull thì sao, dĩ nhiên sẽ xảy ra hiện tượng self-merge, tự merge vào nhau nhìn rất xấu git history. Mình recommend là mỗi người developer, cần nắm rõ git, các thao tác nâng cao rebase, reset, fix history... nhằm làm đẹp git history trước khi push lên, chứ không chỉ là những thao tác basic như commit, pull, push..
Chả có câu chuyện gì gọi là "mất code" cả, đơn giản là những commit đó sẽ rơi vào trạng thái unreference/unreachable và không hiển thị trên git history mà thôi, code vẫn nằm ở trên server git ấy, trừ phi bạn để nó chạy git gabage collection
THẢO LUẬN
Bài viết rất hay, cảm ơn anh đã chia sẻ.
@vhung Nếu kế hoạch deploy của bạn phức tạp (hoặc có thể trở nên phức tạp sau này), bạn có thể tham khảo sử dụng các công cụ auto deploy, ví dụ như Shipit, hay Ansible.
Nếu đơn giản chỉ cần chạy một hai lệnh thì bạn có thể chạy thẳng chúng ở phần config SSH như hướng dẫn ở CircleCI Document
Nếu bạn muốn lương cao ngay sau khi ra trường thì có 1 cách rất đơn giản
.
thanks
bạn cho câu lênh chạy cuối trong hướng dẫn ở source code là :
docker-compose exec app bash -c "cd /app && node server.js "category_url" "destination_file_name""
cho mình ví dụ được không bạn
@thangtd90 @HuyDQ Hiện tại thì dự án mình chưa viết test, mình đang deploy trên VPS, dùng ssh để access vào. Mình chỉ cần khi merge code thì circleci trigger event đó, access vào server và chạy lệnh npm run build thôi, như vậy thì cấu hình có phức tạp lắm ko nhỉ.
hay quá
cho hoỉ bạn có biết template nào cho kinh doanh ko
tôi khuyên bạn nên https://www.penpaland.com trang web trao đổi ngôn ngữ dựa
trong trường hợp mình muốn gửi 1 file có sẵn trong storage thì phải làm sao
@vhung
Chắc là do CircleCI nó mạnh mẽ quá với quá nhiều chức năng nổi trội nên chính vì thế sẽ sinh ra nhiều option config cho người dùng tuỳ ý customize
Nhưng cũng chính điều đó sẽ làm nên sức mạnh cho CircleCI bạn ạ
Không rõ bạn cần chạy những test tools gì, và muốn sử dụng công cụ gì để tiến hành auto deploy nhỉ
Tú best rồi 😜
của cụ đây https://viblo.asia/p/trinh-bay-bai-viet-tren-viblo-jlA7GKQKRKZQ
k biết sửa như thế nào e eei
@vhung bạn có thể nói qua bạn muốn config những gì không ?
Bài viết hay và có tâm quá a ơi. Sửa lại table content nữa là đẹp a ạ (y)
Thực ra có 1 biện pháp để khắc phục của 2 loại force push, hay việc "Đừng fetch mà không merge", và tất cả những vấn đề về git khác nữa...
Đó là học thật kỹ git command trước khi dùng nó. Mọi người khi chuyển từ svn sang git, thường với tâm thế nghĩ nó chỉ như nhau, nhưng thực tế làm với git phải học rất rất rất nhiều, y như việc học 1 ngôn ngữ lập trình mới vậy. Nếu chịu đầu tư thời gian nghiên cứu kỹ nó, thì không có gì phải lo cả, cả force push, ... fetch thoải mái. Cá nhân mình cũng thường fetch chứ không pull ngay, cá nhân mình không đồng ý quan điểm đừng fetch mà không merge, đơn giản vì nếu ai đó không hiểu lý do tại sao làm như thế, họ sẽ chỉ có pull và pull y như học vẹt, và nếu 2 người làm chung branch mà chỉ có pull và pull thì sao, dĩ nhiên sẽ xảy ra hiện tượng self-merge, tự merge vào nhau nhìn rất xấu git history. Mình recommend là mỗi người developer, cần nắm rõ git, các thao tác nâng cao rebase, reset, fix history... nhằm làm đẹp git history trước khi push lên, chứ không chỉ là những thao tác basic như commit, pull, push..
Chả có câu chuyện gì gọi là "mất code" cả, đơn giản là những commit đó sẽ rơi vào trạng thái unreference/unreachable và không hiển thị trên git history mà thôi, code vẫn nằm ở trên server git ấy, trừ phi bạn để nó chạy git gabage collection
với dữ liệu mẫu mình cần dán nhãn bằng tay bạn nhé. FYI
tác giả chưa viết đó ợ
bài viết rất hay, cám ơn bạn 👍