Complemento de lanzamiento semántico para publicar una versión de GitLab.
Paso | Descripción |
---|---|
verifyConditions | Verifique la presencia y la validez de la autenticación (establecida mediante variables de entorno). |
publish | Publicar una versión de GitLab. |
success | Agregue un comentario a cada problema de GitLab o solicitud de fusión resuelta por la versión. |
fail | Abra o actualice un problema de GitLab con información sobre los errores que provocaron que fallara la versión. |
$ npm install @semantic-release/gitlab -D
El complemento se puede configurar en el archivo de configuración de versión semántica :
{
"branches" : [ " main " ],
"plugins" : [
" @semantic-release/commit-analyzer " ,
" @semantic-release/release-notes-generator " ,
[
" @semantic-release/gitlab " ,
{
"gitlabUrl" : " https://custom.gitlab.com " ,
"assets" : [
{ "path" : " dist/asset.min.css " , "label" : " CSS distribution " },
{ "path" : " dist/asset.min.js " , "label" : " JS distribution " , "target" : " generic_package " },
{ "path" : " dist/asset.min.js " , "label" : " v${nextRelease.version}.js " },
{ "url" : " https://gitlab.com/gitlab-org/gitlab/-/blob/master/README.md " }
]
}
]
]
}
En este ejemplo, las versiones de GitLab se publicarán en la instancia https://custom.gitlab.com
.
La configuración de autenticación de GitLab es obligatoria y se puede configurar mediante variables de entorno.
Cree un token de acceso al proyecto, un token de acceso grupal o un token de acceso personal con el rol de Desarrollador (o superior) y el alcance api
y póngalo a disposición en su entorno de CI a través de la variable de entorno GL_TOKEN
. Si está utilizando GL_TOKEN
como autenticación del repositorio Git remoto, también debe tener el alcance write_repository
.
Nota : Cuando se ejecuta con dryRun
solo se requiere el alcance read_repository
.
Variable | Descripción |
---|---|
GL_TOKEN o GITLAB_TOKEN | Requerido. El token utilizado para autenticarse con GitLab. |
GL_URL o GITLAB_URL | El punto final de GitLab. |
GL_PREFIX o GITLAB_PREFIX | El prefijo de la API de GitLab. |
HTTP_PROXY o HTTPS_PROXY | Proxy HTTP o HTTPS a utilizar. |
NO_PROXY | Patrones para los cuales se debe ignorar el proxy. Vea los detalles a continuación. |
El complemento admite el paso de solicitudes a través de un servidor proxy.
Puede configurar un servidor proxy a través de la variable de entorno HTTPS_PROXY
: HTTPS_PROXY=http://proxyurl.com:8080
Si su servidor proxy requiere autenticación, inserte el nombre de usuario y la contraseña en la URL: HTTPS_PROXY=http://user:[email protected]:8080
Si su instancia de GitLab está expuesta a través de HTTP simple (¡no recomendado!), use HTTP_PROXY
en su lugar.
Si necesita omitir el proxy para algunos hosts, configure la variable de entorno NO_PROXY
: NO_PROXY=*.host.com, host.com
Opción | Descripción | Por defecto |
---|---|---|
gitlabUrl | El punto final de GitLab. | Variable de entorno GL_URL o GITLAB_URL o variables de entorno proporcionadas por CI si se ejecuta en GitLab CI/CD o https://gitlab.com . |
gitlabApiPathPrefix | El prefijo de la API de GitLab. | Variable de entorno GL_PREFIX o GITLAB_PREFIX o variables de entorno proporcionadas por CI si se ejecuta en GitLab CI/CD o /api/v4 . |
assets | Una serie de archivos para cargar en la versión. Ver activos. | - |
milestones | Una variedad de títulos de hitos para asociar al lanzamiento. Consulte la API de lanzamiento de GitLab. | - |
successComment | El comentario que se agregará a cada problema y solicitud de fusión resueltos por la versión. Ver comentario de éxito. | ? ¿Este problema se resolvió en la versión ${nextRelease.version}?nnLa versión está disponible en GitLab |
successCommentCondition | Utilice esto como condición para comentar problemas o solicitudes de fusión. Consulte condición de comentario de éxito. | - |
failComment | El contenido del problema creado cuando falla una versión. Ver comentario fallido. | Mensaje amigable con enlaces a documentación y soporte de lanzamiento semántico , con la lista de errores que causaron que el lanzamiento fallara. |
failTitle | El título del problema creado cuando falla una versión. | The automated release is failing |
failCommentCondition | Utilice esto como condición para comentar o crear problemas en caso de fallas. Consulte condición de comentario de error. | - |
labels | Las etiquetas que se agregarán al problema creado cuando falla una versión. Establezca en false para no agregar ninguna etiqueta. Las etiquetas deben estar separadas por comas como se describe en los documentos oficiales, por ejemplo, "semantic-release,bot" . | semantic-release |
assignee | El cesionario que se agregará al problema creado cuando falla una versión. | - |
Puede ser un globo o Array
de globos y Object
con las siguientes propiedades:
Propiedad | Descripción | Por defecto |
---|---|---|
path | Obligatorio , a menos que se establezca url . Un globo para identificar los archivos a cargar. Admite plantillas Lodash. | - |
url | Como alternativa a configurar path esto proporciona la posibilidad de agregar enlaces a lanzamientos, por ejemplo, URL a imágenes de contenedores. Admite plantillas Lodash. | - |
label | Breve descripción del archivo que se muestra en la versión de GitLab. Se ignora si path coincide con más de un archivo. Admite plantillas Lodash. | Nombre del archivo extraído de la path . |
type | Tipo de activo que se muestra en la versión de GitLab. Puede ser runbook , package , image y other (consulte los documentos oficiales sobre los activos de lanzamiento). Admite plantillas Lodash. | other |
filepath | Una ruta de archivo para crear un enlace permanente que apunte al activo (requiere GitLab 12.9+, consulte los documentos oficiales sobre enlaces permanentes). Se ignora si path coincide con más de un archivo. Admite plantillas Lodash. | - |
target | Controla dónde se carga el archivo. Se puede configurar en project_upload para almacenar el archivo como carga del proyecto o generic_package para almacenar el archivo como paquete genérico. | project_upload |
status | Esto solo se aplica si target está establecido en generic_package . El estado del paquete genérico. Puede ser default y hidden (consulte los documentos oficiales sobre paquetes genéricos). | default |
Cada entrada en la Array
assets
se agrupa individualmente. Un globo puede ser una String
( "dist/**/*.js"
o "dist/mylib.js"
) o una Array
de String
que se agruparán juntas ( ["dist/**", "!**/*.css"]
).
Si se configura un directorio, se incluirán todos los archivos de este directorio y sus hijos.
Nota : Si un archivo tiene una coincidencia en assets
se incluirá incluso si también tiene una coincidencia en .gitignore
.
'dist/*.js'
: incluye todos los archivos js
en el directorio dist
, pero no en sus subdirectorios.
[['dist', '!**/*.css']]
: incluye todos los archivos en el directorio dist
y sus subdirectorios excluyendo los archivos css
.
[{path: 'dist/MyLibrary.js', label: 'MyLibrary JS distribution'}, {path: 'dist/MyLibrary.css', label: 'MyLibrary CSS distribution'}]
: incluye dist/MyLibrary.js
y dist/MyLibrary.css
y etiquételos como MyLibrary JS distribution
y MyLibrary CSS distribution
en la versión de GitLab.
[['dist/**/*.{js,css}', '!**/*.min.*'], {path: 'build/MyLibrary.zip', label: 'MyLibrary'}]
: incluir todos los archivos js
y css
en el directorio dist
y sus subdirectorios excluyendo la versión minimizada, además del archivo build/MyLibrary.zip
y etiquételo MyLibrary
en la versión de GitLab.
El mensaje para los comentarios del problema se genera con la plantilla Lodash. Las siguientes variables están disponibles:
Parámetro | Descripción |
---|---|
branch | Object con name , type , channel , range y propiedades prerelease de la rama desde la que se realiza el lanzamiento. |
lastRelease | Object con version , channel , gitTag y gitHead de la última versión. |
nextRelease | Object con version , channel , gitTag , gitHead y notes del lanzamiento que se está realizando. |
commits | Array de Object de confirmación con hash , subject , body message y author . |
releases | Array con Object de lanzamiento para cada lanzamiento publicado, con datos de lanzamiento opcionales como name y url . |
issue | Un objeto de problema de API de GitLab en el que se publicará el comentario, o false al comentar solicitudes de fusión. |
mergeRequest | Un objeto de solicitud de fusión de API de GitLab en el que se publicará el comentario, o false al comentar problemas. |
La condición de comentario de éxito se genera con la plantilla Lodash. Las siguientes variables están disponibles:
Parámetro | Descripción |
---|---|
branch | Object con name , type , channel , range y propiedades prerelease de la rama desde la que se realiza el lanzamiento. |
lastRelease | Object con version , channel , gitTag y gitHead de la última versión. |
nextRelease | Object con version , channel , gitTag , gitHead y notes del lanzamiento que se está realizando. |
commits | Array de Object de confirmación con hash , subject , body message y author . |
releases | Array con Object de lanzamiento para cada lanzamiento publicado, con datos de lanzamiento opcionales como name y url . |
issue | Un objeto de problema de API de GitLab en el que se publicará el comentario. |
mergeRequest | Un objeto de solicitud de fusión de API de GitLab en el que se publicará el comentario. |
false
o plantilla: "<% return false; %>"
"<% return issue %>"
"<% return mergeRequest %>"
"<% return issue.labels?.includes('semantic-release-relevant') %>"
verifique el objeto Solicitud de fusión de API de GitLab o el objeto Problema de API de GitLab para conocer las propiedades que se pueden usar para el filtro
El mensaje para el contenido del problema se genera con la plantilla Lodash. Las siguientes variables están disponibles:
Parámetro | Descripción |
---|---|
branch | La rama desde la que falló la liberación. |
errors | Una Array de SemanticReleaseError. Cada error tiene las propiedades message , code , pluginName y details .pluginName contiene el nombre del paquete del complemento que generó el error.details contienen información sobre el error formateado en Markdown. |
El failComment
This release from branch ${branch.name} had failed due to the following errors:n- ${errors.map(err => err.message).join('\n- ')}
generará el comentario:
Esta versión del maestro de sucursal falló debido a los siguientes errores:
- Mensaje de error 1
- Mensaje de error 2
La condición de comentario fallido se genera con la plantilla Lodash. Las siguientes variables están disponibles:
Parámetro | Descripción |
---|---|
branch | Object con name , type , channel , range y propiedades prerelease de la rama desde la que se realiza el lanzamiento. |
lastRelease | Object con version , channel , gitTag y gitHead de la última versión. |
nextRelease | Object con version , channel , gitTag , gitHead y notes del lanzamiento que se está realizando. |
commits | Array de Object de confirmación con hash , subject , body message y author . |
releases | Array con Object de lanzamiento para cada lanzamiento publicado, con datos de lanzamiento opcionales como name y url . |
issue | Un objeto de problema de API de GitLab en el que se publicará el comentario; solo está disponible si existe un problema abierto. |
false
o plantilla: "<% return false; %>"
"<% return branch.name === 'main' %>"
wip
: "<% return !issue.labels?.includes('wip') %>"
verifique el objeto Problema de API de GitLab para ver las propiedades que se pueden usar para el filtro
La última versión de este complemento es compatible con todas las versiones actualmente compatibles de GitLab, que es la versión principal actual y las dos versiones principales anteriores. No se garantiza que este complemento funcione con versiones no compatibles de GitLab.
Si está utilizando GitLab.com o ha actualizado su instancia de GitLab autohospedada a 14.0, utilice la versión >=6.0.7
de este complemento.
En GitLab 14.0, se eliminó la creación de una versión utilizando la API de etiquetas (consulte # 290311). Este complemento se actualizó para usar la API de versiones en el n.° 184, que está disponible en la versión 6.0.7
y posteriores.