Files
clusterlogs/.gitea/workflows/ci.yml
T
fernando a6cdee023c
CI / test-and-build (push) Successful in 11s
ci: mover el condicional de despliegue a bash dentro del step
El if: a nivel de step no está corriendo de forma confiable en este
runner (act_runner v0.2.13, modo host): el paso 'Publicar en producción'
nunca se ejecutó en 5 corridas distintas, con o sin condición, con o sin
&&, sin dejar ningún rastro en el log. Se fusiona build + condicional +
rsync en un solo step con el if en bash, que sí es determinista.
2026-08-18 00:44:26 -06:00

79 lines
2.2 KiB
YAML

name: CI
on:
push:
pull_request:
permissions:
contents: read
jobs:
test-and-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
cache: true
- name: Instalar Zola fijado
run: |
mkdir -p "$HOME/.local/bin"
curl -sL "https://github.com/getzola/zola/releases/download/v0.23.3/zola-v0.23.3-x86_64-unknown-linux-gnu.tar.gz" -o /tmp/zola.tar.gz
tar xz -C "$HOME/.local/bin" -f /tmp/zola.tar.gz zola
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
"$HOME/.local/bin/zola" --version
- name: Preparar tema fijado
run: ./scripts/bootstrap-theme.sh
- name: Formato Go
run: test -z "$(gofmt -l cmd internal)"
- name: Pruebas Go
run: go test ./...
- name: Detector de carreras Go
run: go test -race ./...
- name: Análisis estático Go
run: go vet ./...
- name: Compilar CLI
run: make build
- name: Flujo integral de la CLI
run: ./scripts/e2e-local.sh
- name: Verificar firmas SSH de commits del pull request
if: github.event_name == 'pull_request'
env:
BASE_SHA: ${{ github.event.pull_request.base.sha }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
run: ./scripts/verify-signatures-ci.sh
- name: Regenerar y comprobar proyección
run: |
./bin/clusterlog --root . sync
./bin/clusterlog --root . sync --check
- name: Validar contenido y plantillas
run: ./bin/clusterlog --root . validate --require-zola
- name: Construir y, en main, publicar en producción
run: |
zola build
if [ "${{ github.ref_name }}" = "main" ] && [ "${{ github.event_name }}" = "push" ]; then
echo "Publicando en clusterlog.mcps-epcm.org"
rsync -a --delete public/ /opt/clusterlog/public/
else
echo "Rama '${{ github.ref_name }}' (evento '${{ github.event_name }}'): no se publica."
fi
- name: Fin del pipeline
run: echo "listo"