Tự động hóa CLI và CI

Chuẩn bị bản cài CLI đã xác minh và tự động hóa công việc cục bộ có giới hạn, biên nhận cùng kiểm tra backend rõ ràng.

Tổng quan

Chuẩn bị bản cài Linux đã xác minh, rồi chạy công việc thiết kế dưới tài khoản tác vụ thông thường trong không gian làm việc mới. Tách đặc quyền cài đặt khỏi xử lý mã nguồn. Trang này dùng hợp đồng cài đặt CLI 0.1.9; chọn bản phát hành thực sự khả dụng qua Tải xuống.

Điều kiện chuẩn bị

  1. Ghim chính xác phiên bản, tên kho lưu trữ và danh mục có chữ ký mà quy trình chấp nhận.

  2. Làm theo Xác minh bản tải xuống để xác thực dấu ghim DER khóa công khai, manifest tổng kiểm tra có chữ ký, chữ ký kho và chữ ký danh mục trước khi thực thi bất kỳ bản nhị phân đã tải nào.

  3. Dùng Cài đặt trên Linux. Bootstrap tích hợp tạo bố cục có chữ ký và thành phần Tcl cố định mà không cần checkout kho, biên dịch hay truy cập mạng. Chỉ cài trong bước do quản trị viên kiểm soát.

  4. Chạy đúng PREFIX/bin/alti đã cài và giữ báo cáo phiên bản, khả năng. Không thay bằng bản nhị phân phát triển hay runner PATH chưa xác minh.

Kho lưu trữ tồn tại và đầu ra trợ giúp không chứng minh bản cài đã sẵn sàng. Kiểm tra alti capabilities và phản hồi khả năng cho thao tác dự định chạy. Kiểm tra thất bại nên dừng thao tác đó, thay vì bật phương án dự phòng.

Công thức CI ngoại tuyến

Chuẩn bị job.json và mã nguồn chỉ chủ sở hữu được truy cập theo Thành công đầu tiên với CLI. Đặt ALTI_BIN thành đúng bản cài đã xác minh và ALTI_WORKSPACE thành không gian làm việc đã chuẩn bị của tác vụ này:

Bash
set -euo pipefail
ALTI_BIN="${ALTI_BIN:?set the verified absolute installed alti path}"
ALTI_WORKSPACE="${ALTI_WORKSPACE:?set the private prepared workspace}"
case "$ALTI_BIN" in /*) ;; *) exit 1 ;; esac
EVIDENCE="$(mktemp -d)"

"$ALTI_BIN" version > "$EVIDENCE/version.txt"
"$ALTI_BIN" capabilities > "$EVIDENCE/capabilities.json"
"$ALTI_BIN" commands > "$EVIDENCE/commands.json"
"$ALTI_BIN" --json job validate \
  --job "$ALTI_WORKSPACE/job.json" \
  --workspace-root "$ALTI_WORKSPACE" \
  --source rtl/top.sv \
  > "$EVIDENCE/preflight.json" 2> "$EVIDENCE/preflight-error.json"

jq -e 'length == 25' "$EVIDENCE/commands.json" >/dev/null
jq -e '
  .receipt_schema == "altifigence.cli.engine-job-preflight.v1" and
  .status == "client_preflight_valid" and
  .submitted == false and
  .server_authority_verified == false
' "$EVIDENCE/preflight.json" >/dev/null

Điều này kiểm tra sơ bộ, không thực thi RTL. Thêm đánh giá CPU XLS rõ ràng hoặc thao tác bộ máy cục bộ có giới hạn khác khi quy trình cần kết quả thực thi. Các kiểm tra cục bộ này không cần thông tin xác thực Cloud.

Quy tắc khả năng và đầu ra

  • Kiểm tra mã thoát tiến trình trước khi phân tích schema riêng của lệnh như mong đợi.

  • Giữ stdout và stderr riêng. Với --json, phân tích đầu ra bộ máy từ stdout của phong bì; khi nối luồng plan/apply DDS, lưu kết quả gốc thô.

  • Dùng thư mục không gian làm việc/lần chạy mới. Xem toàn bộ kế hoạch tạo nội dung trước khi áp dụng và tạo lại sau xung đột thay vì thay các hàm băm.

  • Dùng chính sách cpu/cuda rõ ràng hoặc Evolve cpu-reference/cuda. XLS và RTL đóng gói không âm thầm chuyển sang phương án dự phòng. PX auto là chính sách lựa chọn riêng, phải đọc backend thực tế và phương án dự phòng từ biên nhận của nó.

  • Lên lịch đánh giá GPU riêng với driver và công cụ Icarus cần thiết. Yêu cầu công việc CUDA thực sự được chấp nhận và nguồn gốc phần cứng đã lưu; chỉ khám phá là chưa đủ. Không suy hiệu năng từ kiểm tra chức năng.

  • Ghi Cloud cần quyền tài khoản/dự án và sự đồng ý tải lên rõ ràng của thao tác. Thay thế qua HTTP kế thừa cần hàm băm mới từ dịch vụ đó; 409 là xung đột, không phải quyền thử lại với kiểm tra yếu hơn.

Giữ bằng chứng

Giữ danh mục/chữ ký đã xác minh, giá trị băm bản nhị phân đã cài, phiên bản CLI, đối số đã che nhạy cảm, giá trị băm đầu vào, mã thoát và luồng kết quả/chẩn đoán có giới hạn. Bản ghi GPU còn cần danh tính thiết bị/driver thực tế và công cụ ngoài. Tách bằng chứng phát triển/gỡ lỗi khỏi đánh giá gói có chữ ký. Tránh giữ thông tin xác thực hay mã nguồn dự án không cần thiết.

Giữ CI có thể lặp lại

  1. Ghim bản phát hành đã xác minh và phiên bản chuỗi công cụ ngoài khi chuẩn bị runner.

  2. Dùng thư mục mã nguồn mới thuộc người dùng và đường dẫn đầu ra mới cho mỗi tác vụ.

  3. Chạy kiểm tra khả năng và một lần thực thi thực tế nhỏ phù hợp thao tác yêu cầu.

  4. Cho pipeline thất bại khi mã thoát khác không, đầu ra sai định dạng, danh tính mã nguồn cũ hoặc thiếu hiện vật bắt buộc.

  5. Giữ chẩn đoán và giá trị băm có giới hạn; luân chuyển thông tin xác thực qua kho bí mật CI thay vì nhật ký đã lưu.

Lưu cache đầu vào cài đặt đã xác minh hoặc chuỗi công cụ bất biến theo phiên bản và giá trị băm. Không đưa kết quả dự án, tệp phiên hay thông tin xác thực nhà cung cấp vào cache dùng chung. Công việc từ xa cần ủy quyền rõ ràng và theo dõi tác vụ riêng; CI cục bộ thành công không có nghĩa công việc Cloud đã chạy.