Giter Site home page Giter Site logo

arcdigital / action-sentry-release Goto Github PK

View Code? Open in Web Editor NEW

This project forked from getsentry/action-release

0.0 1.0 0.0 9.8 MB

GitHub Action for creating a release on Sentry

License: Apache License 2.0

Shell 0.31% JavaScript 1.50% TypeScript 90.74% Dockerfile 7.46%

action-sentry-release's Introduction

Sentry Release GitHub Action

NOTE: Currently only available for Linux runners. See this issue for more details.

Automatically create a Sentry release in a workflow.

A release is a version of your code that can be deployed to an environment. When you give Sentry information about your releases, you unlock a number of new features:

  • Determine the issues and regressions introduced in a new release
  • Predict which commit caused an issue and who is likely responsible
  • Resolve issues by including the issue number in your commit message
  • Receive email notifications when your code gets deployed

Additionally, releases are used for applying source maps to minified JavaScript to view original, untransformed source code. You can learn more about releases in the releases documentation.

Prerequisites

Create a Sentry Internal Integration

For this action to communicate securely with Sentry, you'll need to create a new internal integration. In Sentry, navigate to: Settings > Developer Settings > New Internal Integration.

Give your new integration a name (for example, "GitHub Action Release Integration”) and specify the necessary permissions. In this case, we need Admin access for “Release” and Read access for “Organization”.

View of internal integration permissions.

Click “Save” at the bottom of the page and grab your token, which you’ll use as your SENTRY_AUTH_TOKEN. We recommend you store this as an encrypted secret.

Usage

Adding the following to your workflow will create a new Sentry release and tell Sentry that you are deploying to the production environment.

- uses: actions/checkout@v2
- name: Create Sentry release
  uses: getsentry/action-release@v1
  env:
    SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
    SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
    SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
    # SENTRY_URL: https://sentry.io/
  with:
    environment: production

Inputs

Environment Variables

name description default
SENTRY_AUTH_TOKEN [Required] Authentication token for Sentry. See installation. -
SENTRY_ORG [Required] The slug of the organization name in Sentry. -
SENTRY_PROJECT The slug of the project name in Sentry. One of SENTRY_PROJECT or projects is required. -
SENTRY_URL The URL used to connect to Sentry. (Only required for Self-Hosted Sentry) https://sentry.io/

Parameters

name description default
environment Set the environment for this release. E.g. "production" or "staging". Omit to skip adding deploy to release. -
finalize When false, omit marking the release as finalized and released. true
ignore_missing When the flag is set and the previous release commit was not found in the repository, will create a release with the default commits count instead of failing the command. false
ignore_empty When the flag is set, command will not fail and just exit silently if no new commits for a given release have been found. false
sourcemaps Space-separated list of paths to JavaScript sourcemaps. Omit to skip uploading sourcemaps. -
started_at Unix timestamp of the release start date. Omit for current time. -
version Identifier that uniquely identifies the releases. Note: the refs/tags/ prefix is automatically stripped when version is github.ref. ${{ github.sha }}
version_prefix Value prepended to auto-generated version. For example "v". -
set_commits Specify whether to set commits for the release. Either "auto" or "skip". "auto"
projects Space-separated list of paths of projects. When omitted, falls back to the environment variable SENTRY_PROJECT to determine the project. -
url_prefix Adds a prefix to source map urls after stripping them. -
strip_common_prefix Will remove a common prefix from uploaded filenames. Useful for removing a path that is build-machine-specific. false

Examples

  • Create a new Sentry release for the production environment and upload JavaScript source maps from the ./lib directory.

    - uses: getsentry/action-release@v1
      with:
        environment: 'production'
        sourcemaps: './lib'
  • Create a new Sentry release for the production environment of your project at version v1.0.1.

    - uses: getsentry/action-release@v1
      with:
        environment: 'production'
        version: 'v1.0.1'
  • Create a new Sentry release for Self-Hosted Sentry

    - uses: getsentry/action-release@v1
      env:
        SENTRY_URL: https://sentry.example.com/

Troubleshooting

Suggestions and issues can be posted on the repository's issues page.

  • Forgetting to include the required environment variables (SENTRY_AUTH_TOKEN, SENTRY_ORG, and SENTRY_PROJECT), yields an error that looks like:

    Environment variable SENTRY_ORG is missing an organization slug
    
  • Building and running this action locally on an unsupported environment yields an error that looks like:

    Syntax error: end of file unexpected (expecting ")")
    
  • When adding the action, make sure to first checkout your repo with actions/checkout@v2. Otherwise it could fail at the propose-version step with the message:

    error: Could not automatically determine release name
    
  • In actions/checkout@v2 the default fetch depth is 1. If you're getting the error message:

    error: Could not find the SHA of the previous release in the git history. Increase your git clone depth.
    

    you can fetch all history for all branches and tags by setting the fetch-depth to zero like so:

    - uses: actions/checkout@v2
      with:
        fetch-depth: 0
    

Releases

Open a new release checklist issue and follow the steps in there.

Contributing

See the Contributing Guide.

License

See the License File.

action-sentry-release's People

Contributors

airgrim avatar armenzg avatar dependabot[bot] avatar dirkgroenen avatar jonesphillip avatar kamilogorek avatar leeandher avatar mgaeta avatar pbstriker38 avatar scefali avatar sue445 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.