ci: 添加 aether-proxy 多平台自动编译与 README 文档

- 新增 GitHub Actions workflow,推送 proxy-v* tag 自动编译 5 个平台
  (linux-amd64, linux-arm64, macos-amd64, macos-arm64, windows-amd64)
- 编译产物自动发布到 GitHub Releases 并生成 SHA256 校验文件
- 新增 aether-proxy README,包含部署、配置、后台运行等完整说明
This commit is contained in:
fawney19
2026-02-07 12:43:04 +08:00
parent 1180634269
commit 01653efa84
2 changed files with 327 additions and 0 deletions

150
.github/workflows/build-proxy.yml vendored Normal file
View File

@@ -0,0 +1,150 @@
name: Build aether-proxy Binaries
on:
push:
tags: ['proxy-v*']
workflow_dispatch:
permissions:
contents: write
jobs:
build:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- name: linux-amd64
target: x86_64-unknown-linux-gnu
os: ubuntu-latest
use_cross: true
- name: linux-arm64
target: aarch64-unknown-linux-gnu
os: ubuntu-latest
use_cross: true
- name: macos-amd64
target: x86_64-apple-darwin
os: macos-13
use_cross: false
- name: macos-arm64
target: aarch64-apple-darwin
os: macos-latest
use_cross: false
- name: windows-amd64
target: x86_64-pc-windows-msvc
os: windows-latest
use_cross: false
steps:
- uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Rust cache
uses: Swatinem/rust-cache@v2
with:
workspaces: aether-proxy -> target
key: ${{ matrix.target }}
- name: Install cross
if: matrix.use_cross
uses: taiki-e/install-action@cross
- name: Build
working-directory: aether-proxy
shell: bash
run: |
if [ "${{ matrix.use_cross }}" = "true" ]; then
cross build --release --target ${{ matrix.target }}
else
cargo build --release --target ${{ matrix.target }}
fi
- name: Package (Unix)
if: runner.os != 'Windows'
shell: bash
run: |
cd aether-proxy/target/${{ matrix.target }}/release
chmod +x aether-proxy
tar czf ../../../../aether-proxy-${{ matrix.name }}.tar.gz aether-proxy
- name: Package (Windows)
if: runner.os == 'Windows'
shell: bash
run: |
cd aether-proxy/target/${{ matrix.target }}/release
7z a ../../../../aether-proxy-${{ matrix.name }}.zip aether-proxy.exe
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: aether-proxy-${{ matrix.name }}
path: |
aether-proxy-*.tar.gz
aether-proxy-*.zip
if-no-files-found: error
release:
needs: build
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
merge-multiple: true
path: artifacts
- name: Generate checksums
working-directory: artifacts
run: sha256sum aether-proxy-* > SHA256SUMS.txt
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
name: "aether-proxy ${{ github.ref_name }}"
body: |
## aether-proxy ${{ github.ref_name }}
### 下载
| 平台 | 文件 |
|------|------|
| Linux x86_64 | `aether-proxy-linux-amd64.tar.gz` |
| Linux ARM64 | `aether-proxy-linux-arm64.tar.gz` |
| macOS x86_64 (Intel) | `aether-proxy-macos-amd64.tar.gz` |
| macOS ARM64 (Apple Silicon) | `aether-proxy-macos-arm64.tar.gz` |
| Windows x86_64 | `aether-proxy-windows-amd64.zip` |
### 使用
```bash
# Linux/macOS: 解压
tar xzf aether-proxy-<platform>.tar.gz
# Windows: 解压 zip 文件
# 配置环境变量 (或写入 .env 文件)
export AETHER_PROXY_AETHER_URL=https://your-aether.example.com
export AETHER_PROXY_MANAGEMENT_TOKEN=ae_xxx
export AETHER_PROXY_HMAC_KEY=your-hmac-key
# 运行
./aether-proxy
```
### 校验
下载 `SHA256SUMS.txt` 后可验证文件完整性:
```bash
sha256sum -c SHA256SUMS.txt
```
files: |
artifacts/aether-proxy-*
artifacts/SHA256SUMS.txt
fail_on_unmatched_files: true