Skip to content

Release

Release #110

Workflow file for this run

name: Release
on:
push:
tags:
- '*'
jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: 18
- name: Install pnpm
run: npm install -g pnpm
- name: Set package version
run: pnpm pkg set version=${{ github.ref_name }} --prefix apps/sentry-client-desktop
- name: Install dependencies
run: pnpm install
- name: Build monorepo
run: pnpm run build
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload sentry-client-desktop artifacts
uses: actions/upload-artifact@v2
with:
name: release-desktop-${{ matrix.os }}
path: apps/sentry-client-desktop/release
- name: zip cli artifacts
run: |
cd apps/cli/release
zip sentry-node-cli-macos.zip sentry-node-cli-macos
zip sentry-node-cli-linux.zip sentry-node-cli-linux
zip sentry-node-cli-windows.zip sentry-node-cli-win.exe
if: matrix.os == 'ubuntu-latest'
- name: Upload cli artifacts
uses: actions/upload-artifact@v2
with:
name: release-cli-${{ matrix.os }}
path: apps/cli/release
# Popular action to deploy to GitHub Pages:
# Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
# Build output to publish to the `gh-pages` branch:
publish_dir: ./apps/web-connect/dist
# The following lines assign commit authorship to the official
# GH-Actions bot for deploys to `gh-pages` branch:
# https://github.com/actions/checkout/issues/13#issuecomment-724415212
# The GH actions bot is used by default if you didn't specify the two fields.
# You can swap them out with your own user credentials.
user_name: github-actions[bot]
user_email: 41898282+github-actions[bot]@users.noreply.github.com
if: matrix.os == 'ubuntu-latest'
sign:
needs: build
runs-on: ubuntu-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v2
with:
name: release-desktop-windows-latest
path: release-desktop-windows-latest
- name: Create directory for signed builds
shell: bash
run: mkdir release-desktop-windows-latest/signed-builds
- name: Sign build Windows exe
uses: sslcom/actions-codesigner@develop
with:
command: sign
username: ${{ secrets.SSL_USERNAME }}
password: ${{ secrets.SSL_PASSWORD }}
totp_secret: ${{ secrets.SSL_TOTP_SECRET }}
file_path: release-desktop-windows-latest/sentry-client-windows.exe
output_path: release-desktop-windows-latest/signed-builds
- name: Upload signed artifacts
uses: actions/upload-artifact@v2
with:
name: release-signed-desktop-windows-latest
path: release-desktop-windows-latest
checksum-and-release:
needs: sign
runs-on: macos-latest
steps:
- name: Download artifacts
uses: actions/download-artifact@v2
- name: Generate checksum
run: |
CHECKSUM=$(shasum -a 512 release-signed-desktop-windows-latest/signed-builds/sentry-client-windows.exe | cut -f1 -d\ | xxd -r -p | base64)
CHECKSUM=$(echo "$CHECKSUM" | tr -d '\r\n')
echo "SHA512 Checksum: $CHECKSUM"
cat release-signed-desktop-windows-latest/latest.yml
sed -i '' -e "s#^sha512:.*#sha512: $CHECKSUM#" "release-signed-desktop-windows-latest/latest.yml"
sed -i '' -e "s#^ sha512:.*# sha512: $CHECKSUM#" "release-signed-desktop-windows-latest/latest.yml"
- name: Release
uses: softprops/action-gh-release@v1
with:
files: |
release-desktop-macos-latest/latest-mac.yml
release-desktop-macos-latest/sentry-client-macos.dmg.blockmap
release-desktop-macos-latest/sentry-client-macos.dmg
release-desktop-ubuntu-latest/latest-linux.yml
release-desktop-ubuntu-latest/sentry-client-linux.AppImage
release-signed-desktop-windows-latest/latest.yml
release-signed-desktop-windows-latest/sentry-client-windows.exe.blockmap
release-signed-desktop-windows-latest/signed-builds/sentry-client-windows.exe
release-cli-ubuntu-latest/sentry-node-cli-macos.zip
release-cli-ubuntu-latest/sentry-node-cli-linux.zip
release-cli-ubuntu-latest/sentry-node-cli-windows.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}