diff --git a/.github/workflows/os/cli_testmaker.os b/.github/workflows/os/cli_testmaker.os index 42f1f2dde2..dbc85e63b6 100644 --- a/.github/workflows/os/cli_testmaker.os +++ b/.github/workflows/os/cli_testmaker.os @@ -4,9 +4,14 @@ Процедура ПриСозданииОбъекта() + СоответствияПараметровЗначениям = Новый Соответствие(); ТаблицаПараметров = СоставБиблиотеки.ПолучитьСостав(); ДобавитьСоответствияTelegram(); + ДобавитьСоответствияОбщие(); + + СформироватьЗапуск(ТаблицаПараметров); + КонецПроцедуры Процедура ДобавитьСоответствияTelegram() @@ -32,9 +37,9 @@ СоответствиеПЗ.Вставить("topic" , "${{ env.json_Telegram_TopicID }}"); СоответствиеПЗ.Вставить("buttons" , "['Кнопка1','Кнопка2','Кнопка3']"); СоответствиеПЗ.Вставить("under" , "true"); - СоответствиеПЗ.Вставить("column" , "false") - + СоответствиеПЗ.Вставить("column" , "false"); + СоответствияПараметровЗначениям.Вставить("telegram", СоответствиеПЗ); КонецПроцедуры @@ -54,7 +59,93 @@ СоответствиеПЗ.Вставить("surname", "Петров"); СоответствиеПЗ.Вставить("phone" , "+123456789"); + СоответствияПараметровЗначениям.Вставить("Общие", СоответствиеПЗ); КонецПроцедуры -ПриСозданииОбъекта(); \ No newline at end of file +Процедура СформироватьЗапуск(Знач ТаблицаПараметров) + + Для Каждого Вариант Из СоответствияПараметровЗначениям Цикл + + Библиотека = Вариант.Ключ; + Если Библиотека = "Общие" Тогда + Продолжить; + КонецЕсли; + + ТекстРаботы = " + | Testing-" + Библиотека + ": + | runs-on: ubuntu-latest + | needs: [Decode, Build] + | steps: + | + | - name: Получить тестовые данные из кэша + | uses: actions/cache/restore@v3 + | with: + | path: ./data.json + | key: test-data + | + | - name: Скачать артефакт с исполняемым файлом + | uses: actions/download-artifact@v4 + | with: + | name: oint + | + | - name: JSON в переменные + | uses: rgarcia-phi/json-to-variables@v1.1.0 + | with: + | filename: 'data.json' + | masked: true + | + | - name: chmod для OInt + | run: chmod +x ./oint_bin + | + |"; + + Отбор = Новый Структура("Библиотека", Библиотека); + СтрокиБиблиотеки = ТаблицаПараметров.НайтиСтроки(Отбор); + ТекущийМетод = ""; + + Для Каждого СтрокаПараметра Из СтрокиБиблиотеки Цикл + + Если ТекущийМетод <> СтрокаПараметра.Метод Тогда + ТекущийМетод = СтрокаПараметра.Метод; + + ТекстРаботы = ТекстРаботы + Символы.ПС + " + | - name: Выполнить " + ТекущийМетод+ " + | if: ${{ cancelled() }} == false + | run: | + | ./oint_bin " + ТекущийМетод + "\" + Символы.ПС; + + КонецЕсли; + + ТекстРаботы = ТекстРаботы + + " " + + СтрокаПараметра.Параметр + + " """ + + ОпределитьЗначениеПараметра(СтрокаПараметра.Параметр, Библиотека) + + """ \" + + Символы.ПС; + + КонецЦикла; + + Сообщить(ТекстРаботы); + + КонецЦикла; + +КонецПроцедуры + +Функция ОпределитьЗначениеПараметра(Знач Параметр, Знач Библиотека) + + СоответствиеБиблиотеки = СоответствияПараметровЗначениям[Библиотека]; + Значение = СоответствиеБиблиотеки[СтрЗаменить(Параметр, "-", "")]; + + Если Не ЗначениеЗаполнено(Значение) Тогда + + СоответствиеОбщее = СоответствияПараметровЗначениям["Общие"]; + Значение = СоответствиеОбщее[СтрЗаменить(Параметр, "-", "")]; + + КонецЕсли; + + Возврат Значение; + +КонецФункции +