|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
|
Esta é uma documentação não divulgada para Admission Controller 1.34-dev. |
Integrando com o GitHub Actions
Automação
Esta seção descreve como você pode usar o GitHub Actions para automatizar tarefas.
A estrutura do projeto já inclui todas as ações do GitHub que você precisa.
Você pode encontrar as Ações nos arquivos .github/workflows/test.yml e .github/workflows/release.yml.
Você pode adaptar esses princípios para usar um sistema de CI diferente.
qualidade
A automação dos testes unitários e dos testes de ponta a ponta funciona imediatamente.
Ele usa os jobs definidos em .github/workflows/test.yml.
Lançamento
A estrutura do projeto tem um job release em .github/workflows/release.yml.
Este job realiza os seguintes passos:
-
Fazer checkout do código
-
Construir a política WebAssembly
-
Enviar a política para um registro da Open Container Initiative (OCI)
-
Criar um novo lançamento no GitHub
Para habilitar o job, ajuste a entrada da ação oci-target para o fluxo de trabalho reutilizável (reusable-release-policy-go.yml) chamado no arquivo release.yml.
O job age de maneira diferente com base no commit que acionou sua execução.
Commits regulares levam à criação de um artefato OCI chamado <policy-name>:latest.
Um lançamento no GitHub não é criado para esses commits.
Criar uma tag que corresponda ao padrão v* leva a:
-
Criação de um artefato OCI chamado
<policy-name>:<tag>. -
Criação de um lançamento no GitHub chamado
Release <full tag name>. O lançamento inclui os ativos, o código-fonte da política e o binário WebAssembly.
Um exemplo
Suponha uma política chamada safe-labels e que ela precise ser publicada como ghcr.io/kubewarden/policies/safe-labels.
O conteúdo da seção jobs.push-to-oci-registry.env de ci.yml deve ser parecido com:
jobs:
push-to-oci-registry:
runs-on: ubuntu-latest
env:
WASM_BINARY_NAME: policy.wasm
OCI_TARGET: ghcr.io/kubewarden/policies/safe-labels
Enviar uma tag chamada v0.1.0 leva à criação e publicação do artefato OCI chamado ghcr.io/kubewarden/policies/safe-labels:v0.1.0.
Isso cria um lançamento no GitHub chamado Release v0.1.0.
O lançamento inclui os seguintes ativos:
-
Código-fonte comprimido como
zipetar.gz -
Um arquivo chamado
policy.wasm; este é a política WebAssembly real.