name: Build Vaultwarden # name: Build and Release Vaultwarden Full Package (macOS M4) on: push: tags: - 'v*' # 当推送 v1.0.0 等标签时触发 workflow_dispatch: # 支持手动点击运行 jobs: build: runs-on: macos-latest permissions: contents: write 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 mysql-client libpq pkg-config { echo "OPENSSL_ROOT_DIR=$(brew --prefix openssl)" echo "MYSQLCLIENT_LIB_DIR=$(brew --prefix mysql-client)/lib" echo "MYSQLCLIENT_VERSION=8.0" echo "LIBRARY_PATH=$(brew --prefix libpq)/lib" echo "PKG_CONFIG_PATH=$(brew --prefix libpq)/lib/pkgconfig" echo "LIBSQLITE3_SYS_BUNDLED=1" } >> $GITHUB_ENV echo "$(brew --prefix mysql-client)/bin" >> $GITHUB_PATH echo "$(brew --prefix libpq)/bin" >> $GITHUB_PATH - name: Rust Cache uses: Swatinem/rust-cache@v2 - name: Build Vaultwarden Backend run: | cargo build --release \ --target aarch64-apple-darwin \ --features sqlite,mysql,postgresql - name: Prepare Full Package (Backend + Frontend) run: | # 1. 创建打包目录 mkdir -p vaultwarden-macos-m4 # 2. 复制二进制文件 cp target/aarch64-apple-darwin/release/vaultwarden ./vaultwarden-macos-m4/ # 3. 下载并解压最新的 Web Vault (前端界面) # 使用 GitHub API 获取最新版下载链接 WEB_VAULT_URL=$(curl -s https://api.github.com/repos/dani-garcia/bw_web_builds/releases/latest | grep "browser_download_url.*tar.gz" | cut -d '"' -f 4) echo "Downloading Web Vault from: $WEB_VAULT_URL" curl -L "$WEB_VAULT_URL" -o web-vault.tar.gz tar -xzf web-vault.tar.gz -C ./vaultwarden-macos-m4/ rm web-vault.tar.gz # 4. 准备默认环境变量模板 cat < ./vaultwarden-macos-m4/.env # Vaultwarden Configuration DOMAIN=http://localhost:8080 SIGNUPS_ALLOWED=true WEB_VAULT_ENABLED=true WEB_VAULT_FOLDER=web-vault DATABASE_URL=data/db.sqlite3 IP_HEADER=X-Real-IP EOF # 5. 打包成 ZIP zip -r vaultwarden-macos-m4-full.zip vaultwarden-macos-m4/ - name: Create GitHub Release uses: softprops/action-gh-release@v2 if: startsWith(github.ref, 'refs/tags/') with: files: vaultwarden-macos-m4-full.zip body: | ## Vaultwarden for macOS (Apple Silicon M1/M2/M3/M4) 此版本包含: - **Vaultwarden Binary**: 针对 `aarch64-apple-darwin` 编译 - **Web Vault**: 自动集成的最新前端界面 - **Database Support**: 支持 SQLite (内置), MySQL, PostgreSQL **使用说明:** 1. 下载