refactor: migrar GitLab → Gitea (aulas 10, 11, 13)
- 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
This commit is contained in:
77
aula-13/images/devops-toolbox/.gitlab-ci.yml
Normal file
77
aula-13/images/devops-toolbox/.gitlab-ci.yml
Normal file
@@ -0,0 +1,77 @@
|
||||
# =============================================================================
|
||||
# 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
|
||||
Reference in New Issue
Block a user