kleros/kleros-v2

View on GitHub
.github/workflows/sentry-release.yml

Summary

Maintainability
Test Coverage
name: Sentry Release

on:
  workflow_dispatch:
  push:
    branches:
      - master
      
permissions:  # added using https://github.com/step-security/secure-workflows
  contents: read

jobs:
  release:
    runs-on: ubuntu-latest
    environment: Master
    outputs:
      version: ${{ steps.set-version.outputs.version }}
    steps:
    - name: Harden Runner
      uses: step-security/harden-runner@1b05615854632b887b69ae1be8cbefe72d3ae423 # v2.5.0
      with:
        disable-sudo: true
        egress-policy: block
        allowed-endpoints: >
          binaries.soliditylang.org:443
          github.com:443
          nodejs.org:443
          registry.yarnpkg.com:443
          sentry.io:443
          54.185.253.63:443

    - uses: actions/checkout@7739b9ba2efcda9dde65ad1e3c2dbe65b41dfba7
    
    - name: Cache node modules
      uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84
      env:
        cache-name: cache-node-modules
      with:
        path: | 
          ~/.npm
          **/node_modules
        key: |
          ${{ runner.os }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json', '**/yarn.lock') }}
        restore-keys: |
          ${{ runner.os }}-build-${{ secrets.CACHE_VERSION }}-${{ env.cache-name }}-
    
    - name: Set up Node.js
      uses: actions/setup-node@2a017f350dbf6c4b6bb4508cc83809719115162e
      with:
        node-version: 16

    - name: Install dependencies
      run: |
        yarn workspace @kleros/kleros-v2-contracts install
        yarn workspace @kleros/kleros-v2-web install

    - name: Build
      run: |
        yarn workspace @kleros/kleros-v2-contracts build
        yarn workspace @kleros/kleros-v2-web build

    - name: Set version
      id: set-version
      run: echo "version=v$(cat package.json | jq -r .version)-$(git rev-parse --short HEAD)" >> "$GITHUB_OUTPUT"
      working-directory: web

    - name: Create Sentry release
      uses: getsentry/action-release@4744f6a65149f441c5f396d5b0877307c0db52c7 # v1.4.1
      env:
        SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
        SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
        SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
      with:
        environment: production
        version: ${{ steps.set-version.outputs.version }}
        sourcemaps: ./web/dist