YAO GUANG HONG 1 week ago
committed by GitHub
parent
commit
8eb4568e52
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 94
      .github/workflows/build-macos-m4.yml

94
.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 <<EOF > ./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. 下载
Loading…
Cancel
Save