github-deploy-action
github-deploy-action copied to clipboard
Github action to notify deploys to Rollbar
GitHub deploy action
A GitHub action that notifies deploys to Rollbar.
Usage
This action requires that you set the ROLLBAR_ACCESS_TOKEN environment variable with a token that must have the post_server_item scope.
You can find it under your project's settings in the Project access token section.
When notifiying deploys in two stages, for sending to Rollbar when a deploy starts and the status of its result (succeeded or failed ) you need
also to set the DEPLOY_ID environment variable with the ouput of the previous step.
Optionally set ROLLBAR_USERNAME environment variable, usernames can be found at:
https://rollbar.com/settings/accounts/YOUR_TEAM/members/
NOTE: When using
github.actoras theROLLBAR_USERNAMEensure the username in Rollbar matches your GitHub username. If your Rollbar usernames don't match GitHub usernames, you may want to instead set thelocal_usernameinput.
Inputs
| Input | Required | Default | Description |
|---|---|---|---|
environment |
true |
The environment where the deploy is being done. | |
version |
true |
The version being deployed. | |
status |
false |
succeeded |
The status of the deploy. |
source_maps |
false |
JS source map files. | |
minified_urls |
false |
Minified URLs linked to source maps above | |
local_username |
false |
Username of the deploying user. Alternative to setting ROLLBAR_USERNAME |
Outputs
| Input | Description |
|---|---|
deploy_id |
The id of the deploy. |
Example
steps:
- name: Notify deploy to Rollbar
uses: rollbar/[email protected]
id: rollbar_deploy
with:
environment: 'production'
version: ${{ github.sha }}
env:
ROLLBAR_ACCESS_TOKEN: ${{ secrets.ROLLBAR_ACCESS_TOKEN }}
ROLLBAR_USERNAME: ${{ github.actor }}
Example with deploy update
steps:
- name: Notify start deploy to Rollbar
uses: rollbar/[email protected]
id: rollbar_pre_deploy
with:
environment: 'production'
version: ${{ github.sha }}
status: 'started'
env:
ROLLBAR_ACCESS_TOKEN: ${{ secrets.ROLLBAR_ACCESS_TOKEN }}
ROLLBAR_USERNAME: ${{ github.actor }}
...
steps:
- name: Notify finish deploy to Rollbar
uses: rollbar/[email protected]
id: rollbar_post_deploy
with:
environment: 'production'
version: ${{ github.sha }}
status: 'succeeded'
env:
ROLLBAR_ACCESS_TOKEN: ${{ secrets.ROLLBAR_ACCESS_TOKEN }}
ROLLBAR_USERNAME: ${{ github.actor }}
DEPLOY_ID: ${{ steps.rollbar_pre_deploy.outputs.deploy_id }}
Example with JS Source Map
jobs:
# This workflow builds source maps
build:
- uses: actions/checkout@v2
- name: npm run build
run: npm run build --prefix templates/static/
- uses: actions/upload-artifact@v2
with:
name: bundle.js.map
path: public/bundle.js.map
- uses: actions/upload-artifact@v2
with:
name: bundle2.js.map
path: public/bundle2.js.map
# This workflow deploys source maps to Rollbar
deploy:
needs: build
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v2
with:
name: bundle.js.map
- uses: actions/download-artifact@v2
with:
name: bundle2.js.map
- name: Rollbar deploy
uses: rollbar/[email protected]
with:
environment: production
version: ${{ github.sha }}
status: succeeded
source_maps: bundle.js.map bundle2.js.map
minified_urls: https://www.example.com/public/bundle.js https://www.example.com/public/bundle2.js
env:
ROLLBAR_ACCESS_TOKEN: ${{ secrets.ROLLBAR_ACCESS_TOKEN }}