Skip to content

install

install #88

Workflow file for this run

name: install
on:
push:
tags:
- "v*"
branches:
- "**"
paths:
- ".github/workflows/install.yml"
- "assets/**"
- "**.py"
pull_request:
branches:
- "**"
paths:
- ".github/workflows/install.yml"
- "assets/**"
- "**.py"
workflow_dispatch:
jobs:
meta:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- id: set_tag
run: |
is_release=${{ startsWith(github.ref, 'refs/tags/v') }}
tag=$(git describe --tags --match "v*" ${{ github.ref }} || true)
if [[ $tag != v* ]]; then
tag=$(curl -sX GET "https://api.github.com/repos/${{ github.repository }}/releases/latest" --header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' | awk '/tag_name/{print $4}' FS='["]')
if [[ $tag != v* ]]; then
tag="v0.0.0"
fi
tag=$(date "+$tag-%y%m%d-$(git rev-parse --short HEAD)")
fi
if ! $($is_release) ; then
prefix=${tag%-*-*}
suffix=${tag#$prefix-}
tag="$prefix-ci.$suffix"
fi
echo tag=$tag | tee -a $GITHUB_OUTPUT
echo is_release=$is_release | tee -a $GITHUB_OUTPUT
outputs:
tag: ${{ steps.set_tag.outputs.tag }}
is_release: ${{ steps.set_tag.outputs.is_release }}
update:
needs: meta
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: update
shell: bash
run: |
mkdir -p ./update
rsync -av --exclude='MaaCommonAssets' ./assets/ ./update/
- uses: actions/upload-artifact@v4
with:
name: update
path: "update"
gui:
needs: meta
runs-on: ubuntu-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Download Latest MFAWPF
uses: robinraju/release-downloader@v1
with:
repository: shanchuan001/MFAWPF
filename: MFAWPF*
latest: true
out-file-path: gui
extract: true
- name: gui resources
shell: bash
run: |
rm -f ./gui/*.zip
cp -r ./assets/resource/* ./gui/Resource/
jq --arg version_name "MET" --arg url "https://github.com/shanchuan001/MET" --arg version ${{ needs.meta.outputs.tag }} '. + {"name": $version_name, "url": $url,"version": $version}' ./assets/interface.json > ./gui/interface.json
- uses: actions/upload-artifact@v4
with:
name: MET-win-x86_64-with-gui
path: "gui"
windows:
needs: meta
runs-on: windows-latest
strategy:
matrix:
arch: [aarch64, x86_64]
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Download MaaFramework
uses: robinraju/release-downloader@v1
with:
repository: MaaXYZ/MaaFramework
fileName: "MAA-win-${{ matrix.arch }}*"
latest: true
out-file-path: "deps"
extract: true
- name: Install
shell: bash
run: |
python ./install.py ${{ needs.meta.outputs.tag }}
- uses: actions/upload-artifact@v4
with:
name: MET-win-${{ matrix.arch }}
path: "install"
ubuntu:
needs: meta
runs-on: ubuntu-latest
strategy:
matrix:
arch: [aarch64, x86_64]
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Download MaaFramework
uses: robinraju/release-downloader@v1
with:
repository: MaaXYZ/MaaFramework
fileName: "MAA-linux-${{ matrix.arch }}*"
latest: true
out-file-path: "deps"
extract: true
- name: Install
shell: bash
run: |
python ./install.py ${{ needs.meta.outputs.tag }}
- uses: actions/upload-artifact@v4
with:
name: MET-linux-${{ matrix.arch }}
path: "install"
macos:
needs: meta
runs-on: macos-latest
strategy:
matrix:
arch: [aarch64, x86_64]
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Download MaaFramework
uses: robinraju/release-downloader@v1
with:
repository: MaaXYZ/MaaFramework
fileName: "MAA-macos-${{ matrix.arch }}*"
latest: true
out-file-path: "deps"
extract: true
- name: Install
shell: bash
run: |
python ./install.py ${{ needs.meta.outputs.tag }}
- uses: actions/upload-artifact@v4
with:
name: MET-macos-${{ matrix.arch }}
path: "install"
android:
needs: meta
runs-on: macos-latest
strategy:
matrix:
arch: [aarch64, x86_64]
fail-fast: false
steps:
- uses: actions/checkout@v4
with:
submodules: true
- name: Download MaaFramework
uses: robinraju/release-downloader@v1
with:
repository: MaaXYZ/MaaFramework
fileName: "MAA-android-${{ matrix.arch }}*"
latest: true
out-file-path: "deps"
extract: true
- name: Install
shell: bash
run: |
python ./install.py ${{ needs.meta.outputs.tag }}
- uses: actions/upload-artifact@v4
with:
name: MET-android-${{ matrix.arch }}
path: "install"
release:
if: ${{ needs.meta.outputs.is_release == 'true' }}
needs: [meta, windows, ubuntu, macos, android]
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
path: assets
- run: |
cd assets
for f in *; do
(cd $f && zip -r ../$f-${{ needs.meta.outputs.tag }}.zip .)
done
- uses: softprops/action-gh-release@v2
with:
files: assets/*
tag_name: ${{ needs.meta.outputs.tag }}