Integración con GitHub Actions
Con el complemento Allure Report para GitHub Actions, puedes generar automáticamente informes de prueba y publicarlos en GitHub Pages.
Para habilitar el soporte de Allure en tu instalación de Bamboo, realiza lo siguiente bajo la cuenta de administrador del repositorio:
- agregar acciones para generar y publicar informes.
- habilitar acceso de escritura para las ejecuciones del flujo de trabajo,
- configurar la publicación en GitHub Pages.
1. Agregar acciones para generar y publicar informes
Al final del flujo de trabajo de pruebas de tu repositorio, agrega tres nuevos pasos que cargarán el historial de informes de prueba, generarán el informe de prueba y publicarán el informe de prueba.
A continuación se muestran más detalles sobre cada paso y sus parámetros.
Details
Aquí tienes un ejemplo completo de un archivo de flujo de trabajo para un proyecto en Java. El ejemplo asume que la rama utilizada para GitHub Pages se llama gh-pages
.
name: Ejecutar pruebas y publicar informe
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Configurar JDK
uses: actions/setup-java@v3
with:
distribution: zulu
java-version: 17
- name: Ejecutar pruebas
run: ./gradlew clean test
- name: Cargar historial de informes de prueba
uses: actions/checkout@v3
if: always()
continue-on-error: true
with:
ref: gh-pages
path: gh-pages
- name: Generar informe de prueba
uses: simple-elf/[email protected]
if: always()
with:
gh_pages: gh-pages
allure_history: allure-history
allure_results: build/allure-results
- name: Publicar informe de prueba
uses: peaceiris/actions-gh-pages@v3
if: always()
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_branch: gh-pages
publish_dir: allure-history
Cargar historial de informes de prueba
Como se discute en Historial de pruebas, Allure Report puede incluir algunos datos de informes anteriores en cada nuevo informe. Para hacerlo, debes proporcionarle los archivos publicados en GitHub Pages por ejecuciones anteriores. Este paso lo realiza mediante un git checkout
desde la rama utilizada para el contenido de GitHub Pages.
En el archivo del flujo de trabajo, establece los siguientes valores para este paso:
name
: cualquier nombre legible para los humanos, por ejemplo, "Cargar historial de informes de prueba".uses
:actions/checkout@v2
.if
:always()
.continue-on-error
:true
.with
:ref
: la rama utilizada para el contenido de GitHub Pages.path
: un nombre arbitrario para un directorio al que se guardarán los datos anteriores.
Generar informe de prueba
Este paso ejecuta la utilidad Allure Report para generar un informe HTML, basado en los datos de las ejecuciones actuales y anteriores de las pruebas. El nuevo informe, junto con las copias de los informes anteriores, se guardará en el directorio especificado en allure_history
, listo para ser publicado en GitHub Pages.
En el archivo del flujo de trabajo, establece los siguientes valores para este paso:
name
: cualquier nombre legible para los humanos, por ejemplo, "Generar informe de prueba".uses
:simple-elf/[email protected]
.if
:always()
.with
:gh_pages
: el nombre del directorio en el que se descargaron los datos anteriores. Debe ser el mismo que el valor depath
del paso Cargar historial de informes de prueba.allure_results
: ruta al directorio actual de resultados de prueba. Dependiendo del marco que uses y la configuración del adaptador de Allure, una ruta apropiada puede serallure-results
,build/allure-results
, o alguna ruta personalizada.allure_history
: un nombre arbitrario para un directorio al que se guardará el resultado.
Publicar informe de prueba
El último paso del flujo de trabajo enviará el directorio generado a la rama utilizada para GitHub Pages. Se supone que esto activará una segunda ejecución del flujo de trabajo, llamada "páginas de construcción y despliegue", que, a su vez, actualizará el contenido real en el dominio de GitHub Pages. (Consulta Configurar publicación en GitHub Pages más abajo).
En el archivo del flujo de trabajo, establece los siguientes valores para este paso:
name
: cualquier nombre legible para los humanos, por ejemplo, "Publicar informe de prueba".uses
:peaceiris/actions-gh-pages@v3
.if
:always()
.with
:github_token
:${{ secrets.GITHUB_TOKEN }}
. Consulta Habilitar acceso de escritura para GitHub Actions para más detalles.publish_branch
: la rama utilizada para el contenido de GitHub Pages.publish_dir
: el directorio que se publicará. Debe ser el mismo que el valor deallure_history
del paso Generar informe de prueba.
2. Habilitar acceso de escritura para las ejecuciones del flujo de trabajo
Al enviar archivos a la rama de GitHub Pages, el flujo de trabajo utiliza un token de autenticación generado por GitHub. Sin embargo, la configuración predeterminada no permite que GitHub Actions envíe archivos al repositorio, y puedes encontrar errores como este en los registros de la ejecución del flujo de trabajo:
remote: Permission to ⟨USER⟩/⟨REPOSITORY⟩.git denied to github-actions[bot].
fatal: unable to access 'https://github.com/⟨USER⟩/⟨REPOSITORY⟩.git/':
The requested URL returned error: 403
Para solucionar esto, debes otorgar permisos de escritura al token.
En la página del proyecto en GitHub, ve a Settings → Actions → General.
En la sección Workflow permissions, selecciona la opción Read and write permissions.
Haz clic en Save.
3. Configurar publicación en GitHub Pages
Después de ejecutar el flujo de trabajo por primera vez, enviará el informe de prueba a una rama, pero no lo publicará realmente. Para que el informe se publique, debes habilitar la configuración de un segundo flujo de trabajo automático.
Asegúrate de que la rama con el contenido exista (
gh-pages
en el ejemplo anterior).En la página del proyecto en GitHub, ve a Settings → Pages.
En la sección Build and deployment, especifica las opciones:
- Source: “Deploy from a branch”.
- Branch: la rama utilizada para el contenido de GitHub Pages. En la siguiente lista desplegable, selecciona “/ (root)”.
Haz clic en Save.
Ve a la pestaña Actions.
Asegúrate de que se haya creado automáticamente la ejecución del flujo de trabajo llamada “pages build and deployment”.
Una vez que la ejecución se haya completado, el informe de prueba debería aparecer en el dominio de GitHub Pages.