руководство пользователя gactions

В этом руководстве показано, как использовать инструмент интерфейса командной строки (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/sdk
ls -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
vi 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/sdk
ls -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/sdk
gactions 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"

Импортируйте существующий проект из системы управления исходным кодом.

Если вы хотите работать над существующим проектом из ревизии в системе контроля версий:

  1. Проверьте целевую ревизию (зависит от системы).
  2. Замените значение projectId в файле settings.yaml проекта.
  3. При необходимости запустите 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