You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

59 lines
1.7 KiB

name: Build Vaultwarden for macOS M4 (ARM64)
on:
push:
branches: [ main ]
workflow_dispatch:
jobs:
build:
runs-on: macos-latest
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 pkg-config
# 获取 brew 安装路径的动态变量
MYSQL_PATH=$(brew --prefix mysql-client)
OPENSSL_PATH=$(brew --prefix openssl)
# 设置 MySQL 相关的环境变量,让 mysqlclient-sys 能找到库
echo "MYSQLCLIENT_LIB_DIR=$MYSQL_PATH/lib" >> $GITHUB_ENV
echo "MYSQLCLIENT_VERSION=8.0" >> $GITHUB_ENV # 这里的版本号通常跟随主版本
# 将 mysql_config 加入 PATH,这是许多库寻找 mysql 配置的备选方案
echo "$MYSQL_PATH/bin" >> $GITHUB_PATH
# 设置 OpenSSL 环境变量
echo "OPENSSL_ROOT_DIR=$OPENSSL_PATH" >> $GITHUB_ENV
- name: Rust Cache
uses: Swatinem/rust-cache@v2
- name: Build Vaultwarden
run: |
# 显式指定 target 并开启 features
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/
- name: Upload Binary
uses: actions/upload-artifact@v4
with:
name: vaultwarden-macos-m4
path: ./output/vaultwarden