Login, organização, projeto e ambiente
Antes do primeiro deploy: autenticar e escolher em qual organização, em qual projeto e em qual ambiente você está trabalhando.
Login
goship loginO token fica salvo em ~/.config/goship/config.json, com permissão de leitura só pra você.
Escolher a organização
Organizações reúnem as pessoas, a cobrança e os projetos. Todo comando roda dentro de uma:
goship org list # as organizações das quais você é membro
goship org use acme # fixa acme como padrãoA flag --org sobrepõe a escolha em um comando só:
goship apps --org outra-orgEscolher o projeto
Dentro da organização, apps, bancos e volumes pertencem a um projeto (e, dentro dele, a um ambiente). Todo comando que mexe nesses recursos roda dentro de um projeto. Veja o conceito em Organizações e projetos.
goship projects # os projetos que você alcança, com o seu papel em cada um
goship project use loja # fixa loja como padrão
goship project create app-mobile --name "App mobile"A flag --project sobrepõe a escolha em um comando só:
goship apps --project app-mobileO CLI decide o projeto nesta ordem, parando no primeiro que encontrar:
- a flag
--project; - a chave
project:dogoship.yaml; - a variável de ambiente
GOSHIP_PROJECT; - o projeto fixado com
goship project use; - o único projeto que você alcança.
O project: do goship.yaml só vale quando o org: do mesmo arquivo é a organização em uso (ou quando o arquivo não tem org:).
Disponível a partir da versão 0.5.0.
Escolher o ambiente
Cada projeto existe em todos os ambientes da organização (desenvolvimento, homologação, produção e os que você criar; a homologação fica desativada até um administrador ativá-la), e cada ambiente aponta para um cluster. O ambiente em que você está decide onde os comandos agem: goship apps, goship deploy, goship db create e os demais rodam dentro dele. Veja o conceito em Ambientes.
goship environments # os ambientes da organização e o cluster de cada um
goship environment use production # fixa production neste projeto
goship environment enable staging # administrador: ativa a homologação
goship deploy --environment production # só neste comandogoship environments mostra, em cada linha, o slug, o nome, o cluster, se o ambiente é o padrão e se está ativado (SLUG, NAME, CLUSTER, DEFAULT, ENABLED). Criar algo num ambiente desativado é recusado com staging is disabled; an organization admin enables it in Infrastructure → Environments; goship environment disable <slug> só funciona num ambiente vazio que não seja o padrão. goship environment use confere que o ambiente existe e guarda a escolha por organização e projeto: em outro projeto, a escolha é outra.
O CLI decide o ambiente nesta ordem, parando no primeiro que encontrar:
- a flag
--environment; - a chave
environment:dogoship.yaml; - a variável de ambiente
GOSHIP_ENVIRONMENT; - o ambiente guardado com
goship environment use; - o ambiente padrão da organização, que é desenvolvimento até você trocar.
O environment: do goship.yaml só vale quando o org: e o project: do mesmo arquivo estão vazios ou são a organização e o projeto em uso.
Diferente de organização e projeto, não escolher um ambiente não é erro: vale o padrão. A exceção é quando o CLI não consegue ler o padrão da organização (a API fora do ar, por exemplo) e nada escolheu um ambiente. Nesse caso os comandos que mudam algo (deploy, app create, db create…) recusam e pedem --environment, e os de listagem usam development, com uma nota dizendo isso.
Os comandos dizem onde agem, na forma org/projeto/ambiente: goship app create imprime Creating <app> in org/projeto/ambiente. Pra olhar além do ambiente em uso, goship apps -A, goship dbs -A e goship volumes -A listam tudo o que você alcança, em seções org/projeto/ambiente; um ambiente que você não alcança é pulado, com uma nota. Quando o projeto não foi escolhido e a organização tem vários, goship app info <app> procura o app em todos os projetos e ambientes; --environment limita a busca a um ambiente. Se o nome existe em vários, ele pede que você escolha com --org, --project e --environment.
goship env continua sendo as variáveis de ambiente de um app (goship env set); os ambientes do GoShip são goship environment e goship environments.
Disponível a partir da versão 0.14.0; goship environment enable e disable e a coluna ENABLED, a partir da 0.16.0.
Logout
goship logoutApaga o token local.
Sem navegador: CI e agentes
Crie um token de API (goship token create ci, ou Profile → API tokens no painel), defina GOSHIP_TOKEN e o CLI não pede login. Combine com --yes pra pular confirmações e --output json pra ler o resultado:
GOSHIP_TOKEN=$TOKEN goship apps --output jsonDetalhes e limites em API → Autenticação.
Próximos passos
Com login feito e organização escolhida, vai pra Comandos comuns ou direto pro Início rápido.