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 ПолучитьИнформациюБота \ --token "${{ env.json_Telegram_Token }}" \ - name: Выполнить ПолучитьОбновления if: ${{ cancelled() }} == false run: | ./oint_bin ПолучитьОбновления \ --token "${{ env.json_Telegram_Token }}" \ - name: Выполнить УстановитьWebhook if: ${{ cancelled() }} == false run: | ./oint_bin УстановитьWebhook \ --token "${{ env.json_Telegram_Token }}" \ --url "${{ env.json_Telegram_URL }}" \ - name: Выполнить УдалитьWebhook if: ${{ cancelled() }} == false run: | ./oint_bin УдалитьWebhook \ --token "${{ env.json_Telegram_Token }}" \ - name: Выполнить ОтправитьТекстовоеСообщение if: ${{ cancelled() }} == false run: | ./oint_bin ОтправитьТекстовоеСообщение \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --text "Тестовый текст" \ --keyboard "" \ - name: Выполнить ОтправитьКартинку if: ${{ cancelled() }} == false run: | ./oint_bin ОтправитьКартинку \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --text "Тестовый текст" \ --path "" \ --keyboard "" \ - name: Выполнить ОтправитьВидео if: ${{ cancelled() }} == false run: | ./oint_bin ОтправитьВидео \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --text "Тестовый текст" \ --path "" \ --keyboard "" \ - name: Выполнить ОтправитьАудио if: ${{ cancelled() }} == false run: | ./oint_bin ОтправитьАудио \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --text "Тестовый текст" \ --path "" \ --keyboard "" \ - name: Выполнить ОтправитьДокумент if: ${{ cancelled() }} == false run: | ./oint_bin ОтправитьДокумент \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --text "Тестовый текст" \ --path "" \ --keyboard "" \ - name: Выполнить ОтправитьГифку if: ${{ cancelled() }} == false run: | ./oint_bin ОтправитьГифку \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --text "Тестовый текст" \ --path "" \ --keyboard "" \ - name: Выполнить ОтправитьМедиагруппу if: ${{ cancelled() }} == false run: | ./oint_bin ОтправитьМедиагруппу \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --text "Тестовый текст" \ --path "" \ --keyboard "" \ - name: Выполнить ОтправитьМестоположение if: ${{ cancelled() }} == false run: | ./oint_bin ОтправитьМестоположение \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --lat "48.87373649724122" \ --long "48.87373649724122" \ --keyboard "" \ - name: Выполнить ОтправитьКонтакт if: ${{ cancelled() }} == false run: | ./oint_bin ОтправитьКонтакт \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --name "Петр" \ --surname "Петров" \ --phone "+123456789" \ --keyboard "" \ - name: Выполнить ОтправитьОпрос if: ${{ cancelled() }} == false run: | ./oint_bin ОтправитьОпрос \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --question "Да или нет?" \ --options "['Да', 'Нет', 'Затрудняюсь ответить']" \ --anonymous "true" \ - name: Выполнить ПереслатьСообщение if: ${{ cancelled() }} == false run: | ./oint_bin ПереслатьСообщение \ --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 Бан \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --user "${{ env.json_Telegram_ChatID }}" \ - name: Выполнить Разбан if: ${{ cancelled() }} == false run: | ./oint_bin Разбан \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --user "${{ env.json_Telegram_ChatID }}" \ - name: Выполнить СоздатьСсылкуПриглашение if: ${{ cancelled() }} == false run: | ./oint_bin СоздатьСсылкуПриглашение \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --name "Петр" \ --expire "1" \ --limit "1" \ - name: Выполнить ЗакрепитьСообщение if: ${{ cancelled() }} == false run: | ./oint_bin ЗакрепитьСообщение \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --message "${{ env.json_Telegram_ChannelMessageID }}" \ - name: Выполнить ОткрепитьСообщение if: ${{ cancelled() }} == false run: | ./oint_bin ОткрепитьСообщение \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --message "${{ env.json_Telegram_ChannelMessageID }}" \ - name: Выполнить ПолучитьЧислоУчастников if: ${{ cancelled() }} == false run: | ./oint_bin ПолучитьЧислоУчастников \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ - name: Выполнить ПолучитьСписокИконокАватаров if: ${{ cancelled() }} == false run: | ./oint_bin ПолучитьСписокИконокАватаров \ --token "${{ env.json_Telegram_Token }}" \ - name: Выполнить СоздатьТемуФорума if: ${{ cancelled() }} == false run: | ./oint_bin СоздатьТемуФорума \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --name "Петр" \ --icon "5350444672789519765 " \ - name: Выполнить ИзменитьТемуФорума if: ${{ cancelled() }} == false run: | ./oint_bin ИзменитьТемуФорума \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --topic "${{ env.json_Telegram_TopicID }}" \ --name "Петр" \ --icon "5350444672789519765 " \ - name: Выполнить ЗакрытьТемуФорума if: ${{ cancelled() }} == false run: | ./oint_bin ЗакрытьТемуФорума \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --topic "${{ env.json_Telegram_TopicID }}" \ - name: Выполнить ОткрытьТемуФорума if: ${{ cancelled() }} == false run: | ./oint_bin ОткрытьТемуФорума \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --topic "${{ env.json_Telegram_TopicID }}" \ - name: Выполнить УдалитьТемуФорума if: ${{ cancelled() }} == false run: | ./oint_bin УдалитьТемуФорума \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --topic "${{ env.json_Telegram_TopicID }}" \ - name: Выполнить СкрытьГлавнуюТемуФорума if: ${{ cancelled() }} == false run: | ./oint_bin СкрытьГлавнуюТемуФорума \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ - name: Выполнить ПоказатьГлавнуюТемуФорума if: ${{ cancelled() }} == false run: | ./oint_bin ПоказатьГлавнуюТемуФорума \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ - name: Выполнить ИзменитьИмяГлавнойТемыФорума if: ${{ cancelled() }} == false run: | ./oint_bin ИзменитьИмяГлавнойТемыФорума \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --name "Петр" \ - name: Выполнить ОчиститьСписокЗакрепленныхСообщенийТемы if: ${{ cancelled() }} == false run: | ./oint_bin ОчиститьСписокЗакрепленныхСообщенийТемы \ --token "${{ env.json_Telegram_Token }}" \ --chat "${{ env.json_Telegram_ChannelID }}" \ --topic "${{ env.json_Telegram_TopicID }}" \ - name: Выполнить СформироватьКлавиатуруПоМассивуКнопок if: ${{ cancelled() }} == false run: | ./oint_bin СформироватьКлавиатуруПоМассивуКнопок \ --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"