Docker: Configurar o workflow do GitHub Actions

Esta documentação faz parte do guia Implementar com GitHub Actions. Consulte o guia completo aqui: Saiba como implementar os seus contentores Docker utilizando o GitHub Actions.

Bem-vindo à documentação da Stackhero

A Stackhero disponibiliza uma plataforma Docker cloud CaaS (Containers as a Service) pronta a usar, concebida para implementações de contentores rápidas e fiáveis:

  • Implemente em produção com um simples docker-compose up. Não é necessária qualquer configuração adicional: basta iniciar os seus contentores.
  • Escolha o seu próprio nome de domínio, automaticamente protegido com HTTPS (por exemplo: https://api.sua-empresa.com, https://www.sua-empresa.com ou https://backoffice.sua-empresa.com).
  • Beneficie de elevado desempenho e segurança robusta numa infraestrutura privada e dedicada.
  • Aplique atualizações com um clique para uma manutenção simples e sem esforço.

Pode ter os seus contentores em produção em cerca de cinco minutos. A Stackhero gere a infraestrutura, as atualizações e a segurança por si, para que se possa focar na entrega das suas aplicações. Saiba mais sobre alojamento cloud Docker CaaS.

Na sua máquina local, navegue até ao seu repositório Git e crie uma pasta chamada .github/workflows. Dentro desta pasta, crie um ficheiro chamado deploy-to-stackhero.yml com o seguinte conteúdo:

# File: .github/workflows/deploy-to-stackhero.yml

name: Deploy to Stackhero
description: Deploy branch "${{ github.ref_name }}" to Stackhero

on:
  push:
    # These branches trigger the deploy action on push.
    # Be sure to create an environment matching the branch name in GitHub (under Settings > Environments).
    # Then add the secret STACKHERO_CERTIFICATES_PASSWORD and variable STACKHERO_ENDPOINT in that environment.
    branches: [ "production", "staging" ]

jobs:
  Deploy:
    environment: ${{ github.ref_name }}
    runs-on: ubuntu-latest
    steps:
    - uses: stackhero-io/github-actions-deploy-docker-containers-to-stackhero@v1
      with:
        # The secret STACKHERO_CERTIFICATES_PASSWORD and the variable STACKHERO_ENDPOINT should be defined in the corresponding branch environment on GitHub.
        certificates_password: ${{ secrets.STACKHERO_CERTIFICATES_PASSWORD }}
        endpoint: ${{ vars.STACKHERO_ENDPOINT }}
        # deployment_command is optional. You can use it if you need to customize the Docker Compose command.
        deployment_command: ${{ vars.STACKHERO_DEPLOY_COMMAND }}

Pode confirmar as suas alterações com:

git add -A .
git commit -m "Add GitHub Actions to deploy to Stackhero"

Para criar uma branch de produção, execute:

git checkout -b production

E depois faça push da sua branch de produção para o GitHub:

git push --set-upstream origin production

Assim que o seu código for enviado, o GitHub Actions irá implementá-lo automaticamente na sua instância Stackhero de produção. Pode acompanhar o progresso da implementação no separador Actions do seu projeto GitHub.

GitHub Actions que implementou em produçãoGitHub Actions que implementou em produção

E está feito. A sua configuração está agora pronta para implementar automaticamente o seu código em produção utilizando o GitHub Actions.