From ac14ee183c96661526d3e2f6c29eb5bc8f703d15 Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Wed, 8 May 2024 14:19:23 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9D=D0=BE=D0=B2=D0=BE=D0=B5=20=D1=84=D0=BE?= =?UTF-8?q?=D1=80=D0=BC=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20?= =?UTF-8?q?wf=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/oint_convert.yml | 2 +- .github/workflows/os/oint_testmaker.os | 141 +++++++++++++++++-------- 2 files changed, 97 insertions(+), 46 deletions(-) diff --git a/.github/workflows/oint_convert.yml b/.github/workflows/oint_convert.yml index 9f2744c196..f27f6a0968 100644 --- a/.github/workflows/oint_convert.yml +++ b/.github/workflows/oint_convert.yml @@ -26,7 +26,7 @@ jobs: run: oscript ./.github/workflows/os/convert.os - name: Обновить Workflow тестирования OInt - run: oscript ./.github/workflows/os/oint_testmaker.os > ./.github/workflows/oint_test.yml + run: oscript ./.github/workflows/os/oint_testmaker.os - uses: stefanzweifel/git-auto-commit-action@v5 with: diff --git a/.github/workflows/os/oint_testmaker.os b/.github/workflows/os/oint_testmaker.os index 752e9cae09..a089d4f56e 100644 --- a/.github/workflows/os/oint_testmaker.os +++ b/.github/workflows/os/oint_testmaker.os @@ -3,16 +3,57 @@ Перем СоответствияПараметровЗначениям; Перем СоответствияПараметровПредобработкам; Перем СписокРабот; +Перем ТекущийДокумент; +Перем ПутьКФайлам; Процедура ПриСозданииОбъекта() + ВлияющиеБиблиотеки = Новый Соответствие(); + ВлияющиеБиблиотеки.Вставить("Twitter", Истина); + + МассивВлияющих = Новый Массив; + + Для Каждого Библиотека Из ВлияющиеБиблиотеки Цикл + МассивВлияющих.Вставить(Библиотека.Ключ); + КонецЦикла; + СписокРабот = ""; ТаблицаТестов = OPI_ПолучениеДанныхТестов.ПолучитьТаблицуТестов(); СписокБиблиотек = OPI_ПолучениеДанныхТестов.ПолучитьСоответствиеРазделовТестирования(); + ПутьКФайлам = "./.github/workflows/"; + + + ТекущийДокумент = Новый ТекстовыйДокумент(); СообщитьНачалоФайлаПроцесса(); СформироватьЗапуск(ТаблицаТестов, СписокБиблиотек); - СообщитьОкончаниеФайлаПроцесса(); + СообщитьОкончаниеФайлаПроцесса(МассивВлияющих); + + ТекущийДокумент.Записать(ПутьКФайлам + "oint_test_full.yml"); + + Для Каждого ТекущаяБиблиотека Из СписокБиблиотек Цикл + + ТекущийДокумент = Новый ТекстовыйДокумент(); + Библиотека = ТекущаяБиблиотека.Ключ; + СообщитьНачалоФайлаПроцесса("Тестирование " + Библиотека); + + СписокОдной = Новый Соответствие(); + Зависимости = СписокБиблиотек.Получить(Библиотека); + СписокОдной.Вставить(Библиотека, Зависимости); + + СформироватьЗапуск(ТаблицаТестов, СписокОдной); + + Влияет = ВлияющиеБиблиотеки.Получить(Библиотека); + + Если ЗначениеЗаполнено(Влияет) Тогда + СообщитьОкончаниеФайлаПроцесса(Библиотека); + Иначе + СообщитьОкончаниеФайлаПроцесса(); + КонецЕсли; + + ТекущийДокумент.Записать(ПутьКФайлам + "oint_test_" + Библиотека + ".yml"); + + КонецЦикла; КонецПроцедуры @@ -77,17 +118,17 @@ КонецЦикла; ДополнитьТекстРаботы(Раздел, ТекстРаботы); - Сообщить(ТекстРаботы); + ТекущийДокумент.ДобавитьСтроку(ТекстРаботы); КонецЦикла; КонецПроцедуры -Процедура СообщитьНачалоФайлаПроцесса() +Процедура СообщитьНачалоФайлаПроцесса(Знач ИмяРаботы = "Полное тестирование") - Сообщить( + ТекущийДокумент.ДобавитьСтроку( " - |name: OINT | Сборка и тестирование + |name: OINT | " + ИмяРаботы + " | |# Controls when the workflow will run |on: @@ -140,47 +181,57 @@ КонецПроцедуры -Процедура СообщитьОкончаниеФайлаПроцесса() +Процедура СообщитьОкончаниеФайлаПроцесса(Знач СписокВлияний = "") - Сообщить(" - | Encode: - | runs-on: ubuntu-latest - | needs: Testing-Twitter - | if: ${{ always() }} - | permissions: - | contents: write - | - | steps: - | - | - uses: actions/checkout@v2 - | - | - name: Обновить данные в репозитории - | run: git pull https://github.com/Bayselonarrend/OpenIntegrations - | - | - name: Получить тестовые данные из кэша - | uses: actions/cache/restore@v3 - | with: - | key: test-data_new - | path: ./data.json - | - | - name: Зашифровать данные обратно - | continue-on-error: false - | - | run: | - | rm -f ./data.json.gpg - | gpg --batch --symmetric --cipher-algo AES256 --passphrase=""$ENC_JSON"" data.json - | rm -f ./data.json - | env: - | ENC_JSON: ${{ secrets.ENC_JSON }} - | - | - name: Записать данные - | uses: stefanzweifel/git-auto-commit-action@v5 - | with: - | commit_user_name: Vitaly the Alpaca (bot) - | commit_user_email: vitaly.the.alpaca@gmail.com - | commit_author: Vitaly the Alpaca - | commit_message: Обновление зашифрованных данных по результатам тестов (workflow) - | + Если ЗначениеЗаполнено(СписокВлияний) Тогда + + Если ТипЗнч(СписокВлияний) = Тип("Массив") Тогда + СписокВлияний = СтрСоединить(СписокВлияний, ","); + КонецЕсли; + + ТекущийДокумент.ДобавитьСтроку(" + | Encode: + | runs-on: ubuntu-latest + | needs: [" + СписокВлияний + "] + | if: ${{ always() }} + | permissions: + | contents: write + | + | steps: + | + | - uses: actions/checkout@v2 + | + | - name: Обновить данные в репозитории + | run: git pull https://github.com/Bayselonarrend/OpenIntegrations + | + | - name: Получить тестовые данные из кэша + | uses: actions/cache/restore@v3 + | with: + | key: test-data_new + | path: ./data.json + | + | - name: Зашифровать данные обратно + | continue-on-error: false + | + | run: | + | rm -f ./data.json.gpg + | gpg --batch --symmetric --cipher-algo AES256 --passphrase=""$ENC_JSON"" data.json + | rm -f ./data.json + | env: + | ENC_JSON: ${{ secrets.ENC_JSON }} + | + | - name: Записать данные + | uses: stefanzweifel/git-auto-commit-action@v5 + | with: + | commit_user_name: Vitaly the Alpaca (bot) + | commit_user_email: vitaly.the.alpaca@gmail.com + | commit_author: Vitaly the Alpaca + | commit_message: Обновление зашифрованных данных по результатам тестов (workflow) + |"); + + КонецЕсли; + + ТекущийДокумент.ДобавитьСтроку(" | | Clear-Cache: | runs-on: ubuntu-latest