From 41de29518a0df0e06cd172fbfffc3258dc1a82a7 Mon Sep 17 00:00:00 2001 From: YAO GUANG HONG Date: Wed, 1 Apr 2026 00:37:16 +0800 Subject: [PATCH] Create build-macos-m4.yml --- .github/workflows/build-macos-m4.yml | 49 ++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 .github/workflows/build-macos-m4.yml diff --git a/.github/workflows/build-macos-m4.yml b/.github/workflows/build-macos-m4.yml new file mode 100644 index 00000000..5d96432a --- /dev/null +++ b/.github/workflows/build-macos-m4.yml @@ -0,0 +1,49 @@ +name: Build Vaultwarden for macOS M4 (ARM64) + +on: + push: + branches: [ main ] + workflow_dispatch: # 允许手动触发 + +jobs: + build: + runs-on: macos-latest # 使用 GitHub 提供的 Apple Silicon 运行器 + + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + with: + targets: aarch64-apple-darwin + + - name: Install Dependencies + run: | + brew install openssl pkg-config + # 设置 OpenSSL 环境变量,这是编译 Rust 网络应用的关键 + echo "OPENSSL_ROOT_DIR=$(brew --prefix openssl)" >> $GITHUB_ENV + echo "OPENSSL_LIB_DIR=$(brew --prefix openssl)/lib" >> $GITHUB_ENV + echo "OPENSSL_INCLUDE_DIR=$(brew --prefix openssl)/include" >> $GITHUB_ENV + + - name: Rust Cache + uses: Swatinem/rust-cache@v2 + + - name: Build Vaultwarden + run: | + # 开启所有必要的 features,例如 sqlite/mysql/postgresql + # --release 模式生成优化后的二进制文件 + cargo build --release --target aarch64-apple-darwin --features sqlite,mysql,postgresql + + - name: Prepare Artifact + run: | + mkdir -p output + cp target/aarch64-apple-darwin/release/vaultwarden ./output/ + # 复制 web-vault (如果你的仓库里没有集成,可能需要单独处理前端) + # 注意:Vaultwarden 运行通常需要 web-vault 静态文件 + + - name: Upload Binary + uses: actions/upload-artifact@v4 + with: + name: vaultwarden-macos-m4 + path: ./output/vaultwarden