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 steps: - uses: actions/checkout@v4 - uses: otymko/setup-onescript@v1.4 with: version: 1.9.0 - name: Установить cmdline и asserts run: | opm install cmdline opm install asserts - 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_ChatID }} \ --text "Тестовое сообщение" - name: Выполнить ОтправитьКартинку if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьКартинку \ --token ${{ env.json_Telegram_Token }} \ --chat ${{ env.json_Telegram_ChatID }} \ --text "Тестовое сообщение" \ --path "${{ env.json_Picture }}" - name: Выполнить ОтправитьВидео if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьВидео \ --token ${{ env.json_Telegram_Token }} \ --chat ${{ env.json_Telegram_ChatID }} \ --text "Тестовое сообщение" \ --path ${{ env.json_Video }} - name: Выполнить ОтправитьГифку if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьГифку \ --token ${{ env.json_Telegram_Token }} \ --chat ${{ env.json_Telegram_ChatID }} \ --text "Тестовое сообщение" \ --path ${{ env.json_GIF }} - name: Выполнить ОтправитьАудио if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьАудио \ --token ${{ env.json_Telegram_Token }} \ --chat ${{ env.json_Telegram_ChatID }} \ --text "Тестовое сообщение" \ --path ${{ env.json_Audio }} - name: Выполнить ОтправитьДокумент if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьДокумент \ --token ${{ env.json_Telegram_Token }} \ --chat ${{ env.json_Telegram_ChatID }} \ --text "Тестовое сообщение" \ --path ${{ env.json_Document }} - 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_ChatID }} \ --text "Тестовое сообщение" \ --path mediagroup.json - name: Выполнить ОтправитьМестоположение if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьМестоположение \ --token ${{ env.json_Telegram_Token }} \ --chat ${{ env.json_Telegram_ChatID }} \ --lat 48.87373649724122 \ --long "48.87373649724122" - name: Выполнить ОтправитьКонтакт if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьКонтакт \ --token ${{ env.json_Telegram_Token }} \ --chat ${{ env.json_Telegram_ChatID }} \ --name Петр \ --surname Петров \ --phone +123456789 - name: Выполнить ОтправитьОпрос if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьОпрос \ --token ${{ env.json_Telegram_Token }} \ --chat ${{ env.json_Telegram_ChatID }} \ --question "Да или нет?" \ --options "['Да', 'Нет', 'Затрудняюсь ответить']" \ --anonymous true - name: Выполнить ПереслатьСообщение if: ${{ cancelled() }} == false run: | ./oint_bin telegram ПереслатьСообщение \ --token ${{ env.json_Telegram_Token }} \ --message ${{ env.json_Telegram_ChannelMessageID }} \ --to ${{ env.json_Telegram_ChatID }} \ --from ${{ env.json_Telegram_ChannelID }} - name: Выполнить Бан if: ${{ cancelled() }} == false run: | ./oint_bin telegram Бан \ --token ${{ env.json_Telegram_Token }} \ --user ${{ env.json_Telegram_ChatID }} \ --chat ${{ env.json_Telegram_ChannelID }} - name: Выполнить Разбан if: ${{ cancelled() }} == false run: | ./oint_bin telegram Разбан \ --token ${{ env.json_Telegram_Token }} \ --user ${{ env.json_Telegram_ChatID }} \ --chat ${{ env.json_Telegram_ChannelID }} - name: Выполнить СоздатьСсылкуПриглашение if: ${{ cancelled() }} == false run: | ./oint_bin telegram СоздатьСсылкуПриглашение \ --token ${{ env.json_Telegram_Token }} \ --name Yo \ --chat ${{ env.json_Telegram_ChannelID }} \ --expire 1 --limit 1 - name: Выполнить ЗакрепитьСообщение if: ${{ cancelled() }} == false run: | ./oint_bin telegram ЗакрепитьСообщение \ --token ${{ env.json_Telegram_Token }} \ --message ${{ env.json_Telegram_ChannelMessageID }} \ --chat ${{ env.json_Telegram_ChannelID }} - name: Выполнить ОткрепитьСообщение if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОткрепитьСообщение \ --token ${{ env.json_Telegram_Token }} \ --message ${{ env.json_Telegram_ChannelMessageID }} \ --chat ${{ env.json_Telegram_ChannelID }} - 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 }} \ 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"