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. |
npm i -D semantic-release-sentry-releases
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"
]
}
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 |
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 |
{
"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/"
}
]
]
}
{
"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