Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
51d66ea
feat: add docker compose for run tests
ronihdzz May 11, 2025
fe65683
feat: add Dockerfile for run tests and add settings for run Dockerfil…
ronihdzz May 11, 2025
50371ec
feat: add environment files for run test
ronihdzz May 11, 2025
6c801e6
feat: add conventions settings
ronihdzz May 11, 2025
e188480
feat: replace requirement.txt for poetry files
ronihdzz May 11, 2025
c8f4b0f
feat: add database connections tests
ronihdzz May 11, 2025
5aa39a6
feat: add environment TESTING_DOCKER
ronihdzz May 11, 2025
afbed87
feat: add package pytz
ronihdzz May 11, 2025
10baba1
feat: add function get_app_current_time
ronihdzz May 11, 2025
be10d86
feat: add mongo settings with use example
ronihdzz May 11, 2025
0dcd542
feat: add posgresql settings with use example
ronihdzz May 11, 2025
b61d4d0
feat: add settings tests
ronihdzz May 11, 2025
c3a6468
fix: database settings posgresql
ronihdzz May 11, 2025
c44f693
feat: add actions tests and modulate in diferent jobs the steps
ronihdzz May 11, 2025
87a25ae
Merge pull request #1 from ronihdzz/feat/docker_deploy
ronihdzz May 11, 2025
253c24f
refactor: only execute jobs: build, deploy for directly push to branc…
ronihdzz May 11, 2025
34754f3
Merge pull request #2 from ronihdzz/ci/activator
ronihdzz May 11, 2025
c5673b2
fix: build step
ronihdzz May 11, 2025
a202116
feat: add support for python-version from 3.12
ronihdzz May 11, 2025
2ea6bd1
ci: fix deploy job
ronihdzz May 12, 2025
9fcff09
feat: add docker image lambda deploy
ronihdzz May 12, 2025
935790b
refactor: readme.md
ronihdzz May 12, 2025
151fcbd
ci: removed old zip-based deployment and implemented environment-base…
ronihdzz May 15, 2025
4725e17
feat: add deploy job
ronihdzz May 15, 2025
17441e0
ci: refactor for deploy lambda on diferents environemtns
ronihdzz May 16, 2025
f709ef1
ci: fix deploy job
ronihdzz May 16, 2025
d4dfba9
feat: add base templates for contextvards, exceptions, responses and …
ronihdzz May 16, 2025
df398a6
feat: add endpoint ruy
ronihdzz May 20, 2025
53dcfd4
fix: delete test endpoint
ronihdzz May 28, 2025
37c0fe4
chore: resolve call services from swagger
ronihdzz May 28, 2025
2a88607
fix: test_openapi_schema
ronihdzz May 28, 2025
cfad3a2
Merge branch 'development' into feat/standars
ronihdzz May 28, 2025
4962478
feat: change settings internal_codes
ronihdzz May 28, 2025
95d95b7
feat: add catcher for standars errors responses
ronihdzz May 28, 2025
c8c2df1
feat: apply standars responses,exceptions,internal_codes to api
ronihdzz May 28, 2025
f158461
feat: add repositories to save data in posgresql database
ronihdzz May 28, 2025
848c69f
refactor: add services.py
ronihdzz May 28, 2025
fddce03
feat: add tests
ronihdzz May 28, 2025
3fbf2d3
Merge pull request #5 from ronihdzz/feat/standars
ronihdzz May 28, 2025
0554bef
refactor: reorganize code
ronihdzz May 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
186 changes: 186 additions & 0 deletions .github/actions/save-coverage/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
name: "Save Coverage Artifacts"
description: "Guarda los reportes de cobertura en la rama de artefactos"

inputs:
gh-token:
description: "GitHub Token para poder pushear a la rama de artefactos"
required: true
artifacts-branch:
description: "Nombre de la rama donde se subirán los artefactos (reportes de cobertura, etc.)"
required: false
default: "artifacts"
coverage-source:
description: "Ruta relativa al workspace donde se encuentran los reportes, o si is-artifact es true, nombre (o ruta) del archivo ZIP"
required: false
default: "coverage-reports"
is-artifact:
description: "Si es true, indica que el reporte viene de un artifact y se debe descargar; en caso contrario se copiará la carpeta directamente"
required: false
default: "false"

runs:
using: "composite"
steps:
# ----------------------------------------------------------------------------------------
# Paso 1: Hacer checkout del código en la carpeta "action-repo"
# ----------------------------------------------------------------------------------------
- name: "Checkout code"
uses: actions/checkout@v3
with:
path: "action-repo"

# ----------------------------------------------------------------------------------------
# Paso 2A (si is-artifact es true): Descargar el artifact de cobertura
# ----------------------------------------------------------------------------------------
- name: "Descargar artifact de cobertura"
if: ${{ inputs.is-artifact == 'true' }}
uses: actions/download-artifact@v4
with:
name: ${{ inputs.coverage-source }}
path: downloaded-coverage

# ----------------------------------------------------------------------------------------
# Paso 2B: Verificar el contenido de la cobertura
# - Si is-artifact es true se revisa "downloaded-coverage".
# - Si is-artifact es false se revisa el folder "coverage-source" directamente.
# ----------------------------------------------------------------------------------------
- name: "Verificar artifact descargado de cobertura"
if: ${{ inputs.is-artifact == 'true' }}
shell: bash
env:
WORKSPACE_PATH: ${{ github.workspace }}
run: |
set -e
echo "▶️ Verificando artifact descargado..."
cd "${WORKSPACE_PATH}/downloaded-coverage"
if [ ! "$(ls -A .)" ]; then
echo "❌ Error: La carpeta 'downloaded-coverage' está vacía."
exit 1
fi
echo "✅ Artifact descargado y contiene archivos. Listando contenido:"
ls -lahR .
echo "REPORTS_PATH=${WORKSPACE_PATH}/downloaded-coverage" >> "$GITHUB_ENV"

- name: "Verificar carpeta de cobertura"
if: ${{ inputs.is-artifact != 'true' }}
shell: bash
env:
WORKSPACE_PATH: ${{ github.workspace }}
REPORTS_PATH: ${{ inputs.coverage-source }}
run: |
set -e
echo "▶️ Verificando la carpeta de cobertura..."
cd "${WORKSPACE_PATH}"
echo "🔍 Revisando la carpeta '${REPORTS_PATH}' en '${WORKSPACE_PATH}'"
if [ ! -d "${REPORTS_PATH}" ]; then
echo "❌ Error: La carpeta '${WORKSPACE_PATH}/${REPORTS_PATH}' no existe."
exit 1
fi
FILE_COUNT=$(find "${REPORTS_PATH}" | wc -l)
if [ "${FILE_COUNT}" -le 1 ]; then
echo "❌ Error: La carpeta '${WORKSPACE_PATH}/${REPORTS_PATH}' está vacía."
exit 1
fi
echo "✅ La carpeta '${REPORTS_PATH}' existe y contiene archivos. Listando contenido:"
ls -lahR "${REPORTS_PATH}"
echo "REPORTS_PATH=${WORKSPACE_PATH}/${REPORTS_PATH}" >> "$GITHUB_ENV"

# ----------------------------------------------------------------------------------------
# Paso 3: Clonar (o crear) la rama de artefactos en la carpeta "artifacts-repo"
# ----------------------------------------------------------------------------------------
- name: "Clonar o crear la rama de artefactos"
shell: bash
env:
GH_TOKEN: ${{ inputs.gh-token }}
COMMIT_ID: ${{ github.sha }}
BRANCH_NAME: ${{ github.ref_name }}
REPO_NAME: ${{ github.repository }}
ARTIFACTS_BRANCH: ${{ inputs.artifacts-branch }}
WORKSPACE_PATH: ${{ github.workspace }}
run: |
set -e
echo "▶️ Iniciando clonación o creación de la rama '${ARTIFACTS_BRANCH}'"
# Configurar Git
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git config --global user.name "github-actions[bot]"
git config --global init.defaultBranch "${ARTIFACTS_BRANCH}"

echo "🔎 Verificando si la rama '${ARTIFACTS_BRANCH}' ya existe en remoto"
BRANCH_EXISTS=$(git ls-remote --heads "https://x-access-token:${GH_TOKEN}@github.com/${REPO_NAME}.git" "${ARTIFACTS_BRANCH}")

if [ -n "${BRANCH_EXISTS}" ]; then
echo "✅ La rama '${ARTIFACTS_BRANCH}' existe. Clonándola en la carpeta 'artifacts-repo'."
git clone --branch "${ARTIFACTS_BRANCH}" --single-branch "https://x-access-token:${GH_TOKEN}@github.com/${REPO_NAME}.git" "artifacts-repo"
else
echo "🆕 La rama '${ARTIFACTS_BRANCH}' NO existe. Creándola como rama huérfana."
mkdir -p "artifacts-repo"
cd "artifacts-repo"
git init
git checkout --orphan "${ARTIFACTS_BRANCH}"
git commit --allow-empty -m "Commit inicial para la rama ${ARTIFACTS_BRANCH}"
git remote add origin "https://x-access-token:${GH_TOKEN}@github.com/${REPO_NAME}.git"
git push --set-upstream origin "${ARTIFACTS_BRANCH}"
cd ..
fi
echo "📁 Directorio final: $(pwd). Si existe 'artifacts-repo', se clonó o se inicializó."

# ----------------------------------------------------------------------------------------
# Paso 4: Copiar los reportes de cobertura desde la carpeta REPORTS_PATH (descargada o local)
# a 'artifacts-repo' y hacer commit de los artefactos.
# ----------------------------------------------------------------------------------------
- name: "Copiar cobertura y hacer commit"
shell: bash
env:
GH_TOKEN: ${{ inputs.gh-token }}
COMMIT_ID: ${{ github.sha }}
BRANCH_NAME: ${{ github.ref_name }}
REPO_NAME: ${{ github.repository }}
ARTIFACTS_BRANCH: ${{ inputs.artifacts-branch }}
WORKSPACE_PATH: ${{ github.workspace }}
run: |
set -e
# Verificar que la variable REPORTS_PATH esté definida (desde pasos anteriores)
if [ -z "${REPORTS_PATH}" ]; then
echo "❌ Error: La variable REPORTS_PATH no está definida."
exit 1
fi
echo "Usando REPORTS_PATH=${REPORTS_PATH}"

# Ubicarnos en la carpeta clonada de la rama de artefactos
if [ -d "artifacts-repo" ]; then
cd "artifacts-repo"
else
echo "⚠️ No se encontró 'artifacts-repo'. Revisar si hubo error previo en la clonación."
exit 1
fi

echo "▶️ Creando directorios para guardar la cobertura en 'artifacts-repo'."
mkdir -p "${BRANCH_NAME}/${COMMIT_ID}"
mkdir -p "${BRANCH_NAME}/latest"

echo "🔀 Regresando a '${WORKSPACE_PATH}' para copiar la cobertura."
cd "${WORKSPACE_PATH}"

echo "📂 Copiando contenido de '${REPORTS_PATH}' a 'artifacts-repo/${BRANCH_NAME}/${COMMIT_ID}'"
cp -r "${REPORTS_PATH}/." "${WORKSPACE_PATH}/artifacts-repo/${BRANCH_NAME}/${COMMIT_ID}/"
cp -r "${REPORTS_PATH}/." "${WORKSPACE_PATH}/artifacts-repo/${BRANCH_NAME}/latest/"

echo "✅ Cobertura copiada. Preparando commit..."
cd "${WORKSPACE_PATH}/artifacts-repo"

echo "📝 Creando (o editando) README.md"
echo "# Repositorio de Artefactos" > README.md
echo "" >> README.md
echo "Contiene reportes de test y otros artefactos del proyecto." >> README.md

echo "📦 Agregando todos los cambios al staging."
git add .

COMMIT_MESSAGE="Agregar artefactos y README para commit ${COMMIT_ID} en la rama ${BRANCH_NAME}"
echo "📦 Haciendo commit con mensaje: '${COMMIT_MESSAGE}'"
git commit -m "${COMMIT_MESSAGE}" || echo "⚠️ No hay cambios nuevos que comitear."

echo "🚀 Haciendo push a la rama '${ARTIFACTS_BRANCH}'"
git push origin "${ARTIFACTS_BRANCH}"

echo "✅ Artefactos subidos exitosamente a la rama '${ARTIFACTS_BRANCH}'."
Loading