Skip to content

Release v1.22.0

Release v1.22.0 #71

Workflow file for this run

name: Release
run-name: Release ${{ github.ref_name }}
permissions:
contents: write
on:
push:
tags:
- "v*.*.*" # maa-framework release
- "sys-v*.*.*" # maa-framework-sys release
jobs:
publish-release:
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Determine release type
id: release-type
shell: bash
run: |
TAG="${{ github.ref_name }}"
if [[ "$TAG" == sys-v* ]]; then
echo "type=sys" >> "$GITHUB_OUTPUT"
echo "version=${TAG#sys-v}" >> "$GITHUB_OUTPUT"
else
echo "type=framework" >> "$GITHUB_OUTPUT"
echo "version=${TAG#v}" >> "$GITHUB_OUTPUT"
fi
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Get latest MaaFramework release tag
id: maa-version
env:
GH_TOKEN: ${{ github.token }}
shell: bash
run: |
MAA_TAG=$(gh release list --repo MaaXYZ/MaaFramework \
--exclude-drafts \
--limit 1 \
--json tagName \
--jq '.[0].tagName')
echo "tag=$MAA_TAG" >> "$GITHUB_OUTPUT"
echo "version=${MAA_TAG#v}" >> "$GITHUB_OUTPUT"
echo "Using MaaFramework $MAA_TAG"
- name: Download MaaFramework SDK from release
env:
GH_TOKEN: ${{ github.token }}
shell: bash
run: |
TAG="${{ steps.maa-version.outputs.tag }}"
mkdir -p asset sdk install
ASSET_NAME=$(gh release view "$TAG" --repo MaaXYZ/MaaFramework --json assets \
--jq '.assets[].name | select(((ascii_downcase | contains("mac")) or (ascii_downcase | contains("osx"))) and ((ascii_downcase | contains("arm64")) or (ascii_downcase | contains("aarch64"))))' \
| head -n 1)
test -n "$ASSET_NAME" || { echo "No macOS arm64 asset found for $TAG"; exit 1; }
gh release download "$TAG" --repo MaaXYZ/MaaFramework --pattern "$ASSET_NAME" --dir asset
FILE=$(find asset -type f | head -n 1)
case "$FILE" in
*.zip) unzip -q "$FILE" -d sdk ;;
*.tar.gz|*.tgz) tar -xzf "$FILE" -C sdk ;;
*.tar.xz) tar -xJf "$FILE" -C sdk ;;
*) echo "Unsupported asset: $FILE"; exit 1 ;;
esac
ROOT=$(find sdk -mindepth 1 -maxdepth 1 -type d | head -n 1)
[ -n "$ROOT" ] || ROOT=sdk
cp -R "$ROOT"/. install/
- name: Cargo Publish maa-framework-sys
if: steps.release-type.outputs.type == 'sys'
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
MAA_SDK_PATH: ${{ github.workspace }}/install
run: cargo publish -p maa-framework-sys --allow-dirty
- name: Cargo Publish maa-framework
if: steps.release-type.outputs.type == 'framework'
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
MAA_SDK_PATH: ${{ github.workspace }}/install
run: cargo publish -p maa-framework --allow-dirty
- name: Install git-cliff
uses: taiki-e/install-action@git-cliff
- name: Generate Changelog
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_REPO: ${{ github.repository }}
run: git-cliff --config .github/cliff.toml --latest --strip header > CHANGELOG.md
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
body_path: CHANGELOG.md
draft: false
prerelease: false