|
|
|
@ -20,29 +20,35 @@ jobs: |
|
|
|
|
|
|
|
- name: Install Dependencies |
|
|
|
run: | |
|
|
|
# 安装编译所需的依赖 |
|
|
|
brew install openssl mysql-client pkg-config |
|
|
|
# 1. 安装所有必需的数据库客户端和工具 |
|
|
|
brew install openssl mysql-client libpq pkg-config |
|
|
|
|
|
|
|
# 获取 brew 安装路径的动态变量 |
|
|
|
MYSQL_PATH=$(brew --prefix mysql-client) |
|
|
|
# 2. 设置 OpenSSL 路径 |
|
|
|
OPENSSL_PATH=$(brew --prefix openssl) |
|
|
|
|
|
|
|
# 设置 MySQL 相关的环境变量,让 mysqlclient-sys 能找到库 |
|
|
|
echo "MYSQLCLIENT_LIB_DIR=$MYSQL_PATH/lib" >> $GITHUB_ENV |
|
|
|
echo "MYSQLCLIENT_VERSION=8.0" >> $GITHUB_ENV # 这里的版本号通常跟随主版本 |
|
|
|
echo "OPENSSL_ROOT_DIR=$OPENSSL_PATH" >> $GITHUB_ENV |
|
|
|
|
|
|
|
# 将 mysql_config 加入 PATH,这是许多库寻找 mysql 配置的备选方案 |
|
|
|
# 3. 设置 MySQL 路径与环境变量 |
|
|
|
MYSQL_PATH=$(brew --prefix mysql-client) |
|
|
|
echo "MYSQLCLIENT_LIB_DIR=$MYSQL_PATH/lib" >> $GITHUB_ENV |
|
|
|
echo "MYSQLCLIENT_VERSION=8.0" >> $GITHUB_ENV |
|
|
|
echo "$MYSQL_PATH/bin" >> $GITHUB_PATH |
|
|
|
|
|
|
|
# 设置 OpenSSL 环境变量 |
|
|
|
echo "OPENSSL_ROOT_DIR=$OPENSSL_PATH" >> $GITHUB_ENV |
|
|
|
# 4. 设置 PostgreSQL (libpq) 路径 |
|
|
|
# libpq 同样是 keg-only 的,必须手动导出路径给链接器 |
|
|
|
PQ_PATH=$(brew --prefix libpq) |
|
|
|
echo "LDFLAGS=-L$PQ_PATH/lib" >> $GITHUB_ENV |
|
|
|
echo "CPPFLAGS=-I$PQ_PATH/include" >> $GITHUB_ENV |
|
|
|
echo "PKG_CONFIG_PATH=$PQ_PATH/lib/pkgconfig" >> $GITHUB_ENV |
|
|
|
# 这一步很关键:将 libpq 的 bin 目录加入 PATH |
|
|
|
echo "$PQ_PATH/bin" >> $GITHUB_PATH |
|
|
|
# 显式给 Rust 的链接器指定库文件路径 |
|
|
|
echo "LIBRARY_PATH=$PQ_PATH/lib" >> $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 |
|
|
|
|