在Debian上設置Rust項目的持續集成與部署(CI/CD),常用工具為GitHub Actions或GitLab CI/CD,以下是基于GitHub Actions的配置步驟(以Rust項目為例):
安裝Rust工具鏈
在Debian系統上通過rustup
安裝Rust:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup update # 確保工具鏈最新
創建Rust項目
使用cargo
初始化項目:
cargo new my_rust_project
cd my_rust_project
在項目根目錄下創建.github/workflows/rust-ci.yml
,內容如下:
name: Rust CI/CD
on:
push:
branches: [ main ] # 觸發條件:main分支有推送
pull_request:
branches: [ main ]
jobs:
build-and-test:
runs-on: ubuntu-latest # 使用Ubuntu環境
steps:
- uses: actions/checkout@v4 # 檢出代碼
- name: Set up Rust
uses: actions-rs/setup-rust@v1 # 安裝指定Rust版本
with:
rust-version: stable # 可改為"1.70"等具體版本
- name: Build
run: cargo build --verbose # 編譯項目
- name: Run tests
run: cargo test --verbose # 運行測試
- name: Check vulnerabilities
run: cargo audit # 檢查依賴漏洞(可選)
deploy: # 部署階段(僅在main分支觸發)
needs: build-and-test # 依賴構建測試通過
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build release binary
run: cargo build --release # 構建發布版本
- name: Deploy to server
run: |
scp target/release/my_rust_project user@your-server:/path/to/deploy # 替換為實際部署命令
env:
SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} # 使用GitHub Secrets存儲私鑰
runs-on
:指定運行環境為Ubuntu(Debian兼容)。actions-rs/setup-rust
:自動安裝Rust工具鏈,支持指定版本。cargo build/test
:執行編譯和測試,--verbose
可查看詳細日志。cargo audit
:檢查依賴庫的安全漏洞(需先安裝cargo-audit
)。scp
將二進制文件上傳至服務器,需在GitHub Secrets中配置SSH私鑰。若需容器化部署,可在CI流程中添加Docker構建步驟,示例:
- name: Build Docker image
run: |
docker build -t my-rust-app:latest . # 需提前準備Dockerfile
- name: Push to Docker Hub
run: |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_TOKEN }}
docker push my-rust-app:latest
需在項目根目錄創建Dockerfile
,例如:
FROM rust:latest as builder
WORKDIR /app
COPY . .
RUN cargo build --release
FROM debian:bullseye-slim
COPY --from=builder /app/target/release/my_rust_app /usr/local/bin/
CMD ["my_rust_app"]