@zenifra/cli 0.3.4 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +67 -4
- package/bin/zenifra.mjs +882 -36
- package/examples/http-git-project.json +38 -0
- package/examples/http-github-release-project.json +42 -0
- package/examples/http-github-tag-project.json +42 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -54,9 +54,15 @@ zenifra plans
|
|
|
54
54
|
zenifra plans --type http
|
|
55
55
|
zenifra plans --type valkey
|
|
56
56
|
zenifra plans --type storage --json
|
|
57
|
+
zenifra git providers
|
|
58
|
+
zenifra git runtimes
|
|
59
|
+
zenifra git connections
|
|
60
|
+
zenifra git repositories resolve --connection <connection-id> --path equipe/aplicacao
|
|
61
|
+
zenifra git branches --connection <connection-id> --repository <repository-id>
|
|
57
62
|
zenifra create project
|
|
58
63
|
zenifra create project --name <name> --plan free --payment-mode hourly --config @examples/http-project.json
|
|
59
64
|
zenifra create project --name <name> --plan basic --payment-mode hourly --config @examples/http-github-project.json
|
|
65
|
+
zenifra create project --name <name> --plan basic --payment-mode hourly --config @examples/http-git-project.json
|
|
60
66
|
zenifra create project --name <name> --plan premium --payment-mode hourly --config @examples/http-autoscaling-project.json
|
|
61
67
|
zenifra create project --name <name> --plan db-basic --payment-mode monthly --config @examples/postgresql-project.json
|
|
62
68
|
zenifra create project --name <name> --plan db-basic --payment-mode monthly --config @examples/mariadb-project.json
|
|
@@ -80,6 +86,13 @@ zenifra project metrics --project <project-id> --instance <instance-id>
|
|
|
80
86
|
zenifra project metrics capabilities --project <project-id>
|
|
81
87
|
zenifra project network --project <project-id> --view summary
|
|
82
88
|
zenifra project image set --project <project-id> --image ghcr.io/zenifra/app:tag
|
|
89
|
+
zenifra project github --project <project-id>
|
|
90
|
+
zenifra project github deploy-settings set --project <project-id> --mode branch
|
|
91
|
+
zenifra project source --project <project-id>
|
|
92
|
+
zenifra project source branches --project <project-id>
|
|
93
|
+
zenifra project source deploy-settings set --project <project-id> --mode branch
|
|
94
|
+
zenifra project github deploy-settings set --project <project-id> --mode tag --tag-pattern "v*"
|
|
95
|
+
zenifra project github deploy-settings set --project <project-id> --mode release --tag-pattern "v*" --include-prereleases true
|
|
83
96
|
zenifra project envs --project <project-id>
|
|
84
97
|
zenifra project env add --project <project-id> --name NODE_ENV --value production
|
|
85
98
|
zenifra project env update --project <project-id> --name NODE_ENV --value staging
|
|
@@ -134,9 +147,9 @@ zenifra project metrics capabilities --project <project-id> --json
|
|
|
134
147
|
|
|
135
148
|
---
|
|
136
149
|
|
|
137
|
-
## Builds
|
|
150
|
+
## Builds e deployments Git
|
|
138
151
|
|
|
139
|
-
Use `zenifra builds` para listar o historico de builds e `zenifra builds logs` para ler os logs
|
|
152
|
+
Use `zenifra builds` para listar o historico de builds e `zenifra builds logs` para ler os logs de um build de projeto com origem Git.
|
|
140
153
|
|
|
141
154
|
```bash
|
|
142
155
|
zenifra builds --project <project-id>
|
|
@@ -149,12 +162,55 @@ zenifra deploy watch --project <project-id> --build <build-id>
|
|
|
149
162
|
Fluxos:
|
|
150
163
|
|
|
151
164
|
- `zenifra project logs`: logs da aplicacao em execucao
|
|
152
|
-
- `zenifra builds logs`: logs do build
|
|
153
|
-
- `zenifra deploy`: dispara o build/deploy
|
|
165
|
+
- `zenifra builds logs`: logs do build Git
|
|
166
|
+
- `zenifra deploy`: dispara o build/deploy Git e retorna o `build_id`
|
|
154
167
|
- `zenifra deploy watch`: usa esse `build_id` para acompanhar o build em tempo real e imprimir os logs incrementais ate o fim
|
|
155
168
|
|
|
169
|
+
Para criar um projeto HTTP com uma origem Git Forgejo, primeiro uma pessoa proprietaria da organizacao cria a conexao no Console. A CLI lista e usa conexoes existentes; ela nao solicita nem exibe credenciais do provedor.
|
|
170
|
+
|
|
171
|
+
Use os catalogos para conferir provedores, capacidades e runtimes, depois resolva o caminho explicito do repositorio. O ID opaco retornado pertence a essa conexao e deve ser usado com ela ao listar branches:
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
zenifra git providers --json
|
|
175
|
+
zenifra git runtimes
|
|
176
|
+
zenifra git connections --json
|
|
177
|
+
zenifra git repositories resolve --connection <connection-id> --path equipe/aplicacao --json
|
|
178
|
+
zenifra git branches --connection <connection-id> --repository <repository-id>
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Use os IDs confirmados em `config.source` e `config.build`, como no arquivo `examples/http-git-project.json`, para criar o projeto. Esse exemplo contem valores ilustrativos e nao credenciais:
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
zenifra create project --name api-web --plan basic --payment-mode hourly --config @examples/http-git-project.json
|
|
185
|
+
zenifra project source --project <project-id> --json
|
|
186
|
+
zenifra project source branches --project <project-id>
|
|
187
|
+
zenifra project source deploy-settings set --project <project-id> --mode branch
|
|
188
|
+
zenifra deploy --project <project-id> --branch main
|
|
189
|
+
zenifra deploy watch --project <project-id> --build <build-id>
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
O deploy manual retorna um ID de build para acompanhar com `zenifra deploy watch`. Para ativar deploy por tag ou release, use `zenifra project source deploy-settings set --project <project-id> --mode tag --tag-pattern "v*"` ou o modo `release`; prereleases podem ser habilitadas somente no modo `release`. O comando preserva a origem e as configuracoes de build e confirma a alteracao com uma leitura posterior. A API nao oferece precondicao de revisao para essa atualizacao; evite alterar a origem ao mesmo tempo pelo Console ou por outro cliente. Projetos com configuracao GitHub legada continuam usando `zenifra project github` e `zenifra project github deploy-settings set`.
|
|
193
|
+
|
|
194
|
+
Em APIs antigas que ainda nao anunciam as rotas Git neutras, a CLI usa as rotas anteriores somente quando consegue confirmar a origem GitHub legada do projeto. Essa verificacao pode exigir permissao de leitura do projeto. Se a API negar essa leitura, a CLI encerra o comando sem tentar a rota antiga; projetos Forgejo ou com outra origem generica nunca sao tratados como GitHub.
|
|
195
|
+
|
|
156
196
|
Alguns builds antigos podem disponibilizar somente um resumo terminal. Nesse caso, a saida legivel avisa que eventos detalhados nao estavam disponiveis; `--json` preserva a resposta recebida da API.
|
|
157
197
|
|
|
198
|
+
### Modos de deploy GitHub
|
|
199
|
+
|
|
200
|
+
Consulte a configuracao publica atual e escolha exatamente um modo de deploy:
|
|
201
|
+
|
|
202
|
+
```bash
|
|
203
|
+
zenifra project github --project <project-id>
|
|
204
|
+
zenifra project github deploy-settings set --project <project-id> --mode manual
|
|
205
|
+
zenifra project github deploy-settings set --project <project-id> --mode branch
|
|
206
|
+
zenifra project github deploy-settings set --project <project-id> --mode tag --tag-pattern "v*"
|
|
207
|
+
zenifra project github deploy-settings set --project <project-id> --mode release --tag-pattern "v*" --include-prereleases false
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Os modos aceitos sao `manual`, `branch`, `tag` e `release`. `tag` e `release` exigem `--tag-pattern`, que aceita curingas `*` e `?`. O padrao de prereleases e `false`; a opcao so esta disponivel no modo `release`. A CLI le a configuracao salva de volta antes de confirmar uma alteracao. O comando `zenifra deploy --project <project-id> --branch <branch>` continua disponivel para iniciar um deploy manual.
|
|
211
|
+
|
|
212
|
+
Para criar um projeto HTTP com deploy por tag ou release, use `examples/http-github-tag-project.json` (padrao exato `v1.2.3`) ou `examples/http-github-release-project.json` (padrao `v*`).
|
|
213
|
+
|
|
158
214
|
Antes de uma mutacao, confirme o perfil, a API e a organizacao ativa. Para criacoes, confirme tambem o catalogo, plano, pagamento, exposicao, dominio, origem do deploy, porta, instancias e ambientes. Depois, leia o projeto de volta e acompanhe o build/deployment ate um estado terminal.
|
|
159
215
|
|
|
160
216
|
O dominio principal e um dominio personalizado sao campos diferentes. Nao repita o dominio principal em `config.custom_domains`; depois de adicionar um dominio personalizado, valide DNS/TLS e leia a URL final antes de considerar a operacao concluida.
|
|
@@ -287,6 +343,9 @@ Use os arquivos em `examples/` como base para `zenifra create project`:
|
|
|
287
343
|
|
|
288
344
|
- `examples/http-project.json`: projeto HTTP com imagem OCI publica
|
|
289
345
|
- `examples/http-github-project.json`: projeto HTTP com build via GitHub
|
|
346
|
+
- `examples/http-github-tag-project.json`: projeto HTTP com deploy por tag e padrao exato
|
|
347
|
+
- `examples/http-github-release-project.json`: projeto HTTP com deploy por release e padrao `v*`
|
|
348
|
+
- `examples/http-git-project.json`: projeto HTTP com origem Git por conexao configurada no Console/API
|
|
290
349
|
- `examples/http-autoscaling-project.json`: projeto HTTP pago criado com auto-scaling
|
|
291
350
|
- `examples/postgresql-project.json`: projeto PostgreSQL
|
|
292
351
|
- `examples/mariadb-project.json`: projeto MariaDB
|
|
@@ -324,12 +383,16 @@ Valores aceitos:
|
|
|
324
383
|
- `config.version` em projetos Valkey: a versão retornada por `zenifra plans --type valkey`
|
|
325
384
|
- `config.storage` em projetos Valkey: obrigatório e persistente para Key Value/Queue; omitido para Cache
|
|
326
385
|
- `config.github.runtime` (quando houver GitHub em projeto HTTP): `nodejs` ou `python`
|
|
386
|
+
- `config.github.auto_deploy`: use `true` para o modo `branch`; mantenha `false` ao habilitar `version_deploy`
|
|
387
|
+
- `config.github.version_deploy`: use `enabled: true`, `event: "tag"` ou `"release"` e um `tag_pattern` explicito; `include_prereleases` e opcional e padrao `false`
|
|
388
|
+
- `config.source` e `config.build` (quando houver origem Git por conexao): use os IDs retornados pela configuracao segura no Console/API; nao informe credenciais Git nesses campos
|
|
327
389
|
- `config.autoscaling` (somente HTTP pago): `enabled: true`, `max_instances` maior ou igual a `config.instances` e alvos opcionais de CPU/memoria entre 1 e 100
|
|
328
390
|
|
|
329
391
|
Observacoes do wizard:
|
|
330
392
|
|
|
331
393
|
- conflitos entre documentacao e API sao validados pelo contrato real aceito pela API
|
|
332
394
|
- o wizard oferece auto-scaling apenas quando o plano selecionado informa essa disponibilidade
|
|
395
|
+
- no modo GitHub, o wizard permite escolher entre `manual`, `branch`, `tag` e `release`; modos por versao exigem um padrao de tags
|
|
333
396
|
- na criacao com auto-scaling, `config.instances` e o minimo inicial e `config.autoscaling.max_instances` e o maximo
|
|
334
397
|
- em projetos de banco, o wizard nao pergunta `username`, `password` nem `database name`
|
|
335
398
|
- em projetos de banco, a CLI preenche apenas campos tecnicos minimos exigidos pela validacao atual da API
|