CLI | Сборка и тестирование #83
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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/[email protected] | |
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: [email protected] | |
commit_author: Vitaly the Alpaca <[email protected]> | |
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/[email protected] | |
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" |