Files
AUTO-MAS-test/.github/workflows/python-app.yml
2024-09-06 16:26:36 +08:00

100 lines
3.7 KiB
YAML

# 依照 MIT 协议,在此注明:本段代码改写自 BtbN/FFmpeg-Builds
name: Build AUTO_MAA
on:
push:
branches: [ "main" ]
paths-ignore:
- '**.md'
- 'LICENSE'
pull_request:
branches: [ "main" ]
permissions:
contents: read
jobs:
pre_check:
name: Pre Checks
runs-on: ubuntu-latest
steps:
- name: Repo Check
run: |
if [[ "$GITHUB_REPOSITORY" != "DLmaster361/AUTO_MAA" ]]; then
echo "When forking this repository to make your own builds, you have to adjust this check."
exit 1
fi
exit 0
build_AUTO_MAA:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v3
with:
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8 pytest
pip install -r requirements.txt
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
- name: Built with pyinstaller
run: |
pyinstaller -F --version-file res/info.txt -w --icon=res/AUTO_MAA.ico AUTO_MAA.py
- name: Extract version number
id: extract_version_number
run: |
python -c "import re; content = open('res/info.txt', 'r', encoding='utf-8').read(); match = re.search(r\"StringStruct\\(\'ProductVersion\', \'(.*?)\'\\)\", content,);\nif match:\n\tversion_number = match.group(1);print(f'::set-output name=version_number::{version_number}')"
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: AUTO_MAA_${{ steps.extract_version_number.outputs.version_number }}
path: |
data/**/*
gui/**/*
res/**/*
AUTO_MAA.py
dist/AUTO_MAA.exe
requirements.txt
README.md
LICENSE
更新说明.txt
publish_release:
name: Publish release
needs: build_AUTO_MAA
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Extract version number
id: extract_version_number
run: |
python -c "import re; content = open('res/info.txt', 'r', encoding='utf-8').read(); match = re.search(r\"StringStruct\\(\'ProductVersion\', \'(.*?)\'\\)\", content,);\nif match:\n\tversion_number = match.group(1);print(f'::set-output name=version_number::{version_number}')"
- name: Read release content
id: read_release_content
run: |
python -c "with open('更新说明.txt', 'r', encoding='utf-8') as f:\n\trelease_content = f.read(); print(f'::set-output name=release_content::{release_content}')"
- name: Download artifacts
uses: actions/download-artifact@v4
with:
pattern: AUTO_MAA_*
merge-multiple: true
path: artifacts
- name: Create release
id: create_release
run: |
set -xe
shopt -s nullglob
NAME="${{ steps.extract_version_number.outputs.version_number }}"
TAGNAME="${{ steps.extract_version_number.outputs.version_number }}"
CONTENT="${{ steps.read_release_content.outputs.release_content }}"
gh release create "$TAGNAME" --target "main" --title "$NAME" --description "$CONTENT" --artifact artifacts/*.{zip,tar.xz}
env:
GITHUB_TOKEN: ${{ secrets.WORKFLOW_TOKEN }}