Altium Concord Pro™ như một sản phẩm và thương hiệu độc lập đã được ngừng phát hành và các khả năng của nó giờ đây có sẵn như một phần của giải pháp doanh nghiệp Altium của chúng tôi. Tìm hiểu thêm tại đây.
Trong Liên kết Dự án Quản lý với Máy chủ Git của bạn sử dụng Altium Concord Pro, chúng tôi đã xem xét cách sao chép các kho Git từ máy chủ Altium Concord Pro™ của bạn đến máy chủ Git yêu thích của bạn (tức là, Github, Bitbucket, Gitlab, v.v.). Trong bài viết này, chúng tôi sẽ xem xét một phương pháp tự động hóa việc tạo bản sao máy chủ Git và bao gồm việc ghi nhật ký toàn diện. Những gì chúng tôi sẽ thiết lập ở đây có thể chạy như một dịch vụ Windows trên máy chủ Altium Concord Pro của bạn.
Altium Concord Pro sử dụng một máy chủ Git nội bộ để lưu trữ Dự án Quản lý. Tại thời điểm viết bài này, Concord Pro không có cách nào để lưu trữ tất cả Dự án Quản lý trên một máy chủ Git bên ngoài một cách tự nhiên. Chúng tôi sẽ đi qua một ví dụ về kịch bản và kiến trúc tự động hóa quá trình sao chép tất cả Dự án Quản lý trên máy chủ Concord Pro sang máy chủ Git khác. Để lấy mã và tạo bản sao máy chủ Git của riêng bạn, bạn có thể tải xuống từ kho Gitlab này.
Tại sao chúng ta nên sử dụng máy chủ gương Git? Có thể có vô số lý do khiến ai đó muốn lưu trữ thiết kế của mình trên một máy chủ Git bên ngoài thay vì Concord Pro. Lý do chính là để duy trì một bản sao lưu lịch sử sửa đổi toàn diện. Bạn có thể muốn một cách đơn giản để quản lý dự án từ máy chủ Concord Pro tại chỗ của mình. Nếu một dự án bị xóa khỏi máy chủ Concord Pro, nó có thể được giữ lại trên máy chủ gương Git. Điều này không chỉ đơn thuần phản chiếu các tệp dự án, mà còn lưu trữ lịch sử các lần commit, nhánh, v.v.
Có một số thành phần chính tạo nên dịch vụ này:
Mã được chia thành hai phần: bảng tra cứu và bộ đồng bộ hóa. Bảng tra cứu (còn được biết đến là “từ điển repo” trong mã) đóng vai trò như một liên kết giữa mỗi kho lưu trữ Dự án Quản lý Concord Pro và kho lưu trữ mục tiêu/từ xa của bạn. Vì Concord Pro sử dụng GUID, tên/mô tả kho lưu trữ nằm trong cơ sở dữ liệu Firebird. Trong ví dụ này, bảng tra cứu, hay dict, sử dụng GUID làm khóa và kho lưu trữ từ xa (trên máy chủ Git từ xa của bạn) làm giá trị. Phần bộ đồng bộ hóa sử dụng thư viện Watchdog để theo dõi đệ quy thư mục Git trong thư mục cài đặt Concord Pro cho bất kỳ sự kiện thay đổi tệp nào. Khi tệp chính cho bất kỳ thư mục nào (tức là kho lưu trữ) thay đổi, có thể coi là khá an toàn khi giả định rằng HEAD của Git đã được chuyển sang một băm mới. Cơ bản, điều này có nghĩa là kho lưu trữ đã được cập nhật. Điều này kích hoạt một sự kiện được tạo ra thông báo cho bộ đồng bộ hóa để phản chiếu kho lưu trữ của GUID từ máy chủ Concord Pro sang kho lưu trữ từ xa trên máy chủ Git từ xa (sử dụng bảng tra cứu từ điển repo). Một khi việc đồng bộ hóa git xảy ra, giao dịch hoàn tất, và sự kiện tiếp theo trong hàng đợi (nếu có) lặp lại quá trình.
Dưới đây là sơ đồ khối mô tả hai phần dưới dạng các script Python:
Có nhiều cách để tạo ra bảng tra cứu liên kết các Dự án Quản lý Concord Pro với các kho lưu trữ trên máy chủ Git từ xa. Một cách rất đơn giản có thể là tạo thủ công kho lưu trữ từ xa và sau đó nhập một tệp văn bản vào script Đồng bộ hóa. Script này tạo ra một đối tượng từ điển, chỉ dẫn cho bộ đồng bộ hóa biết Dự án Quản lý nào phản ánh đến kho Git từ xa nào. Trong ví dụ này, máy chủ Git từ xa được quản lý bởi Bitbucket. Do đó, API của Atlassian (Bitbucket) đã được sử dụng để xác thực các kho lưu trữ hiện có và tạo mới khi cần thiết.
Như đã đề cập ở trên, do các Dự án Quản lý sử dụng GUID cho cơ chế đặt tên kho lưu trữ của mình, nên cần thực hiện chức năng tra cứu trong cơ sở dữ liệu Firebird để lấy "tên thực" của Dự án Quản lý. Sau khi lấy được tên của dự án, bạn có thể sử dụng nó để tạo kho lưu trữ trên máy chủ từ xa. Ví dụ, một GUID kho lưu trữ có thể là “E9B1952E-BAFE-4A79-801B-76C0F750A8D7” với tên Dự án Quản lý là “My Repo.” Kho lưu trữ đó ban đầu sẽ không tồn tại trên máy chủ từ xa, và bạn có thể cần tạo một quy tắc chung: tất cả khoảng trắng được thay thế bằng dấu gạch ngang, và tất cả ký tự được chuyển đổi thành chữ thường. Điều này sẽ dẫn đến việc tên kho lưu trữ từ xa của bạn trở thành “my-repo.” Bạn phát lệnh gọi API để tạo kho lưu trữ và sau đó lưu trữ nó trong bảng/tệp từ điển của mình. Một khi việc khởi tạo bảng tra cứu này đã hoàn tất (bao gồm cả việc tạo các kho lưu trữ chưa tồn tại trên máy chủ từ xa), bạn đã sẵn sàng để bắt đầu bộ đồng bộ hóa.
Như đã thảo luận ở trên, bộ đồng bộ hóa tìm kiếm sự thay đổi của tệp trong thư mục Dự án Quản lý Concord Pro. Sau đó, nó phản chiếu nó lên máy chủ từ xa sử dụng bảng tra cứu được cung cấp bởi kịch bản từ điển repo. Có các chức năng phụ trợ như ghi nhật ký toàn diện và quản lý dịch vụ Windows diễn ra ở hậu trường, nhưng chúng không phải là phần của chức năng cốt lõi của kịch bản. Mặc dù kịch bản này không toàn diện và không phải là không thể sai sót, nhưng đây là một minh chứng tốt về cách một người có thể tạo ra một dịch vụ đồng bộ hóa tự động giữa Concord Pro và một máy chủ Git từ xa.
Trong bài viết này, chúng tôi đã xem xét và cung cấp một ví dụ về cách tự động tạo một máy chủ Git phản chiếu và điền nó với các Dự án Quản lý trong thể hiện Altium Concord Pro của bạn. Bạn có thể sử dụng một máy chủ Git từ xa như Github, Gitlab, hoặc Bitbucket làm máy chủ Git phản chiếu để lưu trữ các dự án Altium Concord Pro của bạn. Chúng tôi đã xem xét kiến trúc và các dịch vụ cần thiết để đưa ra giải pháp này và sau đó giải thích cách tất cả chúng kết hợp với nhau.
Ví dụ này không bao gồm mọi trường hợp ngoại lệ. Tuy nhiên, loại phản chiếu này dễ dàng được triển khai như một dịch vụ trên máy chủ Windows chứa Altium Concord Pro. Chúng tôi đã tận dụng API trên máy chủ Atlassian (Bitbucket) thông qua thư viện Python của họ, nhưng bạn cũng có thể triển khai điều này trên một máy chủ Git khác miễn là bạn có quyền truy cập API. Nếu bạn đang làm việc trên máy chủ tùy chỉnh của riêng mình, bạn có thể theo dõi các bước tương tự với mã của riêng mình để tạo một máy chủ Git phản chiếu các dự án Altium Concord Pro của bạn.
Nói chuyện với một chuyên gia Altium hôm nay để tìm hiểu thêm.