Entrega una ejecución específica

JenkinsBeginner
Practicar Ahora

Introducción

Walk Weekender ha confirmado una edición de su paquete para visitantes de Riverwalk Saturday. Un borrador posterior también se ha generado correctamente. El trabajo de entrega debe recuperar el paquete confirmado de su ejecución existente de Jenkins, sin reconstruirlo ni depender de un espacio de trabajo que ya se ha vaciado.

Este laboratorio presupone los conceptos de archivado, limpieza del espacio de trabajo y huellas digitales enseñados en Conserva un paquete descargable para un evento, además de conocimientos básicos de navegación en Jenkins y extracción de ZIP. Esta unidad comienza de forma independiente: su historial de origen, el paquete anterior actualmente publicado y el trabajo de entrega ya están preparados. No necesitas archivos ni una máquina virtual en ejecución del laboratorio anterior.

Usa Pack Desk para inspeccionar los archivos reales para visitantes y Jenkins para inspeccionar y configurar trabajos. Son dos servicios en una misma máquina virtual preparada. El complemento Copy Artifact ya está disponible. El publicador proporcionado es un pequeño receptor local de prácticas que comprueba esta solicitud; no es un registro de artefactos de producción ni un servicio de aprobación. Seleccionarás una ejecución ya confirmada, no implementarás un proceso de aprobación. La duración es una estimación del autor, no un tiempo medido con principiantes.

Compara la solicitud con el paquete copiado

En este paso identificarás la ejecución de origen confirmada y después observarás cómo un trabajo de entrega copia una edición diferente. Empieza en Pack Desk.

Lee Requested edition: RW-02. La actividad es Riverwalk Saturday y el trabajo de origen es create-riverwalk-pack. Selecciona Open the current pack. La edición actual es RW-01, con una hora de encuentro de 10:30. El paquete solicitado debe sustituir esta edición anterior mientras el paquete independiente de Parkside sigue disponible. Usa la acción Back del navegador para volver al escritorio.

Cambia a Jenkins, abre create-riverwalk-pack e inspecciona sus ejecuciones numeradas en Builds. Los números de ejecución pertenecen a un trabajo; un número por sí solo no es una identidad global de artefacto. Abre Console Output de cada ejecución para leer la edición preparada para visitantes y el resultado final. El historial contiene:

Ejecución Edición para visitantes Resultado Significado para esta solicitud
#1 Parkside Paper Trail / PP-01 SUCCESS Una actividad diferente
#2 Riverwalk Saturday / RW-02 SUCCESS El paquete confirmado existente
#3 Riverwalk Saturday / RW-03-DRAFT SUCCESS Un borrador más reciente, no el solicitado
#4 Riverwalk Saturday / RW-02 FAILURE Una ejecución fallida, aunque conservó un ZIP

Abre la ejecución #2 mediante su enlace en la ruta de navegación, descarga event-pack.zip en Build Artifacts y extrae el archivo comprimido completo. Su resumen y sus notas muestran RW-02 y 10:00. Su consola termina con la limpieza del espacio de trabajo. El archivo comprimido pertenece a la ejecución, por lo que el trabajo de entrega puede recuperarlo después de esa limpieza.

Conserva este historial de origen existente. No configures, vuelvas a ejecutar, elimines ni cambies el nombre de los trabajos de origen ni de sus ejecuciones. Solo están dentro del alcance el Pipeline deliver-riverwalk-pack y sus parámetros de ejecución. Conserva los archivos, el publicador, el archivado y la limpieza proporcionados, y deja intacto el paquete independiente de Parkside.

Usa el enlace Dashboard de la ruta de navegación, abre deliver-riverwalk-pack y selecciona Configure y la sección Pipeline. Lee la etapa Copy archive sin cambiarla todavía:

copyArtifacts projectName: params.SOURCE_JOB,
    selector: lastSuccessful(),
    filter: 'event-pack.zip',
    fingerprintArtifacts: true

copyArtifacts recupera artefactos conservados de otro trabajo de Jenkins. projectName selecciona ese trabajo; params.SOURCE_JOB lee el valor introducido para esta ejecución de entrega. filter elige archivos dentro de su archivo comprimido. El selector decide qué ejecución numerada de origen utilizar. lastSuccessful() es una selección variable: significa la última ejecución correcta en el momento en que se realiza la copia, no la edición de tu solicitud. fingerprintArtifacts: true registra el uso del archivo para rastrearlo entre trabajos.

La etapa proporcionada Archive delivery conserva el ZIP copiado en la ejecución de entrega. Deliver pack envía esos mismos bytes copiados al escritorio local. La limpieza final post vacía el espacio de trabajo de entrega. Mantén esas partes sin cambios. Selecciona Save sin editar.

Selecciona Build with Parameters. Espera a que termine de cargarse el formulario. Establece SOURCE_JOB en create-riverwalk-pack y SOURCE_BUILD en 2, y selecciona Build. Estos valores describen el origen deseado; el selector actual sigue ignorando SOURCE_BUILD.

Espera a que esta ejecución de entrega termine en FAILURE y abre Console Output. Debes ver Copied 1 artifact de la ejecución de origen 3, seguido de The package bytes differ from the selected source archive. El publicador devuelve HTTP 422: se ha contactado con el servicio, pero este ha rechazado el paquete seleccionado. Esto es diferente de un fallo de conexión. El paso de shell devuelve un resultado distinto de cero, por lo que la ejecución falla.

Abre event-pack.zip de esta ejecución de entrega en Build Artifacts, extráelo en una carpeta separada y lee su resumen. Contiene RW-03-DRAFT, porque la ejecución #3 es la última ejecución de origen correcta. Un ZIP conservado y una ejecución de origen en verde no bastan para identificar la edición solicitada.

Cambia a Pack Desk, actualiza la página y abre de nuevo el paquete actual. Debe seguir mostrando RW-01 y 10:30. El intento rechazado no debe sustituir materiales válidos para los visitantes. Vuelve al escritorio con la acción Back del navegador.

Entrega y rastrea la ejecución confirmada

En este paso copiarás la ejecución confirmada explícita y verificarás los archivos entregados para visitantes y su rastro en Jenkins. Empieza en la página del trabajo deliver-riverwalk-pack en Jenkins.

Selecciona Configure y luego Pipeline. En Script, cambia únicamente:

selector: lastSuccessful(),

por:

selector: specific(params.SOURCE_BUILD),

specific(...) selecciona un número explícito de ejecución de origen. params.SOURCE_BUILD lee la cadena introducida en el formulario de ejecución; junto con SOURCE_JOB, identifica una ejecución existente. Conserva la coma: el ajuste filter que sigue pertenece a la misma operación copyArtifacts. Conserva el valor proporcionado de RECEIVER_URL, todas las demás etapas y la limpieza final.

En Script, localiza la línea del selector en Copy archive. Espera a que termine de cargarse el código y desplázate dentro del editor si es necesario. Haz doble clic en lastSuccessful para seleccionar solo ese nombre de función y escribe specific. Los paréntesis vacíos permanecen. Con el cursor inmediatamente después de specific, pulsa una vez la tecla Right Arrow para entrar en () y escribe params.SOURCE_BUILD. Comprueba la línea completa del selector mostrada arriba antes de guardar. Si sustituyes accidentalmente más texto, usa Ctrl+Z en Windows/Linux o Command+Z en macOS antes de guardar y vuelve a intentarlo. Selecciona Save.

Vuelve a ejecutar Build with Parameters. Espera a que termine de cargarse el formulario, introduce create-riverwalk-pack en SOURCE_JOB y 2 en SOURCE_BUILD, y selecciona Build. Espera a SUCCESS. Su consola debe mostrar el artefacto copiado, las acciones de archivado y registro de huellas digitales, una respuesta que contenga delivered y la limpieza final del espacio de trabajo.

Si Jenkins informa de un error de sintaxis de Groovy, vuelve a Configure y comprueba la línea del selector, los paréntesis y la coma con la sustitución exacta anterior. Guarda y vuelve a ejecutar con los mismos valores. Si la consola informa de que falta un proyecto, una ejecución o un artefacto, comprueba los dos valores del formulario y la ejecución de origen #2. No vuelvas a ejecutar el trabajo de origen para fabricar una ejecución nueva. Una respuesta que diga The selected source run does not satisfy this delivery request. significa que el trabajo o el número de ejecución son incorrectos. The package bytes differ from the selected source archive. significa que el ZIP copiado no coincide con la ejecución de origen indicada por esos parámetros. Ambos son rechazos de negocio después de contactar con el escritorio.

Abre la página de estado de la ejecución de entrega correcta y selecciona See Fingerprints. En Recorded Fingerprints, Original owner de la fila event-pack.zip debe llevar a la ejecución #2 de create-riverwalk-pack. Selecciona el enlace event-pack.zip para abrir sus detalles. El enlace a la ejecución en la que se introdujo el archivo debe identificar esa ejecución de origen, y Usage debe incluir tu ejecución correcta de deliver-riverwalk-pack. Estos son los registros de Jenkins sobre el origen y el uso del mismo archivo. No certifican quién aprobó una edición ni proporcionan una firma criptográfica de quien lo publica.

Huella digital de Jenkins que vincula la ejecución de origen original con el trabajo de entrega

Lee el enlace a la ejecución en la que se introdujo el archivo, cerca de la parte superior, y los dos trabajos en Usage. El número de tu ejecución de entrega puede ser diferente al de este ejemplo.

Descarga event-pack.zip de esta ejecución de entrega correcta. Extráelo en una carpeta nueva, abre index.html y confirma Riverwalk Saturday, RW-02 y 10:00. Abre Explore the route y comprueba las tres paradas y la imagen de la ruta renderizada. Selecciona Download all route stops para el CSV y Read the visitor notes para el texto local. Las notas pueden abrirse directamente en el navegador en lugar de iniciar otra descarga; el archivo de texto original ya está en la carpeta extraída. Mantén los ocho archivos juntos, incluido build.json, cuyos campos job y number identifican create-riverwalk-pack y 2.

Cambia a Pack Desk y actualiza la página. El paquete actual debe mostrar ahora RW-02. Ábrelo y repite las comprobaciones de la ruta, el CSV y las notas. Vuelve con la acción Back del navegador y selecciona Download the current ZIP. Esta descarga debe ser el archivo comprimido original completo del origen, no un sustituto reconstruido. El receptor compara los bytes reales antes de cambiar el paquete actual.

Por último, selecciona Parkside pack en la navegación del escritorio y confirma que Parkside Paper Trail sigue abriéndose con su ruta y sus notas. El historial de ejecuciones de origen y todos los archivos proporcionados deben permanecer intactos. Después de cualquier otra edición del Pipeline, vuelve a ejecutar el Pipeline guardado antes de comprobar que has terminado.

Resumen

Has recuperado un paquete confirmado para visitantes de una ejecución existente de Jenkins después de que se vaciara su espacio de trabajo. Has visto por qué un selector variable podía elegir un borrador generado correctamente, has utilizado un trabajo y un número de ejecución explícitos y has seguido el archivo comprimido original mediante las huellas digitales de Jenkins hasta un trabajo de entrega separado. El escritorio ahora sirve los archivos originales completos para visitantes, mientras la actividad independiente sigue disponible.