Uso em CI
A CLI percebe quando está em CI: sem terminal, ou com CI definida, ela nunca faz perguntas e nunca abre o navegador.
GitHub Actions com OIDC (sem secret)
Seção intitulada “GitHub Actions com OIDC (sem secret)”Com permissions: id-token: write e sem BOHR_TOKEN, a CLI entra com o token OIDC do GitHub da execução e faz deploy do repositório da execução e do branch que recebeu o push:
name: Deployon: { push: { branches: ['**'] } }permissions: { contents: read, id-token: write }jobs: deploy: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 - uses: actions/setup-node@v5 with: { node-version: 22 } - id: bohr run: npx --yes bohr@latest deploy - run: echo "Deployed to ${{ steps.bohr.outputs.url }}"- A CLI roda primeiro o install e o build do
.bohr/deploy.json(adicione--no-buildse um step anterior já fez o build do site). - No GitHub Actions a CLI escreve os step outputs
urledeployment-id, mascara secrets com::add-mask::e agrupa o log. --prod,--branche--projectprecisam deBOHR_TOKEN: com OIDC, quem decide é o branch da execução.- Workflows disparados a partir de forks nunca recebem tokens OIDC.
É isso que a bohr-io/deploy-action@v1 faz também.
Com um token (qualquer CI)
Seção intitulada “Com um token (qualquer CI)”Crie um token em Conta › Tokens limitado ao projeto, guarde como secret do CI e passe como BOHR_TOKEN:
- run: npx --yes bohr@latest deploy --project p3k9x0a7qd2m --branch "$GITHUB_REF_NAME" --json env: BOHR_TOKEN: ${{ secrets.BOHR_TOKEN }}GitLab CI, com BOHR_TOKEN definida como uma variável de CI/CD mascarada:
deploy: image: node:22 script: - npx --yes bohr@latest deploy --project p3k9x0a7qd2m --branch "$CI_COMMIT_REF_NAME" --jsonProdução a partir do CI precisa de um token de um dono do projeto e de --prod (sem terminal, nenhuma pergunta é feita):
BOHR_TOKEN=bohr_… npx --yes bohr@latest deploy --prod --jsonDetecção do branch
Seção intitulada “Detecção do branch”Sem --branch, a CLI usa o branch em checkout; num HEAD destacado (comum em CI) ela recorre a GITHUB_HEAD_REF e depois a GITHUB_REF. Em outros lugares, passe --branch explicitamente.
Fixar uma versão
Seção intitulada “Fixar uma versão”npx bohr@latest sempre roda a versão mais recente. Para fixar uma, use npx --yes bohr@4.1.0 deploy, ou adicione bohr às suas devDependencies.