В этом руководстве показано, как использовать инструмент интерфейса командной строки (CLI) gactions в распространенных сценариях использования. Информацию о комплексном построении действий см. в документации по сборке диалоговых действий.
Синхронизация проектов
При использовании Actions SDK gactions — это ваш инструмент для синхронизации проектов Action между консолью Actions и вашей локальной файловой системой.
Операции gactions pull
экспортируют проект из консоли Actions в локальную файловую систему, а операции gactions push
передают проект из локальной файловой системы в консоль Actions.
Загрузка действий из консоли действий
Запустите gactions pull
чтобы скопировать конфигурацию проекта Actions в локальную файловую систему.
project-id
который вы хотите скопировать, можно передать в командной строке или записать в файле settings/settings.yaml
. Если присутствуют оба параметра, CLI отдает приоритет значению, переданному в качестве опции.
mkdir -p myAction/sdk
cd myAction/sdk
gactions pull --project-id my-project-id
Pulling your project files from Draft for a project id: "my-project-id" ✔ Done. You should see the files written in path/to/myAction/sdkls -l
total 8 drwxr-x--- 3 user primarygroup 96 May 7 10:00 actions drwxr-x--- 4 user primarygroup 128 May 7 10:00 custom -rw-r----- 1 user primarygroup 15 May 7 10:00 manifest.yaml drwxr-x--- 3 user primarygroup 96 May 7 10:00 settingsvi settings/settings.yaml
// change projectId to "my-other-project-id"gactions pull
Pulling your project files from Draft for a project id: "my-other-project-id" path/to/myAction/sdk/manifest.yaml already exists. Would you like to overwrite it?. [y/n] ... ✔ Done. You should see the files written in path/to/myAction/sdk
В приведенном выше фрагменте кода показано, как извлечь действие из черновика проекта. Также можно использовать конкретную версию вашего действия. Версия представляет собой отправленную копию вашего проекта Actions, которую можно развернуть в канале выпуска.
Флаг --version-id
указывает, какую версию следует извлечь.
mkdir -p myAction/sdk
cd myAction/sdk
gactions pull --project-id my-project-id --version-id my-version-id
Pulling version "my-version-id" of the project "my-project-id" from Actions Console... ✔ Done. You should see the files written in path/to/myAction/sdkls -l
total 8 drwxr-x--- 3 user primarygroup 96 May 7 10:00 actions drwxr-x--- 4 user primarygroup 128 May 7 10:00 custom -rw-r----- 1 user primarygroup 15 May 7 10:00 manifest.yaml drwxr-x--- 3 user primarygroup 96 May 7 10:00 settings
Используйте флаг --force
, если вы хотите перезаписать локальные копии файла без запроса подтверждения. Используйте флаг --clean
, чтобы удалить любые локальные файлы, которых нет в удаленном черновике или версии. Используйте их вместе, чтобы получить точную копию проекта консоли Actions.
touch local_file.txt
gactions pull --force
Pulling your project files from Draft for a project id: "my-project-id" [WARNING] 2020/05/07 17:34:32 path/to/myAction/sdk/local_file.txt is not present in the draft of your Action. To remove, run pull with --clean flag. ✔ Done. You should see the files written in path/to/myAction/sdkgactions pull --force --clean
Pulling your project files from Draft for a project id: "my-project-id" [WARNING] 2020/05/07 17:43:44 path/to/myAction/sdk/local_file.txt is not present in the draft of your Action. Removing path/to/myAction/sdk/local_file.txt. ✔ Done. You should see the files written in path/to/myAction/sdk
Проект консоли Push Actions to Actions
Запустите gactions push
чтобы перенести изменения из локальной файловой системы в черновик вашего действия в консоли. Этот процесс может быть полезен во время разработки, чтобы просмотреть изменения, отраженные в консоли действий, не затрагивая версию, использованную для тестирования.
gactions push
Pushing your project files to your Actions console draft for a project id: "my-project-id". This may take a few minutes.
Sending configuration files
Waiting for server to respond.
✔ Done. You can now navigate to the Actions Console: https://console.actions.google.com/project/my-project-id/overview to view your project. If you want to test your changes in the simulator, run "gactions deploy preview"
Импортируйте существующий проект из системы управления исходным кодом.
Если вы хотите работать над существующим проектом из ревизии в системе контроля версий:
- Проверьте целевую ревизию (зависит от системы).
- Замените значение
projectId
в файлеsettings.yaml
проекта. - При необходимости запустите
gactions push
, чтобы скопировать локальные файлы конфигурации в проект Actions.
git clone https://github.com/my/repo.git
Cloning into 'repo'... remote: Enumerating objects: 10, done. remote: Counting objects: 100% (10/10), done. remote: Compressing objects: 100% (9/9), done. remote: Total 51 (delta 3), reused 3 (delta 1), pack-reused 41 Receiving objects: 100% (51/51), 36.86 KiB | 3.69 MiB/s, done. Resolving deltas: 100% (11/11), done.cd repo/sdk/
vi settings/settings.yaml
// change the value of `projectId`gactions push
Листинг версий
Запустите gactions versions list
чтобы просмотреть подробную информацию о версиях вашего действия. Чтобы узнать больше о статусах версий, обратитесь к справочнику State .
gactions versions list
Version Status Last Modified By Modified On
1 Created your-email@your-domain.com 2020-09-28 20:22:04
Если в статусе вашего развертывания указано «Ошибка создания», вы можете получить более подробную информацию о нем в консоли в разделе «Выпуск».
Развертывание проектов
Команда gactions deploy
позволяет развернуть проект для тестирования в симуляторе Actions или развернуть его в альфа-, бета- или производственном каналах выпуска.
Предварительный просмотр в симуляторе
Запустите gactions deploy preview
чтобы развернуть свое действие в «предварительном виде», что позволит вам протестировать свое действие в консоли, не обновляя версию проекта действия и не влияя на других разработчиков. Другими словами, ни одно из изменений, вносимых вами в локальную файловую систему, не распространяется на развернутые версии вашего проекта Actions, но они доступны для тестирования в предварительной версии.
gactions deploy preview
Deploying your project files to your Actions console preview for a project id: "my-project". This may take a few minutes.
Sending configuration files
Waiting for server to respond.
✔ Done. You can now navigate to the Actions Console simulator to test your changes: http://console.actions.google.com/project/my-project/simulator?disableAutoPreview
Создание релизов
Запустите gactions deploy
, чтобы создать выпуски версий для альфа-/бета-каналов/продуктовых каналов, которыми можно управлять через раздел «Развертывание» в консоли «Действия». Используйте его для тестирования кандидатов на выпуск вашего действия с помощью альфа- и/или бета-каналов и перемещайте кандидата на выпуск в производство, когда вы будете удовлетворены отзывами.
gactions deploy alpha
Deploying your project files to a actions.channels.Alpha channel for a project id: "my-project-id"
Sending configuration files
Waiting for server to respond.
✔ Done. Your Action was deployed to actions.channels.Alpha channel. You can check status of deployment in the Actions Console.
Список каналов выпуска
Запустите gactions release-channels list
чтобы просмотреть подробную информацию о каналах выпуска для вашего действия. Эту команду можно использовать для определения версии, развернутой или ожидающей решения для каждого канала.
gactions release-channels list
Release Channel Current Version Pending Version
alpha 1 N/A
Привязка аккаунта
Команды gactions encrypt
и gactions decrypt
позволяют управлять секретами клиента OAuth2. Эти команды предназначены только для связывания учетных записей .
Зашифровать учетную запись OAuth2, связывающую секреты клиента
Запустите gactions encrypt
чтобы безопасно добавить секреты клиента для потоков связывания учетных записей OAuth2 с кодом аутентификации или зашифровать существующие секреты с помощью нового ключа шифрования.
gactions encrypt
Write your secret: *********************
Encrypting your client secret
path/to/myAction/sdk/settings/accountLinkingSecret.yaml already exists. Would you like to overwrite it?. [y/n]
y
✔ Done. Encrypted secret was written to path/to/myAction/sdk/settings/accountLinkingSecret.yaml
Доступ к текстовому значению зашифрованных секретов привязки учетной записи.
Запустите gactions decrypt
если вам нужно временно получить доступ к текстовому значению секрета проекта. Команда печатает значение в текстовый файл по вашему выбору. Мы рекомендуем, чтобы целевой файл находился за пределами корневой папки проекта, чтобы избежать случайной утечки значения в виде обычного текста.
gactions decrypt ../../burn_after_read.txt
Decrypting your client secret ✔ Done. Check path/above/myActions/burn_after_read.txt to find decrypted client secret.vi ../../burn_after_read.txt
rm ../../burn_after_read.txt