diff --git a/.github/workflows/build-macos-m4.yml b/.github/workflows/build-macos-m4.yml new file mode 100644 index 00000000..292ce820 --- /dev/null +++ b/.github/workflows/build-macos-m4.yml @@ -0,0 +1,94 @@ +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. 下载 \ No newline at end of file