semantic-release-sentry-releases
v2.0.1
Published
semantic-release plugin to create releases in sentry
Downloads
2,028
Maintainers
Readme
semantic-release-sentry-releases
semantic-release plugin to create releases in sentry
| Step | Description |
| ------------------ | ------------------------------------------------------------------------------------------------------ |
| verifyConditions
| Verify the presence of the SENTRY_AUTH_TOKEN
SENTRY_ORG
and SENTRY_PROJECT
environment variable. |
| publish
| Create release and deploy in sentry project. |
Install
npm i -D semantic-release-sentry-releases
Usage
The plugin can be configured in the semantic-release configuration file:
{
"plugins": [
"@semantic-release/changelog",
"@semantic-release/npm",
"@semantic-release/git",
"@semantic-release/gitlab",
"semantic-release-sentry-releases"
]
}
Configuration
Environment variables
| Variable | Description |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| SENTRY_AUTH_TOKEN
| The authentication token with permission for releases created in profile or as internal integration in developer settings of organization. Need scopes release:admin
. Optional org:read
to get valid repository name from sentry integration |
| SENTRY_ORG
| The slug of the organization. |
| SENTRY_PROJECT
| The slug of the project. |
| SENTRY_URL
| The URL to use to connect to sentry. This defaults to https://sentry.io/. |
| SENTRY_ENVIRONMENT
| The environment to specify with this release. This defaults to production. |
| DEPLOY_START
| Sentry deploy start timestamp. Optional for deploy |
| DEPLOY_END
| Sentry deploy end timestamp. Optional for deploy |
Options
| Variable | Description |
| --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| project
| The slug of the project. Optional. Required if not present in environment variables |
| org
| The slug of the organization. Optional. Required if not present in environment variables |
| url
| The URL to use to connect to sentry. Optional to set an on-premise instance |
| repositoryUrl
| A valid repository name for add link to commits of new release in sentry format. Optional. Ex: 'myorg / myapp'. Default repository property in package.json, or git origin url. Try recovery repository name from sentry api https://docs.sentry.io/api/organizations/list-an-organizations-repositories/ |
| tagsUrl
| A valid url for add link to new release. Optional. Ex: https://github.com/owner/repo/releases/tag/vx.y.z |
| environment
| Sentry environment. Optional for deploy. Default production |
| deployName
| Deploy name. Optional for deploy |
| deployUrl
| Deploy url. Optional for deploy |
| sourcemaps
| Directory with sourcemaps. Example dist
. Optional for upload sourcemaps |
| urlPrefix
| URL prefix for sourcemaps. Example ~/dist
. Optional for upload sourcemaps |
| rewrite
| Boolean to indicate rewrite sourcemaps. Default false
. Optional for upload sourcemaps |
| releasePrefix
| String that is passed as prefix to the sentry release. Optional to fix the problem that releases are associated with the organization instead of the project (Read More). Ex: releasePrefix:"web1"
would resolve only the sentry release to [email protected]
. Important Notice: when you use this feature you also have to change the release name in your sentry client app. |
| pathToGitFolder
| Path to .git
folder, relative to the current working directory. Optional. Defaults to current working directory |
Examples
{
"plugins": [
"@semantic-release/changelog",
"@semantic-release/npm",
"@semantic-release/git",
"@semantic-release/gitlab",
[
"semantic-release-sentry-releases",
{
"repositoryUrl": "myorg / myapp",
"tagsUrl": "https://github.com/owner/repo/releases/tag/"
}
]
]
}
Upload sourcemaps
{
"plugins": [
"@semantic-release/changelog",
"@semantic-release/npm",
"@semantic-release/git",
"@semantic-release/gitlab",
[
"@semantic-release/exec",
{
"prepareCmd": "npm run build"
}
],
[
"semantic-release-sentry-releases",
{
"repositoryUrl": "myorg / myapp",
"tagsUrl": "https://github.com/owner/repo/releases/tag/",
"sourcemaps": "dist",
"urlPrefix": "~/dist"
}
]
]
}
# .gitlab-ci.yml
release:
image: node:alpine
stage: release
script:
- npx semantic-release
only:
- master
# .travis.yml
language: node_js
cache:
directories:
- ~/.npm
node_js:
- '18'
stages:
- test
- name: deploy
if: branch = master
jobs:
include:
- stage: test
script: npm t
- stage: deploy
script: npx semantic-release