From 015d4ae309fe260dd63cf533dfc77a6d8ab94992 Mon Sep 17 00:00:00 2001 From: github-actions Date: Sun, 1 Dec 2024 09:11:45 +0000 Subject: [PATCH] Site update at 2024-12-01T09:11:45+0000 --- .../index.html | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/2024/03/construyendo-un-pipeline-de-cicd-con-github-actions/index.html b/2024/03/construyendo-un-pipeline-de-cicd-con-github-actions/index.html index 127ea89f15..e81a9dc0b0 100644 --- a/2024/03/construyendo-un-pipeline-de-cicd-con-github-actions/index.html +++ b/2024/03/construyendo-un-pipeline-de-cicd-con-github-actions/index.html @@ -61,7 +61,7 @@ "dateModified": "2024-11-30T22:00:00+01:00", "inLanguage": "es", - "wordCount": "8922", + "wordCount": "8986", "license": "https://creativecommons.org/licenses/by-sa/4.0/", "author": { "@type": "Person", @@ -411,6 +411,12 @@

El workflow de la fase d .github/workflows/build-release-dockerfile.yml +
+
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
FROM ubuntu:24.04 AS build

ARG ARTIFACT
ARG ARTIFACT_NAME

RUN apt update \
    && apt install unzip

RUN mkdir /app/
COPY ${ARTIFACT} /app/
RUN unzip -d /app/ /app/${ARTIFACT_NAME}-*.zip \
    && rm /app/${ARTIFACT_NAME}-*.zip \
    && mv /app/${ARTIFACT_NAME}-* /app/${ARTIFACT_NAME}

RUN ls -l /app/

FROM eclipse-temurin:21-jdk

ARG USERNAME=stubhub
ARG GROUP_NAME=${USERNAME}
ARG USER_UID=2000
ARG USER_GID=${USER_UID}

RUN groupadd --gid ${USER_GID} ${GROUP_NAME} \
    && useradd --uid ${USER_UID} --gid ${USER_GID} ${USERNAME}

RUN mkdir /app/
COPY --from=build /app/ /app/

USER ${USERNAME}
EXPOSE 8080

CMD ["/app/platform-github-actions-workflows-gradle-app/bin/app"]
+
+ miscellaneous/docker/Dockerfile +
+

El workflow de la fase de deploy

Al igual que el workflow de release no se compone de un único workflow sino de varios para segregar en función del runtime de ejecución, segregar en varios workflows tiene la ventaja de que la cantidad de inputs que recibe son menores lo que facilita su uso y complejidad. La fase de deploy ha de desplegar el artefacto en el entorno de ejecución o runtime que necesite el servicio, puede ser un servicio que hace uso de GKE, de GAE o un Google Function. Hay dos entornos el de desarrollo y el de producción, con reglas para requerir aprobaciones para hacer el despliegue que se han de configurar en cada repositorio.

Varios de los siguientes steps del workflow tienen if condicionales en función de sus condiciones. Añadir un nuevo entorno de ejecución sería añadir un nuevo workflow con sus steps específicos para ese entorno y varios steps iguales que el resto de entorno. Tanto el workflow de build como el de deploy reciben una buena cantidad de parámetros con la que configurar el comportamiento del workflow.