
name: 2. TEST | Полное тестирование (RU)

# Controls when the workflow will run
on:
  workflow_dispatch:

jobs:

  Decode:
    runs-on: ubuntu-latest
    if: ${{ always() }}
    steps:

      - uses: actions/checkout@v4 

      - name: Расшифровать тестовые данные
        run: gpg --quiet --batch --yes --decrypt --passphrase="$ENC_JSON" --output ./data.json ./data.json.gpg        
        env:
          ENC_JSON: ${{ secrets.ENC_JSON }}
      - name: Записать тестовые данные в кэш
        uses: actions/cache/save@v3
        with:
          key: test-data
          path: ./data.json

  Build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4             
      - uses: otymko/setup-onescript@v1.4
        with:
          version: 1.9.0 

      - name: Установить asserts и 1testrunner
        run: |
          opm install asserts
          opm install 1testrunner

      - name: Установить OInt
        run: |
          cd ./src/ru/OInt
          opm build
          opm install *.ospx    

      - name: Записать артефакт
        uses: actions/upload-artifact@v4
        with:
          name: oint
          path: ./src/ru/OInt/*.ospx


  Testing-Telegram:
    runs-on: ubuntu-latest
    needs: [Decode, Build]
    steps:

      - uses: actions/checkout@v2 
      - uses: otymko/setup-onescript@v1.4
        with:
          version: 1.9.0 
      
      - name: Получить тестовые данные из кэша
        uses: actions/cache/restore@v3
        with:
          key: test-data
          path: ./data.json
      
      - name: Установить asserts и 1testrunner
        run: |
          opm install asserts
          opm install 1testrunner

      - name: Установить OInt
        run: |
          cd ./src/ru/OInt
          opm build
          opm install *.ospx



      - name: Получить информацию бота
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_ПолучитьИнформациюБота"

      - name: Получить обновления
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_ПолучитьОбновления"

      - name: Установить Webhook
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_УстановитьWebhook"

      - name: Отправить текстовое сообщение
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_ОтправитьТекстовоеСообщение"

      - name: Отправить картинку
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_ОтправитьКартинку"

      - name: Отправить видео
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_ОтправитьВидео"

      - name: Отправить аудио
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_ОтправитьАудио"

      - name: Отправить документ
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_ОтправитьДокумент"

      - name: Отправить гифку
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_ОтправитьГифку"

      - name: Отправить медиагруппу
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_ОтправитьМедиагруппу"

      - name: Отправить местоположение
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_ОтправитьМестоположение"

      - name: Отправить контакт
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_ОтправитьКонтакт"

      - name: Отправить опрос
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_ОтправитьОпрос"

      - name: Переслать сообщение
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_ПереслатьСообщение"

      - name: Бан/Разбан
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_БанРазбан"

      - name: Создать ссылку-приглашение
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_СоздатьСсылкуПриглашение"

      - name: Закрепить/Открепить сообщение
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_ЗакрепитьОткрепитьСообщение"

      - name: Получить число участников
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_ПолучитьЧислоУчастников"

      - name: Получить список аватаров форума
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_ПолучитьСписокАватаровФорума"

      - name: Создать/Удалить тему форума
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_СоздатьУдалитьТемуФорума"

      - name: Изменить имя главной темы
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_ИзменитьИмяГлавнойТемы"

      - name: Скрыть/Показать главную тему
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Телеграм_СкрытьПоказатьГлавнуюТему"

      - name: Записать логи
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: logs-Telegram
          path: ./docs/ru/results/Telegram


  Testing-VK:
    runs-on: ubuntu-latest
    needs: [Decode, Build]
    steps:

      - uses: actions/checkout@v2 
      - uses: otymko/setup-onescript@v1.4
        with:
          version: 1.9.0 
      
      - name: Получить тестовые данные из кэша
        uses: actions/cache/restore@v3
        with:
          key: test-data
          path: ./data.json
      
      - name: Установить asserts и 1testrunner
        run: |
          opm install asserts
          opm install 1testrunner

      - name: Установить OInt
        run: |
          cd ./src/ru/OInt
          opm build
          opm install *.ospx



      - name: Создать ссылку получения токена
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьСсылкуТокена"

      - name: Создать/Удалить пост
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьУдалитьПост"

      - name: Создать/Удалить составной пост
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьСоставнойПост"

      - name: Создать опрос
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьОпрос"

      - name: Добавить/Удалить картинку
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СохранитьУдалитьКартинку"

      - name: Создать историю
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьИсторию"

      - name: Действия с обсуждениями
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_МетодыОбсуждений"

      - name: Лайк/Репост/Комментарий
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_ЛайкРепостКоммент"

      - name: Получить статистику
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_ПолучитьСтатистику"

      - name: Получить статистику постов
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_ПолучитьСтатистикуПостов"

      - name: Создать рекламную кампанию
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьРекламнуюКампанию"

      - name: Отправить сообщение
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_ОтправитьСообщение"

      - name: Получить категории товаров
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_ПолучитьКатегорииТоваров"

      - name: Создать товар и подборку
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьТоварПодборку"

      - name: Создать товар со свойствами
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_СоздатьТоварСоСвойствами"

      - name: Получить список товаров
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_ПолучитьСписокТоваров"

      - name: Получить список подборок
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_ПолучитьСписокПодборок"

      - name: Получить список свойств
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_ПолучитьСписокСвойств"

      - name: Получить список заказов
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_ПолучитьСписокЗаказов"

      - name: Загрузить видео
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВК_ЗагрузитьВидео"

      - name: Записать логи
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: logs-VK
          path: ./docs/ru/results/VK


  Testing-Viber:
    runs-on: ubuntu-latest
    needs: [Decode, Build]
    steps:

      - uses: actions/checkout@v2 
      - uses: otymko/setup-onescript@v1.4
        with:
          version: 1.9.0 
      
      - name: Получить тестовые данные из кэша
        uses: actions/cache/restore@v3
        with:
          key: test-data
          path: ./data.json
      
      - name: Установить asserts и 1testrunner
        run: |
          opm install asserts
          opm install 1testrunner

      - name: Установить OInt
        run: |
          cd ./src/ru/OInt
          opm build
          opm install *.ospx



      - name: Получить информацию канала
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Вайбер_ПолучитьИнформациюОКанале"

      - name: Получить данные пользователя
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Вайбер_ПолучитьДанныеПользователя"

      - name: Получить онлайн пользователей
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Вайбер_ПолучитьОнлайнПользователей"

      - name: Отправить текстовое сообщение
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Вайбер_ОтправитьТекстовоеСообщение"

      - name: Отправить картинку
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Вайбер_ОтправитьКартинку"

      - name: Отправить файл
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Вайбер_ОтправитьФайл"

      - name: Отправить контакт
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Вайбер_ОтправитьКонтакт"

      - name: Отправить локацию
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Вайбер_ОтправитьЛокацию"

      - name: Отправить ссылку
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Вайбер_ОтправитьСсылку"

      - name: Записать логи
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: logs-Viber
          path: ./docs/ru/results/Viber


  Testing-Twitter:
    runs-on: ubuntu-latest
    needs: [Decode, Build]
    steps:

      - uses: actions/checkout@v2 
      - uses: otymko/setup-onescript@v1.4
        with:
          version: 1.9.0 
      
      - name: Получить тестовые данные из кэша
        uses: actions/cache/restore@v3
        with:
          key: test-data
          path: ./data.json
      
      - name: Установить asserts и 1testrunner
        run: |
          opm install asserts
          opm install 1testrunner

      - name: Установить OInt
        run: |
          cd ./src/ru/OInt
          opm build
          opm install *.ospx



      - name: Получить ссылку авторизации
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Твиттер_ПолучитьСсылкуАвторизации"

      - name: Обновить токен
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Твиттер_ОбновитьТокен"

      - name: Текстовый твит
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Твиттер_СоздатьТекстовыйТвит"

      - name: Твит с картинкой
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Твиттер_СоздатьТвитСКартинкой"

      - name: Твит с видео
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Твиттер_СоздатьТвитСВидео"

      - name: Твит с гиф
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Твиттер_СоздатьТвитСГиф"

      - name: Твит с опросом
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Твиттер_СоздатьТвитСОпросом"

      - name: Записать логи
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: logs-Twitter
          path: ./docs/ru/results/Twitter


      - name: Записать измененные данные
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: test-data_new
          path: ./data.json


  Testing-YandexDisk:
    runs-on: ubuntu-latest
    needs: [Decode, Build]
    steps:

      - uses: actions/checkout@v2 
      - uses: otymko/setup-onescript@v1.4
        with:
          version: 1.9.0 
      
      - name: Получить тестовые данные из кэша
        uses: actions/cache/restore@v3
        with:
          key: test-data
          path: ./data.json
      
      - name: Установить asserts и 1testrunner
        run: |
          opm install asserts
          opm install 1testrunner

      - name: Установить OInt
        run: |
          cd ./src/ru/OInt
          opm build
          opm install *.ospx



      - name: Получить информацию о диске
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ЯДиск_ПолучитьИнформациюОДиске"

      - name: Создать папку
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ЯДиск_СоздатьПапку"

      - name: Загрузить по URL и получить
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ЯДиск_ЗагрузитьПоАдресуПолучитьОбъект"

      - name: Загрузить/Удалить файл
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ЯДиск_ЗагрузитьУдалитьФайл"

      - name: Создать копию объекта
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ЯДиск_СоздатьКопиюОбъекта"

      - name: Получить ссылку на скачивание
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ЯДиск_ПолучитьСсылкуНаСкачивание"

      - name: Получить список файлов
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ЯДиск_ПолучитьСписокФайлов"

      - name: Переместить объект
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ЯДиск_ПереместитьОбъект"

      - name: Действия с публичными объектами
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ЯДиск_ДействияПубличныхОбъектов"

      - name: Получить список опубликованных
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ЯДиск_ПолучитьСписокОпубликованных"

      - name: Записать логи
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: logs-YandexDisk
          path: ./docs/ru/results/YandexDisk


  Testing-GoogleWorkspace:
    runs-on: ubuntu-latest
    needs: [Decode, Build]
    steps:

      - uses: actions/checkout@v2 
      - uses: otymko/setup-onescript@v1.4
        with:
          version: 1.9.0 
      
      - name: Получить тестовые данные из кэша
        uses: actions/cache/restore@v3
        with:
          key: test-data
          path: ./data.json
      
      - name: Установить asserts и 1testrunner
        run: |
          opm install asserts
          opm install 1testrunner

      - name: Установить OInt
        run: |
          cd ./src/ru/OInt
          opm build
          opm install *.ospx



      - name: Получить ссылку авторизации
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ГВ_ПолучитьСсылкуАвторизации"

      - name: Получить токен
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ГВ_ПолучитьТокен"

      - name: Обновить токен
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ГВ_ОбновитьТокен"

      - name: Записать логи
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: logs-GoogleWorkspace
          path: ./docs/ru/results/GoogleWorkspace


      - name: Записать измененные данные
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: test-data_google
          path: ./data.json


  Testing-GoogleCalendar:
    runs-on: ubuntu-latest
    needs: Testing-GoogleWorkspace
    steps:

      - uses: actions/checkout@v2 
      - uses: otymko/setup-onescript@v1.4
        with:
          version: 1.9.0 
      
      - name: Получить тестовые данные из кэша
        uses: actions/cache/restore@v3
        with:
          key: test-data_google
          path: ./data.json
      
      - name: Установить asserts и 1testrunner
        run: |
          opm install asserts
          opm install 1testrunner

      - name: Установить OInt
        run: |
          cd ./src/ru/OInt
          opm build
          opm install *.ospx



      - name: Получить список календарей
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ГК_ПолучитьСписокКалендарей"

      - name: Создать/Удалить календарь
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ГК_СоздатьУдалитьКалендарь"

      - name: Создать/Удалить событие
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ГК_СоздатьУдалитьСобытие"

      - name: Получить список событий
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ГК_ПолучитьСписокСобытий"

      - name: Записать логи
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: logs-GoogleCalendar
          path: ./docs/ru/results/GoogleCalendar


  Testing-GoogleDrive:
    runs-on: ubuntu-latest
    needs: Testing-GoogleWorkspace
    steps:

      - uses: actions/checkout@v2 
      - uses: otymko/setup-onescript@v1.4
        with:
          version: 1.9.0 
      
      - name: Получить тестовые данные из кэша
        uses: actions/cache/restore@v3
        with:
          key: test-data_google
          path: ./data.json
      
      - name: Установить asserts и 1testrunner
        run: |
          opm install asserts
          opm install 1testrunner

      - name: Установить OInt
        run: |
          cd ./src/ru/OInt
          opm build
          opm install *.ospx



      - name: Получить список каталогов
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ГД_ПолучитьСписокКаталогов"

      - name: Загрузить/Удалить Файл
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ГД_ЗагрузитьУдалитьФайл"

      - name: Создать/Удалить кооментарий
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ГД_СоздатьУдалитьКомментарий"

      - name: Создать/Удалить каталог
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ГД_СоздатьКаталог"

      - name: Записать логи
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: logs-GoogleDrive
          path: ./docs/ru/results/GoogleDrive


  Testing-GoogleSheets:
    runs-on: ubuntu-latest
    needs: Testing-GoogleWorkspace
    steps:

      - uses: actions/checkout@v2 
      - uses: otymko/setup-onescript@v1.4
        with:
          version: 1.9.0 
      
      - name: Получить тестовые данные из кэша
        uses: actions/cache/restore@v3
        with:
          key: test-data_google
          path: ./data.json
      
      - name: Установить asserts и 1testrunner
        run: |
          opm install asserts
          opm install 1testrunner

      - name: Установить OInt
        run: |
          cd ./src/ru/OInt
          opm build
          opm install *.ospx



      - name: Создать таблицу
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ГТ_СоздатьТаблицу"

      - name: Получить таблицу
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ГТ_ПолучитьТаблицу"

      - name: Заполнить/Очистить ячейки
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ГТ_ЗаполнитьОчиститьЯчейки"

      - name: Записать логи
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: logs-GoogleSheets
          path: ./docs/ru/results/GoogleSheets


  Testing-Notion:
    runs-on: ubuntu-latest
    needs: [Decode, Build]
    steps:

      - uses: actions/checkout@v2 
      - uses: otymko/setup-onescript@v1.4
        with:
          version: 1.9.0 
      
      - name: Получить тестовые данные из кэша
        uses: actions/cache/restore@v3
        with:
          key: test-data
          path: ./data.json
      
      - name: Установить asserts и 1testrunner
        run: |
          opm install asserts
          opm install 1testrunner

      - name: Установить OInt
        run: |
          cd ./src/ru/OInt
          opm build
          opm install *.ospx



      - name: Создать страницу
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Ноушн_СоздатьСтраницу"

      - name: Создать/Изменить базу
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Ноушн_СоздатьИзменитьБазу"

      - name: Получить информацию о странице
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Ноушн_ПолучитьИнформациюОСтранице"

      - name: Получить информацию о базе
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Ноушн_ПолучитьИнформациюОБазе"

      - name: Создать страницу в базу
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Ноушн_СоздатьСтраницуВБазу"

      - name: Изменить свойства страницы
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Ноушн_ИзменитьСвойстваСтраницы"

      - name: Создать/Удалить блок
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Ноушн_СоздатьУдалитьБлок"

      - name: Получить пользователей
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Ноушн_ПолучитьПользователей"

      - name: Получить данные пользователя
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Ноушн_ПолучитьДанныеПользователя"

      - name: Записать логи
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: logs-Notion
          path: ./docs/ru/results/Notion


  Testing-Slack:
    runs-on: ubuntu-latest
    needs: [Decode, Build]
    steps:

      - uses: actions/checkout@v2 
      - uses: otymko/setup-onescript@v1.4
        with:
          version: 1.9.0 
      
      - name: Получить тестовые данные из кэша
        uses: actions/cache/restore@v3
        with:
          key: test-data
          path: ./data.json
      
      - name: Установить asserts и 1testrunner
        run: |
          opm install asserts
          opm install 1testrunner

      - name: Установить OInt
        run: |
          cd ./src/ru/OInt
          opm build
          opm install *.ospx



      - name: Получить информацию о боте
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Слак_ПолучитьИнформациюОБоте"

      - name: Получить список пользователей
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Слак_ПолучитьСписокПользователей"

      - name: Получить список областей
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Слак_ПолучитьСписокОбластей"

      - name: Отправить/Удалить сообщение
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Слак_ОтправитьУдалитьСообщение"

      - name: Отправить/Удалить эфемерное
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Слак_ОтправитьУдалитьЭфемерное"

      - name: Получить отложенные сообщения
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Слак_ПолучитьОтложенныеСообщения"

      - name: Создать/Архивировать канал
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Слак_СоздатьАрхивироватьКанал"

      - name: Получить список каналов
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Слак_ПолучитьСписокКаналов"

      - name: Открыть/Закрыть диалог
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Слак_ОткрытьЗакрытьДиалог"

      - name: Получить список файлов
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Слак_ПолучитьСписокФайлов"

      - name: Загрузить/Удалить файл
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Слак_ЗагрузитьУдалитьФайл"

      - name: Получить список внеш. файлов
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Слак_ПолучитьСписокВФ"

      - name: Загрузить/Удалить внеш. файл
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Слак_ЗагрузитьУдалитьВФ"

      - name: Записать логи
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: logs-Slack
          path: ./docs/ru/results/Slack


  Testing-Airtable:
    runs-on: ubuntu-latest
    needs: [Decode, Build]
    steps:

      - uses: actions/checkout@v2 
      - uses: otymko/setup-onescript@v1.4
        with:
          version: 1.9.0 
      
      - name: Получить тестовые данные из кэша
        uses: actions/cache/restore@v3
        with:
          key: test-data
          path: ./data.json
      
      - name: Установить asserts и 1testrunner
        run: |
          opm install asserts
          opm install 1testrunner

      - name: Установить OInt
        run: |
          cd ./src/ru/OInt
          opm build
          opm install *.ospx



      - name: Создать/Изменить базу
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "АТ_СоздатьБазу"

      - name: Создать/Изменить таблицу
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "АТ_СоздатьТаблицу"

      - name: Создать/Изменить поле
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "АТ_СоздатьПоле"

      - name: Создать/Удалить записи
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "АТ_СоздатьУдалитьЗаписи"

      - name: Записать логи
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: logs-Airtable
          path: ./docs/ru/results/Airtable


  Testing-Dropbox:
    runs-on: ubuntu-latest
    needs: [Decode, Build]
    steps:

      - uses: actions/checkout@v2 
      - uses: otymko/setup-onescript@v1.4
        with:
          version: 1.9.0 
      
      - name: Получить тестовые данные из кэша
        uses: actions/cache/restore@v3
        with:
          key: test-data
          path: ./data.json
      
      - name: Установить asserts и 1testrunner
        run: |
          opm install asserts
          opm install 1testrunner

      - name: Установить OInt
        run: |
          cd ./src/ru/OInt
          opm build
          opm install *.ospx



      - name: Получить/Обновить токен
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ДропБокс_ПолучитьОбновитьТокен"

      - name: Загрузить файл
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ДропБокс_ЗагрузитьФайл"

      - name: Загрузить файл по URL
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ДропБокс_ЗагрузитьФайлПоURL"

      - name: Создать каталог
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ДропБокс_СоздатьКаталог"

      - name: Создать/Удалить тег
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ДропБокс_СоздатьУдалитьТег"

      - name: Получить данные аккаунта
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ДропБокс_ПолучитьАккаунт"

      - name: Работа с доступами
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ДропБокс_РаботаСДоступами"

      - name: Получить список файлов папки
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ДропБокс_ПолучитьСписокФайловПапки"

      - name: Записать логи
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: logs-Dropbox
          path: ./docs/ru/results/Dropbox


  Testing-Bitrix24:
    runs-on: ubuntu-latest
    needs: [Decode, Build]
    steps:

      - uses: actions/checkout@v2 
      - uses: otymko/setup-onescript@v1.4
        with:
          version: 1.9.0 
      
      - name: Получить тестовые данные из кэша
        uses: actions/cache/restore@v3
        with:
          key: test-data
          path: ./data.json
      
      - name: Установить asserts и 1testrunner
        run: |
          opm install asserts
          opm install 1testrunner

      - name: Установить OInt
        run: |
          cd ./src/ru/OInt
          opm build
          opm install *.ospx



      - name: Работа с токеном
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_РаботаСТокеном"

      - name: Серверное время
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_СерверноеВремя"

      - name: Работа с новостями
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_РаботаСНовостями"

      - name: Работа с задачами
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_РаботаСЗадачами"

      - name: Работа с комментариями
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_РаботаСКомментариями"

      - name: Работа с диском
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_РаботаСДиском"

      - name: Канбан
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_Канбан"

      - name: Учет рабочего времени
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_УчетРабочегоВремени"

      - name: Работа с чатами
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_РаботаСЧатами"

      - name: Работа с уведомлениями
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_РаботаСУведомлениями"

      - name: Работа с польз. полями задач
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_РаботаСПолямиЗадач"

      - name: Управление подразделениями
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_УправлениеПодразделениями"

      - name: Управление пользователями
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "Б24_УправлениеПользователями"

      - name: Записать логи
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: logs-Bitrix24
          path: ./docs/ru/results/Bitrix24


  Testing-VkTeams:
    runs-on: ubuntu-latest
    needs: [Decode, Build]
    steps:

      - uses: actions/checkout@v2 
      - uses: otymko/setup-onescript@v1.4
        with:
          version: 1.9.0 
      
      - name: Получить тестовые данные из кэша
        uses: actions/cache/restore@v3
        with:
          key: test-data
          path: ./data.json
      
      - name: Установить asserts и 1testrunner
        run: |
          opm install asserts
          opm install 1testrunner

      - name: Установить OInt
        run: |
          cd ./src/ru/OInt
          opm build
          opm install *.ospx



      - name: Отправка сообщений
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВКТ_ОтправкаСообщений"

      - name: Общие методы
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВКТ_ОбщиеМетоды"

      - name: Управление чатами
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ВКТ_УправлениеЧатами"

      - name: Записать логи
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: logs-VkTeams
          path: ./docs/ru/results/VkTeams


  Testing-Ozon:
    runs-on: ubuntu-latest
    needs: [Decode, Build]
    steps:

      - uses: actions/checkout@v2 
      - uses: otymko/setup-onescript@v1.4
        with:
          version: 1.9.0 
      
      - name: Получить тестовые данные из кэша
        uses: actions/cache/restore@v3
        with:
          key: test-data
          path: ./data.json
      
      - name: Установить asserts и 1testrunner
        run: |
          opm install asserts
          opm install 1testrunner

      - name: Установить OInt
        run: |
          cd ./src/ru/OInt
          opm build
          opm install *.ospx



      - name: Атрибуты и характеристики
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ОзонАПИ_АтрибутыИХарактеристики"

      - name: Загрузка и обновление товаров
        if: ${{ cancelled() }} == false
        run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./src/ru/OInt/tests/Modules/internal/OPI_Тесты.os "ОзонАПИ_ЗагрузкаИОбновлениеТоваров"

      - name: Записать логи
        if: ${{ cancelled() }} == false
        uses: actions/cache/save@v3
        with:
          key: logs-Ozon
          path: ./docs/ru/results/Ozon

  Encode:
    runs-on: ubuntu-latest
    needs: [Testing-Telegram,Testing-VK,Testing-Viber,Testing-Twitter,Testing-YandexDisk,Testing-GoogleWorkspace,Testing-GoogleCalendar,Testing-GoogleDrive,Testing-GoogleSheets,Testing-Notion,Testing-Slack,Testing-Airtable,Testing-Dropbox,Testing-Bitrix24,Testing-VkTeams,Testing-Ozon]
    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: Получить логи Telegram
        uses: actions/cache/restore@v3
        with:
          key: logs-Telegram
          path: ./docs/ru/results/Telegram


      - name: Очистка логов Telegram
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Telegram"

      - name: Получить логи VK
        uses: actions/cache/restore@v3
        with:
          key: logs-VK
          path: ./docs/ru/results/VK


      - name: Очистка логов VK
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-VK"

      - name: Получить логи Viber
        uses: actions/cache/restore@v3
        with:
          key: logs-Viber
          path: ./docs/ru/results/Viber


      - name: Очистка логов Viber
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Viber"

      - name: Получить логи Twitter
        uses: actions/cache/restore@v3
        with:
          key: logs-Twitter
          path: ./docs/ru/results/Twitter


      - name: Очистка логов Twitter
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Twitter"

      - name: Получить логи YandexDisk
        uses: actions/cache/restore@v3
        with:
          key: logs-YandexDisk
          path: ./docs/ru/results/YandexDisk


      - name: Очистка логов YandexDisk
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-YandexDisk"

      - name: Получить логи GoogleWorkspace
        uses: actions/cache/restore@v3
        with:
          key: logs-GoogleWorkspace
          path: ./docs/ru/results/GoogleWorkspace


      - name: Очистка логов GoogleWorkspace
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-GoogleWorkspace"

      - name: Получить логи GoogleCalendar
        uses: actions/cache/restore@v3
        with:
          key: logs-GoogleCalendar
          path: ./docs/ru/results/GoogleCalendar


      - name: Очистка логов GoogleCalendar
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-GoogleCalendar"

      - name: Получить логи GoogleDrive
        uses: actions/cache/restore@v3
        with:
          key: logs-GoogleDrive
          path: ./docs/ru/results/GoogleDrive


      - name: Очистка логов GoogleDrive
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-GoogleDrive"

      - name: Получить логи GoogleSheets
        uses: actions/cache/restore@v3
        with:
          key: logs-GoogleSheets
          path: ./docs/ru/results/GoogleSheets


      - name: Очистка логов GoogleSheets
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-GoogleSheets"

      - name: Получить логи Notion
        uses: actions/cache/restore@v3
        with:
          key: logs-Notion
          path: ./docs/ru/results/Notion


      - name: Очистка логов Notion
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Notion"

      - name: Получить логи Slack
        uses: actions/cache/restore@v3
        with:
          key: logs-Slack
          path: ./docs/ru/results/Slack


      - name: Очистка логов Slack
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Slack"

      - name: Получить логи Airtable
        uses: actions/cache/restore@v3
        with:
          key: logs-Airtable
          path: ./docs/ru/results/Airtable


      - name: Очистка логов Airtable
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Airtable"

      - name: Получить логи Dropbox
        uses: actions/cache/restore@v3
        with:
          key: logs-Dropbox
          path: ./docs/ru/results/Dropbox


      - name: Очистка логов Dropbox
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Dropbox"

      - name: Получить логи Bitrix24
        uses: actions/cache/restore@v3
        with:
          key: logs-Bitrix24
          path: ./docs/ru/results/Bitrix24


      - name: Очистка логов Bitrix24
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Bitrix24"

      - name: Получить логи VkTeams
        uses: actions/cache/restore@v3
        with:
          key: logs-VkTeams
          path: ./docs/ru/results/VkTeams


      - name: Очистка логов VkTeams
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-VkTeams"

      - name: Получить логи Ozon
        uses: actions/cache/restore@v3
        with:
          key: logs-Ozon
          path: ./docs/ru/results/Ozon


      - name: Очистка логов Ozon
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=logs-Ozon"


      - 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
    needs: [Testing-Telegram, Testing-VK, Testing-Viber, Testing-Twitter, Testing-YandexDisk, Testing-GoogleWorkspace, Testing-GoogleCalendar, Testing-GoogleDrive, Testing-GoogleSheets, Testing-Notion, Testing-Slack, Testing-Airtable, Testing-Dropbox, Testing-Bitrix24, Testing-VkTeams, Testing-Ozon, Encode]
    if: ${{ always() }}
    steps:
      - name: Очистка основного кэша
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=test-data"

      - name: Очистка кэша Google
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=test-data_google"

      - name: Очистка кэша Twitter
        run: |
          curl -L \
          -X DELETE \
          -H "Accept: application/vnd.github+json" \
          -H "Authorization: Bearer ${{ secrets.TOKEN }}" \
          -H "X-GitHub-Api-Version: 2022-11-28" \
          "https://api.github.com/repos/Bayselonarrend/OpenIntegrations/actions/caches?key=test-data_new"
