Skip to content

made is so I can fire off workflows at will for the gituploader #372

made is so I can fire off workflows at will for the gituploader

made is so I can fire off workflows at will for the gituploader #372

name: Auto Debug and Upload
on: push
jobs:
Python-Lint-Full:
runs-on: [ubuntu-latest]
strategy:
max-parallel: 5
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Add conda to system path
run: |
# $CONDA is an environment variable pointing to the root of the miniconda directory
echo $CONDA/bin >> $GITHUB_PATH
- name: Install dependencies
run: |
conda install flake8 pylint mypy
pip install bandit prospector requests types-requests types-PyYAML types-colorama types-psutil types-tqdm
pip install -r ./Subsystem-Manager/subsystem-manager-uv/requirements.txt
- name: Lint with all linters
run: |
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
mypy --ignore-missing-imports ./Subsystem-Manager/subsystem-manager-uv/*.py
bandit -r --severity-level high --exit-zero ./Subsystem-Manager/subsystem-manager-uv/*.py
- name: Lint with flake8 (Warnings)
run: |
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=120 --statistics
- name: Lint with flake8 (Recommendations)
run: |
flake8 . --count --exit-zero --max-complexity=15 --max-line-length=100 --statistics
- name: Lint with flake8 (Best Practices)
run: |
flake8 . --count --exit-zero --max-complexity=20 --max-line-length=80 --statistics
- name: Lint with flake8 (Very Strict)
run: |
flake8 . --count --exit-zero --max-complexity=25 --max-line-length=60 --statistics
- name: Lint with flake8 (Extremely Strict)
run: |
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
flake8 . --count --exit-zero --max-complexity=30 --max-line-length=40 --statistics
Git-Subsystem-Manager:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Update Git Version
run: |
mkdir -p /tmp/artifacts
mkdir -p /tmp/artifacts/subsystem_manager
cp -r ./Subsystem-Manager/subsystem-manager-uv/* /tmp/artifacts/subsystem_manager
- name: 'Upload Artifact'
uses: actions/upload-artifact@v4
with:
name: subsystem-manager-github-latest
path: /tmp/artifacts/*
compression-level: 0
Test-Subsystem-Manager-Raw:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python: ['3.10']
runs-on: ${{ matrix.os }}
needs: Python-Lint-Full
steps:
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Download the Downloader
run: |
curl -k --disable --disable-eprt https://raw.githubusercontent.com/lunamidori5/Midori-AI/master/Webserver/Programs/Downloader/helper_app.py > helper_app.py
- name: Install dependencies
run: |
pip install aiohttp cryptography requests tqdm uv
- name: Midori AI Download Files
run: |
python3 helper_app.py subsystem_manager_git.zip
- name: Unzip Download Files
run: |
unzip subsystem_manager_git.zip
- name: Make EXE file
run: |
uv run pyinstaller --onefile --clean subsystem_manager.py
Test-Subsystem-Manager-Baked:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python: ['3.10']
runs-on: ${{ matrix.os }}
needs: Python-Lint-Full
steps:
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Download Files
run: |
curl -k --disable --disable-eprt -s https://raw.githubusercontent.com/lunamidori5/Midori-AI-Subsystem-Manager/master/midori_ai_manager/subsystem_python_env_setup.py > subsystem_setup.py
- name: Make EXE file
run: |
python subsystem_setup.py
Test-Build-Subsystem-Manager:
needs: Python-Lint-Full
strategy:
matrix:
os: [ubuntu-20.04, windows-latest, macos-latest]
python: ['3.10']
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Update Version Name
run: |
mkdir -p /tmp/artifacts
cp ./Subsystem-Manager/subsystem-manager-uv/midori_program_ver.txt /tmp/artifacts
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python }}
- name: Install Dependencies (UV)
run: |
pip install uv
- name: Build
run: |
cd Subsystem-Manager/subsystem-manager-uv
uv run pyinstaller --onedir --clean --distpath /tmp/artifacts/${{ matrix.os }}/ --add-data midori_program_ver.txt:. subsystem_manager.py
cd ../..
- name: 'Upload Artifact'
uses: actions/upload-artifact@v4
with:
name: subsystem-manager-${{ matrix.os }}
path: /tmp/artifacts/${{ matrix.os }}/*
compression-level: 0
Zip-Tar-All-OS:
needs: [Test-Build-Subsystem-Manager]
container: lunamidori5/linux_model_deb_11:master
runs-on: ubuntu-20.04
steps:
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Fetch Artifacts
uses: actions/download-artifact@v4
- name: Install Dependencies
run: |
mkdir -p /tmp/artifacts
apt-get install -y tree zip
- name: Linux Artifacts
run: |
tar -cvzf model_installer_linux.tar.gz -C subsystem-manager-ubuntu-20.04/subsystem_manager subsystem_manager _internal
cp model_installer_linux.tar.gz /tmp/artifacts/model_installer_linux.tar.gz
- name: Windows Artifacts
run: |
cd subsystem-manager-windows-latest/subsystem_manager
zip -r ../../model_installer_windows.zip subsystem_manager.exe _internal
cd ../../
cp model_installer_windows.zip /tmp/artifacts/model_installer_windows.zip
- name: Mac Artifacts
run: |
cd subsystem-manager-macos-latest/subsystem_manager
zip -r ../../model_installer_mac.zip subsystem_manager _internal
cd ../../
cp model_installer_mac.zip /tmp/artifacts/model_installer_mac.zip
- name: Github Artifacts
run: |
cd subsystem-manager-github-latest/subsystem_manager
zip -r ../../subsystem_manager_git.zip *
cd ../../
cp subsystem_manager_git.zip /tmp/artifacts/subsystem_manager_git.zip
- name: View Artifacts
run: |
tree > /tmp/artifacts/tree.log
- name: 'Upload Artifact'
uses: actions/upload-artifact@v4
with:
name: everything
path: /tmp/artifacts/*
compression-level: 0