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 }} --url ${{ env.json_Telegram_URL }} - name: Выполнить ОтправитьТекстовоеСообщение if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьТекстовоеСообщение \ --token ${{ env.json_Telegram_Token }} \ --id ${{ env.json_Telegram_ChatID }} \ --text "Тестовое сообщение" - name: Выполнить ОтправитьКартинку if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьКартинку \ --token ${{ env.json_Telegram_Token }} \ --id ${{ env.json_Telegram_ChatID }} \ --text "Тестовое сообщение" \ --path "${{ env.json_Picture }}" - name: Выполнить ОтправитьВидео if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьВидео \ --token ${{ env.json_Telegram_Token }} \ --id ${{ env.json_Telegram_ChatID }} \ --text "Тестовое сообщение" \ --path ${{ env.json_Video }} - name: Выполнить ОтправитьГифку if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьГифку \ --token ${{ env.json_Telegram_Token }} \ --id ${{ env.json_Telegram_ChatID }} \ --text "Тестовое сообщение" \ --path ${{ env.json_GIF }} - name: Выполнить ОтправитьАудио if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьАудио \ --token ${{ env.json_Telegram_Token }} \ --id ${{ env.json_Telegram_ChatID }} \ --text "Тестовое сообщение" \ --path ${{ env.json_Audio }} - name: Выполнить ОтправитьДокумент if: ${{ cancelled() }} == false run: | ./oint_bin telegram ОтправитьДокумент \ --token ${{ env.json_Telegram_Token }} \ --id ${{ 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 }} \ --id ${{ env.json_Telegram_ChatID }} \ --text "Тестовое сообщение" \ --path mediagroup.json 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"