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.
 
 
 
 
 
 

64 lines
2.1 KiB

name: Build and Release Vaultwarden for macOS M4
on:
push:
tags:
- 'v*' # 当推送以 v 开头的 tag 时触发 (如 v1.0.0)
workflow_dispatch: # 允许手动触发测试
jobs:
build:
runs-on: macos-latest
permissions: # 赋予写入 Release 的权限
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
run: |
cargo build --release \
--target aarch64-apple-darwin \
--features sqlite,mysql,postgresql
- name: Prepare Assets
run: |
mkdir -p publish
# 将二进制文件重命名,方便用户识别架构
cp target/aarch64-apple-darwin/release/vaultwarden ./publish/vaultwarden-macos-arm64
# 进入目录进行压缩 (可选,推荐压缩以减小体积)
cd publish && tar -czvf vaultwarden-macos-arm64.tar.gz vaultwarden-macos-arm64
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: ./publish/vaultwarden-macos-arm64.tar.gz
name: Release ${{ github.ref_name }}
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}