/
kushpel
/
plugins
Обзор
Документация
Войти
/
kushpel
/
plugins
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
.github/workflows/plugin-checker.yml
174 строки
6 KB
yajrendrag
v3 -> v4
22 окт 2024, 03:22
22 окт 2024, 03:22
3b55b60
Код
Авторство
О чём код?
name: Unmanic Plugin Test and Generate Repo on: push: branches: - '**' - 'pr-**' - '!template' pull_request: branches: - 'official' - 'master' jobs: # Ensure that all plugins contain the required files and that # certain files or directories are not present. plugins-contain-required-files: runs-on: ubuntu-latest name: Plugins contain all required files steps: # Checkout - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 # _____ ____ _ # | ____|_ __ ___ _ _ _ __ ___ | _ \ _ __ ___ ___ ___ _ __ | |_ # | _| | '_ \/ __| | | | '__/ _ \ | |_) | '__/ _ \/ __|/ _ \ '_ \| __| # | |___| | | \__ \ |_| | | | __/ | __/| | | __/\__ \ __/ | | | |_ # |_____|_| |_|___/\__,_|_| \___| |_| |_| \___||___/\___|_| |_|\__| # - name: Check .gitignore in all plugin folders if: success() || failure() run: | success=0 for plugin_dir in source/*; do if [ -d "${plugin_dir}" ]; then # Ensure this directory contains a .gitignore file if [ -e "${plugin_dir}/.gitignore" ]; then echo "PASS - Found .gitignore in plugin '${plugin_dir}'" else echo "FAIL - Missing .gitignore in plugin '${plugin_dir}'" success=1 fi fi done if [ ${success} -gt 0 ]; then exit 1 fi - name: Check info.json in all plugin folders if: success() || failure() run: | success=0 for plugin_dir in source/*; do if [ -d "${plugin_dir}" ]; then # Ensure this directory contains a info.json file if [ -e "${plugin_dir}/info.json" ]; then echo "PASS - Found info.json in plugin '${plugin_dir}'" else echo "FAIL - Missing info.json in plugin '${plugin_dir}'" success=1 fi fi done if [ ${success} -gt 0 ]; then exit 1 fi - name: Check plugin.py in all plugin folders if: success() || failure() run: | success=0 for plugin_dir in source/*; do if [ -d "${plugin_dir}" ]; then # Ensure this directory contains a plugin.py file if [ -e "${plugin_dir}/plugin.py" ]; then echo "PASS - Found plugin.py in plugin '${plugin_dir}'" else echo "FAIL - Missing plugin.py in plugin '${plugin_dir}'" success=1 fi fi done if [ ${success} -gt 0 ]; then exit 1 fi # _____ __ __ _ _ # | ____|_ __ ___ _ _ _ __ ___ | \/ (_)___ ___(_)_ __ __ _ # | _| | '_ \/ __| | | | '__/ _ \ | |\/| | / __/ __| | '_ \ / _` | # | |___| | | \__ \ |_| | | | __/ | | | | \__ \__ \ | | | | (_| | # |_____|_| |_|___/\__,_|_| \___| |_| |_|_|___/___/_|_| |_|\__, | # |___/ - name: Check site-packages in all plugin folders if: success() || failure() run: | success=0 for plugin_dir in source/*; do if [ -d "${plugin_dir}" ]; then # Ensure this directory contains a site-packages file if [ -e "${plugin_dir}/site-packages" ]; then echo "FAIL - Directory 'site-packages' found in plugin '${plugin_dir}'" success=1 else echo "PASS - No 'site-packages' directory found in plugin '${plugin_dir}'" fi fi done if [ ${success} -gt 0 ]; then exit 1 fi - name: Check settings.json in all plugin folders if: success() || failure() run: | success=0 for plugin_dir in source/*; do if [ -d "${plugin_dir}" ]; then # Ensure this directory contains a settings.json file if [ -e "${plugin_dir}/settings.json" ]; then echo "FAIL - Directory 'settings.json' found in plugin '${plugin_dir}'" success=1 else echo "PASS - No 'settings.json' directory found in plugin '${plugin_dir}'" fi fi done if [ ${success} -gt 0 ]; then exit 1 fi # Store success message in success file artifact - name: Set success file on completion of tests if: success() run: echo 'true' > success_file.txt - name: Upload success file if: success() uses: actions/upload-artifact@v4 with: name: success_file path: success_file.txt # Build the plugin repository deploy-plugin-repo: needs: [plugins-contain-required-files] runs-on: ubuntu-latest name: Build the plugin repository steps: # Fetch and read success file - name: Download success file from previous job uses: actions/download-artifact@v4 with: path: ./artifacts/ - name: Read success file id: previous_jobs_success run: | IS_SUCCESS=$(cat ./artifacts/success_file/success_file.txt) echo "IS_SUCCESS=${IS_SUCCESS:?}" >> $GITHUB_OUTPUT rm -rfv ./artifacts # Checkout - name: Checkout if: steps.previous_jobs_success.outputs.IS_SUCCESS == 'true' uses: actions/checkout@v4 with: submodules: recursive # Execute plugin repo gen action - name: Generate and Deploy Unmanic Plugin Repository uses: Unmanic/action.generate-unmanic-plugin-repo@master with: deploy_repo: 'true' github_token: ${{ secrets.GH_TOKEN }}