1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-01-26 05:37:27 +02:00

Новое формирование wf тестов

This commit is contained in:
Anton Titovets 2024-05-08 14:19:23 +03:00
parent e06d9b8bc2
commit ac14ee183c
2 changed files with 97 additions and 46 deletions

View File

@ -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:

View File

@ -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 <vitaly.the.alpaca@gmail.com>
| 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 <vitaly.the.alpaca@gmail.com>
| commit_message: Обновление зашифрованных данных по результатам тестов (workflow)
|");
КонецЕсли;
ТекущийДокумент.ДобавитьСтроку("
|
| Clear-Cache:
| runs-on: ubuntu-latest