Observação: GitHub Package Registry está atualmente em beta para GitHub AE.
Observação: GitHub Actions está atualmente na versão beta para GitHub AE.
Aviso: Os executores auto-hospedados estão desabilitados para GitHub AE. Isso porque GitHub AE oferece garantias para as fronteiras de segurança que são incompatíveis com a forma como os executores hospedados funcionam. No entanto, se você precisar usar executores auto-hospedados com GitHub AE e entender as implicações de segurança, você poderá entrar em contato com o suporte de GitHub para uma exceção de segurança que irá habilitar executores auto-hospedados.
Se você não precisar de executores auto-hospedados, você poderá usar AE hosted runners para executar seus fluxos de trabalho. Para obter mais informações, consulte "Sobre AE hosted runners".
Sobre GitHub Package Registry com GitHub Actions
O GitHub Actions ajuda você a automatizar seus fluxos de trabalho de desenvolvimento de software no mesmo lugar que você armazena o código e colabora em pull requests e problemas. Você pode escrever tarefas individuais, chamadas de ações e combiná-las para criar um fluxo de trabalho personalizado. Com o GitHub Actions, você pode criar recursos completos de integração contínua (CI, Continuous Integration) e implantação contínua (CD, Continuous Deployment) diretamente no seu repositório. Para obter mais informações, consulte "Sobre GitHub Actions".
Você pode estender os recursos de CI e CD do seu repositório publicando ou instalando pacotes como parte do seu fluxo de trabalho.
Efetuar a autenticação nos registros do pacote em GitHub
Para efetuar a autenticação nos registros de pacotes no GitHub AE, recomendamos usar o GITHUB_TOKEN que GitHub AE cria automaticamente para o seu repositório quando você habilita GitHub Actions em vez de um token de acesso pessoal para autenticação. tem permissões de leitura e gravação para pacotes no repositório em que o fluxo de trabalho é executado. Para bifurcações, o GITHUB_TOKEN recebe acesso de leitura para o repositório principal. Para obter mais informações, consulte "Autenticação com o GITHUB_TOKEN".
Você pode fazer referência ao GITHUB_TOKEN no seu arquivo de fluxo de trabalho usando o contexto {{secrets.GITHUB_TOKEN}}. Para obter mais informações, consulte "Permissões para o GITHUB_TOKEN".
Sobre permissões e acesso de pacote para pacotes pertencentes ao repositório
Observação: Os pacotes que possuem repositórios incluem RubyGems, npm, Apache Maven, NuGet, Gradle e Docker que usam o namespace docker.pkg.github.com.
Quando você habilita o GitHub Actions, o GitHub instala um aplicativo GitHub no repositório. O segredo GITHUB_TOKEN é um token de acesso de instalação do aplicativo GitHub. Você pode usar o token de acesso de instalação para efetuar a autenticação em nome do aplicativo GitHub instalado no seu repositório. As permissões do token são restritas ao repositório do fluxo de trabalho. Para obter mais informações, consulte "Permissões para o GITHUB_TOKEN".
GitHub Package Registry permite que você faça push e pull de pacotes por meio do GITHUB_TOKEN disponível para um fluxo de trabalho de GitHub Actions.
Publicar um pacote usando uma ação
Você pode usar GitHub Actions para publicar automaticamente pacotes como parte do fluxo de integração contínua (CI). Esta abordagem da implantação contínua (CD) permite que você automatize a criação de novas versões do pacote, se o código atender aos seus padrões de qualidade. Por exemplo, você pode criar um fluxo de trabalho que executa testes CI toda vez que um desenvolvedor faz push do código para um branch específico. Se os testes passarem, o fluxo de trabalho poderá publicar uma nova versão do pacote em GitHub Package Registry.
As etapas de configuração variam de acordo com o cliente do pacote. Para obter informações gerais sobre a configuração de um fluxo de trabalho para GitHub Actions, consulte "Configurar um fluxo de trabalho."
O exemplo a seguir demonstra como você pode usar GitHub Actions para criar e testar seu aplicativo e, em seguida, criar automaticamente uma imagem do Docker e publicá-la em GitHub Package Registry:
-
Crie um novo arquivo de fluxo de trabalho no repositório (como
.github/workflows/deploy-image.yml) e adicione o YAML a seguir:YAML name: Create and publish a package on: push: branches: ['release'] jobs: run-npm-build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: npm install and build webpack run: | npm install npm run build - uses: actions/upload-artifact@main with: name: webpack artifacts path: public/ run-npm-test: runs-on: ubuntu-latest needs: run-npm-build strategy: matrix: os: [ubuntu-latest] node-version: [12.x, 14.x] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - uses: actions/download-artifact@main with: name: webpack artifacts path: public - name: npm install, and test run: | npm install npm test env: CI: true build-and-push-image: runs-on: ubuntu-latest needs: run-npm-test steps: - name: Checkout uses: actions/checkout@v2 - name: Log in to GitHub Docker Registry uses: docker/login-action@v1 with: registry: docker.YOUR-HOSTNAME.com username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build container image uses: docker/build-push-action@v2 with: push: true tags: | docker.YOUR-HOSTNAME.com/${{ github.repository }}/octo-image:${{ github.sha }} docker.YOUR-HOSTNAME.com/${{ github.repository }}/octo-image:${{ github.ref }}As configurações relevantes são explicadas na seguinte tabela:
on: push: branches: ['release']Configura o fluxo de trabalho Criar e publicar um pacotepara ser executado toda vez que uma alteração é enviada para o branch denominadoversão.run-npm-build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: npm install and build webpack run: | npm install npm run build - uses: actions/upload-artifact@main with: name: webpack artifacts path: public/Este trabalho instala o NPM e o usa para criar o aplicativo. run-npm-test: runs-on: ubuntu-latest needs: run-npm-build strategy: matrix: os: [ubuntu-latest] node-version: [14.x] steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - uses: actions/download-artifact@main with: name: webpack artifacts path: public - name: npm install, and test run: | npm install npm test env: CI: trueEste trabalho usa teste do npmpara testar o código. O comandoneeds: run-npm-buildtorna esse trabalho dependente do trabalhorun-npm-build.build-and-push-image: runs-on: ubuntu-latest needs: run-npm-testEste trabalho publica o pacote. O comando needs: run-npm-testtorna essa tarefa dependente do trabalhorun-npm-test.- name: Log in to GitHub Docker Registry uses: docker/login-action@v1 with: registry: docker.YOUR-HOSTNAME.com username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }}Cria uma nova etapa denominada Iniciar sessão no registro do GitHub Docker, que faz login no registro usando a conta e a senha que publicará os pacotes. Uma vez publicados, os pacotes pertencem à conta definida aqui.- name: Build container imageCria uma nova etapa denominada Build container image. Esta etapa é executada como parte do trabalhobuild-and-push-image.uses: docker/build-push-action@v2Usa a ação build-push-actiondo Docker para criar a imagem com base noarquivo Dockerdo seu repositório. Se a criação for bem-sucedida, ela faz p push da imagem para GitHub Package Registry.with:Envia os parâmetros necessários para a ação build-push-action . Isto é definido nas linhas subsequentes.push: trueFaça push desta imagem para o registro se for construída com sucesso. tags: | docker.YOUR-HOSTNAME.com/${{ github.repository }}/octo-image:${{ github.sha }} docker.YOUR-HOSTNAME.com/${{ github.repository }}/octo-image:${{ github.ref }}Marca o pacote publicado com o ref do git (por exemplo, o nome do branch usado para criar o pacote), bem como o SHA do commit. - Este novo fluxo de trabalho será executado automaticamente toda vez que você fizer uma alteração em uma
versãonomeada do branch no repositório. Você pode visualizar o progresso na aba Ações. - Alguns minutos após a conclusão do fluxo de trabalho, o novo pacote ficará visível no seu repositório. Para encontrar seus pacotes disponíveis, consulte "Visualizar os pacotes de um repositório".
Instalar um pacote usando uma ação
Você pode instalar pacotes como parte de seu fluxo de CI usando o GitHub Actions. Por exemplo, você poderia configurar um fluxo de trabalho para que sempre que um desenvolvedor fizesse push do código para um pull request, o fluxo de trabalho resolveria as dependências, fazendo o download e instalando pacotes hospedados pelo GitHub Package Registry. Em seguida, o fluxo de trabalho pode executar testes de CI que exigem as dependências.
A instalação de pacotes hospedados pelo GitHub Package Registry através GitHub Actions exige uma configuração mínima ou uma autenticação adicional quando você usa o
GITHUB_TOKEN.As etapas de configuração variam de acordo com o cliente do pacote. Para obter informações gerais sobre a configuração de um fluxo de trabalho para GitHub Actions, consulte "Configurar um fluxo de trabalho."
- Este novo fluxo de trabalho será executado automaticamente toda vez que você fizer uma alteração em uma