# # Copyright © <2024> # This file is part of AUTO_MAA. # AUTO_MAA is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published # by the Free Software Foundation, either version 3 of the License, # or (at your option) any later version. # AUTO_MAA is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty # of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See # the GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with AUTO_MAA. If not, see . # DLmaster_361@163.com 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: - name: Checkout code uses: actions/checkout@v4 - name: Set up Python 3.12 uses: actions/setup-python@v5 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: Read version id: read_version run: | $VERSION=(Get-Content -Path "更新说明.txt" -TotalCount 1).Trim() echo "::set-output name=version::$VERSION" - name: Upload Artifact uses: actions/upload-artifact@v4 with: name: AUTO_MAA_${{ steps.read_version.outputs.version }} 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: 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="$(head -n 1 更新说明.txt)" TAGNAME="$(head -n 1 更新说明.txt)" NOTES_MAIN="$(tail -n +2 更新说明.txt)" NOTES_TAIL="\`\`\`本release通过GitHub Actions自动构建\`\`\`" NOTES="$NOTES_MAIN\n\n$NOTES_TAIL" gh release create "$TAGNAME" --target "main" --title "$NAME" --notes "$NOTES" --artifact artifacts/*.{zip,tar.xz} env: GITHUB_TOKEN: ${{ secrets.WORKFLOW_TOKEN }}