name: Сборка и тестирование OINT CLI on: workflow_dispatch: jobs: Decode: runs-on: ubuntu-latest 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: path: ./data.json key: test-data Build: runs-on: ubuntu-latest permissions: contents: write steps: - uses: actions/checkout@v4 - uses: otymko/setup-onescript@v1.4 with: version: 1.9.0 - name: Установить cmdline, asserts и osparser run: | opm install cmdline opm install asserts opm install osparser - name: Сформировать список методов ОПИ -> CLI run: oscript ./.github/workflows/os/cli_parse.os - name: Записать измененный список методов CLI 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) - name: Собрать и установить OInt run: | cd ./OInt opm build opm install *.ospx - name: Собрать бинарник run: | cd ./cli oscript -make core/Classes/Приложение.os oint_bin - name: Записать артефакт uses: actions/upload-artifact@v4 with: name: oint path: ./cli/oint_bin Testing-telegram: 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 telegram ПолучитьИнформациюБота \ --token "${{ env.json_Telegram_Token }}" \ - name: Выполнить ПолучитьОбновления if: ${{ cancelled() }} == false run: | ./oint_bin telegram ПолучитьОбновления \ --token "${{ env.json_Telegram_Token }}" \ - name: Выполнить УстановитьWebhook if: ${{ cancelled() }} == false run: | ./oint_bin telegram УстановитьWebhook \ --token "${{ env.json_Telegram_Token }}" \ --url "${{ env.json_Telegram_URL }}" \ - name: Выполнить УдалитьWebhook if: ${{ cancelled() }} == false run: | ./oint_bin telegram УдалитьWebhook \ --token "${{ env.json_Telegram_Token }}" \ - name: Выполнить ОтправитьТекстовоеСообщение if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьТекстовоеСообщение \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --text "Тестовый текст" \ --keyboard "" \ - name: Выполнить ОтправитьКартинку if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьКартинку \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --text "Тестовый текст" \ --picture "${{ env.json_Picture }}" \ --keyboard "" \ - name: Выполнить ОтправитьВидео if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьВидео \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --text "Тестовый текст" \ --video "${{ env.json_Video }}" \ --keyboard "" \ - name: Выполнить ОтправитьАудио if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьАудио \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --text "Тестовый текст" \ --audio "${{ env.json_Audio }}" \ --keyboard "" \ - name: Выполнить ОтправитьДокумент if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьДокумент \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --text "Тестовый текст" \ --doc "${{ env.json_Document }}" \ --keyboard "" \ - name: Выполнить ОтправитьГифку if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьГифку \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --text "Тестовый текст" \ --gif "${{ env.json_GIF }}" \ --keyboard "" \ - name: Выполнить ОтправитьМедиагруппу if: ${{ cancelled() }} == false run: | echo " { \"${{ env.json_Picture }}\" : \"photo\", \"${{ env.json_Picture2 }}\" : \"photo\" } " > mediagroup.json ./oint_bin telegram ОтправитьМедиагруппу \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --text "Тестовый текст" \ --media "mediagroup.json" \ --keyboard "" \ - name: Выполнить ОтправитьМестоположение if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьМестоположение \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --lat "48.87373649724122" \ --long "48.87373649724122" \ --keyboard "" \ - name: Выполнить ОтправитьКонтакт if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьКонтакт \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --name "Петр" \ --surname "Петров" \ --phone "+123456789" \ --keyboard "" \ - name: Выполнить ОтправитьОпрос if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьОпрос \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --question "Да или нет?" \ --options "['Да', 'Нет', 'Затрудняюсь ответить']" \ --anonymous "true" \ - name: Выполнить ПереслатьСообщение if: ${{ cancelled() }} == false run: | ./oint_bin telegram ПереслатьСообщение \ --token "${{ env.json_Telegram_Token }}" \ --message "${{ env.json_Telegram_ChannelMessageID }}" \ --from "${{ env.json_Telegram_ChannelID }}" \ --to "${{ env.json_Telegram_ChatID }}" \ - name: Выполнить Бан if: ${{ cancelled() }} == false run: | ./oint_bin telegram Бан \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --user "${{ env.json_Telegram_ChatID }}" \ - name: Выполнить Разбан if: ${{ cancelled() }} == false run: | ./oint_bin telegram Разбан \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --user "${{ env.json_Telegram_ChatID }}" \ - name: Выполнить СоздатьСсылкуПриглашение if: ${{ cancelled() }} == false run: | ./oint_bin telegram СоздатьСсылкуПриглашение \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --title "Тест" \ --expire "1" \ --limit "1" \ - name: Выполнить ЗакрепитьСообщение if: ${{ cancelled() }} == false run: | ./oint_bin telegram ЗакрепитьСообщение \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --message "${{ env.json_Telegram_ChannelMessageID }}" \ - name: Выполнить ОткрепитьСообщение if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОткрепитьСообщение \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --message "${{ env.json_Telegram_ChannelMessageID }}" \ - name: Выполнить ПолучитьЧислоУчастников if: ${{ cancelled() }} == false run: | ./oint_bin telegram ПолучитьЧислоУчастников \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ - name: Выполнить ПолучитьСписокИконокАватаров if: ${{ cancelled() }} == false run: | ./oint_bin telegram ПолучитьСписокИконокАватаров \ --token "${{ env.json_Telegram_Token }}" \ - name: Выполнить СоздатьТемуФорума if: ${{ cancelled() }} == false run: | ./oint_bin telegram СоздатьТемуФорума \ --token "${{ env.json_Telegram_Token }}" \ --forum "${{ env.json_Telegram_ForumID }}" \ --title "Тест" \ --icon "5350444672789519765 " \ - name: Выполнить ИзменитьТемуФорума if: ${{ cancelled() }} == false run: | ./oint_bin telegram ИзменитьТемуФорума \ --token "${{ env.json_Telegram_Token }}" \ --forum "${{ env.json_Telegram_ForumID }}" \ --topic "${{ env.json_Telegram_TopicID }}" \ --title "Тест" \ --icon "5350444672789519765 " \ - name: Выполнить ЗакрытьТемуФорума if: ${{ cancelled() }} == false run: | ./oint_bin telegram ЗакрытьТемуФорума \ --token "${{ env.json_Telegram_Token }}" \ --forum "${{ env.json_Telegram_ForumID }}" \ --topic "${{ env.json_Telegram_TopicID }}" \ - name: Выполнить ОткрытьТемуФорума if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОткрытьТемуФорума \ --token "${{ env.json_Telegram_Token }}" \ --forum "${{ env.json_Telegram_ForumID }}" \ --topic "${{ env.json_Telegram_TopicID }}" \ - name: Выполнить УдалитьТемуФорума if: ${{ cancelled() }} == false run: | ./oint_bin telegram УдалитьТемуФорума \ --token "${{ env.json_Telegram_Token }}" \ --forum "${{ env.json_Telegram_ForumID }}" \ --topic "${{ env.json_Telegram_TopicID }}" \ - name: Выполнить СкрытьГлавнуюТемуФорума if: ${{ cancelled() }} == false run: | ./oint_bin telegram СкрытьГлавнуюТемуФорума \ --token "${{ env.json_Telegram_Token }}" \ --forum "${{ env.json_Telegram_ForumID }}" \ - name: Выполнить ПоказатьГлавнуюТемуФорума if: ${{ cancelled() }} == false run: | ./oint_bin telegram ПоказатьГлавнуюТемуФорума \ --token "${{ env.json_Telegram_Token }}" \ --forum "${{ env.json_Telegram_ForumID }}" \ - name: Выполнить ИзменитьИмяГлавнойТемыФорума if: ${{ cancelled() }} == false run: | ./oint_bin telegram ИзменитьИмяГлавнойТемыФорума \ --token "${{ env.json_Telegram_Token }}" \ --forum "${{ env.json_Telegram_ForumID }}" \ --name "Петр" \ - name: Выполнить ОчиститьСписокЗакрепленныхСообщенийТемы if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОчиститьСписокЗакрепленныхСообщенийТемы \ --token "${{ env.json_Telegram_Token }}" \ --forum "${{ env.json_Telegram_ForumID }}" \ --topic "${{ env.json_Telegram_TopicID }}" \ - name: Выполнить СформироватьКлавиатуруПоМассивуКнопок if: ${{ cancelled() }} == false run: | ./oint_bin telegram СформироватьКлавиатуруПоМассивуКнопок \ --buttons "['Кнопка1','Кнопка2','Кнопка3']" \ --under "true" \ --column "false" \ Clear-Cache: runs-on: ubuntu-latest needs: [Testing-telegram] 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"