- Aula 10: Gitea + Registry + Actions + Runner (substituiu GitLab) - gitea-values.yaml: PostgreSQL standalone, Valkey standalone, ~800Mi RAM - setup.sh/cleanup.sh: namespace gitea, Helm gitea-charts/gitea + actions - README.md: documentação completa com de→para (GitLab/Harbor/Tekton vs Gitea) - Aula 11: ArgoCD (GitOps) — removido GitLab Runner (runner vive na aula-10) - setup.sh: só ArgoCD, integração SSH com Gitea - node-bugado/.gitea/workflows/ci.yml: pipeline convertida - Aula 13: Container Factory — atualizado para Gitea - setup.sh/cleanup.sh: referências GitLab → Gitea - pipelines/postgresql/ci.yml: Gitea Actions workflow - README.md: conexão com act_runner explicada - CLAUDE.md: tabela de aulas atualizada
78 lines
2.7 KiB
YAML
78 lines
2.7 KiB
YAML
# =============================================================================
|
|
# Pipeline CI: DevOps Toolbox (eStargz + GZIP)
|
|
# =============================================================================
|
|
# Constrói imagem em ambos os formatos para benchmark
|
|
# =============================================================================
|
|
|
|
stages:
|
|
- build
|
|
- push
|
|
|
|
variables:
|
|
REGISTRY: registry.kube.quest
|
|
IMAGE_NAME: factory/devops-toolbox
|
|
DOCKER_HOST: tcp://docker:2376
|
|
DOCKER_TLS_CERTDIR: "/certs"
|
|
DOCKER_TLS_VERIFY: 1
|
|
DOCKER_CERT_PATH: "$DOCKER_TLS_CERTDIR/client"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Build eStargz (lazy pulling)
|
|
# -----------------------------------------------------------------------------
|
|
build-estargz:
|
|
stage: build
|
|
image: docker:27-dind
|
|
services:
|
|
- docker:27-dind
|
|
before_script:
|
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $REGISTRY
|
|
- docker buildx create --use --name multiarch --driver docker-container
|
|
script:
|
|
- |
|
|
docker buildx build \
|
|
--platform linux/arm64,linux/amd64 \
|
|
--output type=image,name=${REGISTRY}/${IMAGE_NAME}:latest,push=true,compression=estargz,force-compression=true,oci-mediatypes=true \
|
|
--cache-from type=registry,ref=${REGISTRY}/${IMAGE_NAME}:cache \
|
|
--cache-to type=registry,ref=${REGISTRY}/${IMAGE_NAME}:cache,mode=max \
|
|
.
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "main"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Build GZIP (tradicional, para benchmark)
|
|
# -----------------------------------------------------------------------------
|
|
build-gzip:
|
|
stage: build
|
|
image: docker:27-dind
|
|
services:
|
|
- docker:27-dind
|
|
before_script:
|
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $REGISTRY
|
|
- docker buildx create --use --name multiarch --driver docker-container
|
|
script:
|
|
- |
|
|
docker buildx build \
|
|
--platform linux/arm64,linux/amd64 \
|
|
--output type=image,name=${REGISTRY}/${IMAGE_NAME}:gzip,push=true,compression=gzip,oci-mediatypes=true \
|
|
--cache-from type=registry,ref=${REGISTRY}/${IMAGE_NAME}:cache \
|
|
.
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "main"
|
|
|
|
# -----------------------------------------------------------------------------
|
|
# Tag como versão
|
|
# -----------------------------------------------------------------------------
|
|
push-tags:
|
|
stage: push
|
|
image: docker:27-cli
|
|
services:
|
|
- docker:27-dind
|
|
before_script:
|
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $REGISTRY
|
|
script:
|
|
- docker buildx imagetools create -t ${REGISTRY}/${IMAGE_NAME}:v1 ${REGISTRY}/${IMAGE_NAME}:latest
|
|
rules:
|
|
- if: $CI_COMMIT_BRANCH == "main"
|
|
needs:
|
|
- build-estargz
|