--- title: Como fazer o deploy de um aplicativo Qt com Github Actions date: 2025-07-21 modified: 2025-07-21 slug: como-fazer-o-deploy-de-um-aplicativo-qt-com-github-actions cover: https://cdn.hashnode.com/res/hashnode/image/stock/unsplash/wX2L8L-fGeA/upload/4d45c392bb571222e27486a44f15d8f2.jpeg tags: github, github-actions-1 category: Qt lang: pt_BR status: published --- # Como fazer o deploy de um aplicativo Qt com Github Actions Hoje veremos como utilizar o GitHub Actions com Nuitka para automatizar o processo de deploy de um aplicativo que utiliza a linguagem de programação Python e o binding [PySide6](https://pypi.org/project/PySide6/). ## O que é o Github Actions? O [GitHub Actions](https://docs.github.com/pt/actions) é um recurso do GitHub que permite automatizar tarefas dentro do seu fluxo de trabalho de desenvolvimento de software. Com o GitHub Actions, você pode criar fluxos de trabalho customizados para automatizar a compilação, teste, implantação e outras etapas do ciclo de vida do desenvolvimento de software. Os fluxos de trabalho do GitHub Actions são definidos em arquivos YAML (`***.yaml**`) armazenados no diretório `**.github/workflows**` do seu repositório. Esses arquivos descrevem as ações a serem executadas, incluindo as condições sob as quais devem ser acionadas e quaisquer parâmetros necessários. As ações do GitHub Actions são unidades de trabalho individuais que podem ser combinadas para criar fluxos de trabalho complexos. Existem ações disponíveis na [GitHub Marketplace](https://github.com/marketplace) que podem ser usadas para uma variedade de tarefas, como compilar código, executar testes, implantar aplicativos e notificar equipes sobre o progresso do desenvolvimento. ## Nuitka Nuitka é um compilador Python de código aberto que traduz código Python para C++ ou código C otimizado, permitindo que ele seja executado mais rapidamente do que se fosse interpretado diretamente pelo interpretador Python padrão. Ele funciona analisando o código Python e o traduzindo para código C ou C++, que é então compilado em código de máquina nativo. Isso pode resultar em melhorias significativas de desempenho em determinadas situações, especialmente em código Python que é intensivo em CPU. ## Criando o arquivo de deploy No repositório crie um arquivo `deploy.yaml` em `.github/workflows`. > ⚠️ O arquivo pode ter o nome que você desejar. Dentro do arquivo será utilizado o seguinte código: ```bash # Fluxo de deploy para um aplicativo Qt (PySide) com Nuitka. name: Deploying PySide6 with Nuitka ⚙️. on: # Arquivo será executado sempre que houver um push para a branch main. push: branches: ['main'] # Esta opção permite executar a ação de forma manual na interface web do Github. workflow_dispatch: # Definindo as permissões do GITHUB_TOKEN. permissions: contents: read pages: write id-token: write # Permite que a implantação seja simultânea. concurrency: group: 'deploy' cancel-in-progress: true jobs: build: strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] runs-on: '${{ matrix.os }}' steps: - name: Check out repository 💾. uses: actions/checkout@v4 - name: Install Python 🐍. uses: actions/setup-python@v5 with: python-version: '3.11' architecture: 'x64' cache: 'pip' cache-dependency-path: | **/requirements*.txt - name: Install requirements 🔨. working-directory: . run: python -m pip install --upgrade pip && pip install -r requirements.txt - name: Install and configure Nuitka 🛠️. uses: Nuitka/Nuitka-Action@main with: nuitka-version: main script-name: caminho/até/o/script.py enable-plugins: pyside6 quiet: true standalone: true disable-console: true macos-create-app-bundle: true output-file: nome-do-aplicativo linux-icon: caminho/até/ícone.ico windows-icon-from-ico: caminho/até/ícone.ico macos-app-icon: caminho/até/ícone.icns macos-app-name: nome-do-aplicativo - name: Upload artifact (onefile) 🚀. uses: actions/upload-artifact@v4 with: name: '${{ runner.os }}-build' path: | build/app.dist build/*.exe build/*.bin build/*.app/**/* ``` > ⚠️ Lembre-se de modificar as variáveis conforme as suas necessidades. O arquivo de deploy considera sempre a **raiz do projeto** como diretório padrão, neste caso adicione o caminho relativo até os ícones. Essa Github Action será executada sempre que houver um `push` para a branch `main` do repositório. Também é possível executar essa Github Action através da interface web do Github, para isso basta clicar na aba `Actions`. Ao final do processo é possível verifica os executáveis que foram gerados para cada um dos sistema operacionais e fazer o download dos mesmos. ## Conclusão O GitHub Actions é uma ferramenta poderosa para automatizar e personalizar seu fluxo de trabalho de desenvolvimento, ajudando a melhorar a produtividade e a consistência do seu projeto.