Skip to content

Create GitHub Release #29

Create GitHub Release

Create GitHub Release #29

Workflow file for this run

name: Create GitHub Release
on:
push:
tags:
- 'v*.*.*'
workflow_dispatch:
permissions:
contents: write
jobs:
create-release:
name: Create Release
runs-on: ubuntu-latest
outputs:
release_id: ${{ steps.create_release.outputs.id }}
tag_name: ${{ steps.release_info.outputs.tag_name }}
steps:
- name: Determine release info
id: release_info
run: |
if [[ "${GITHUB_REF}" == refs/tags/* ]]; then
echo "tag_name=${GITHUB_REF#refs/tags/}" >> "$GITHUB_OUTPUT"
echo "prerelease=false" >> "$GITHUB_OUTPUT"
else
echo "tag_name=nightly-${GITHUB_REF_NAME}-$(date -u +%Y%m%d-%H%M%S)-${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
echo "prerelease=true" >> "$GITHUB_OUTPUT"
fi
- id: create_release
name: Create Release
uses: softprops/action-gh-release@v3
with:
tag_name: ${{ steps.release_info.outputs.tag_name }}
name: Release ${{ steps.release_info.outputs.tag_name }}
prerelease: ${{ steps.release_info.outputs.prerelease }}
draft: true
build-windows-binaries:
name: Build Windows Binaries
runs-on: windows-latest
needs: create-release
steps:
- uses: actions/checkout@v7
- name: Use Node.js 4
uses: actions/setup-node@v7
with:
node-version: '24'
- name: restore node_modules
uses: actions/cache@v6
with:
path: |
node_modules
key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
- name: Prepare Environment
run: |
corepack enable
yarn --frozen-lockfile --network-timeout 1000000
- name: Build
run: |
yarn build
- name: Build Binary
run: |
yarn build:binary --publish never
- name: Upload Windows binaries to release
uses: softprops/action-gh-release@v3
with:
tag_name: ${{ needs.create-release.outputs.tag_name }}
draft: true
files: |
release/*.exe
release/*.exe.blockmap
release/latest*.yml
# CSC_LINK: ${{ secrets.WIN_CSC_LINK }}
# CSC_KEY_PASSWORD: ${{ secrets.WIN_CSC_KEY_PASSWORD }}
build-linux-binaries:
name: Build Linux Binaries
runs-on: ubuntu-latest
needs: create-release
steps:
- uses: actions/checkout@v7
- name: Use Node.js 24
uses: actions/setup-node@v7
with:
node-version: '24'
- name: Install Snapcraft
uses: samuelmeuli/action-snapcraft@v3
- name: restore node_modules
uses: actions/cache@v6
with:
path: |
node_modules
key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
- name: Prepare Environment
run: |
corepack enable
yarn --frozen-lockfile --network-timeout 1000000
- name: Build
run: |
yarn build
- name: Build Binary
run: |
yarn build:binary --publish never
- name: Upload Linux binaries to release
uses: softprops/action-gh-release@v3
with:
tag_name: ${{ needs.create-release.outputs.tag_name }}
draft: true
files: |
release/*.AppImage
release/*.snap
release/*.deb
release/*.rpm
release/*.tar.gz
release/*.blockmap
release/latest*.yml
# build-macos-binaries:
# name: Build MacOS Binaries
# runs-on: macos-latest
# needs: create-release
# continue-on-error: true
# steps:
# - uses: actions/checkout@v7
# - name: Use Node.js 20
# uses: actions/setup-node@v7
# with:
# node-version: '20'
# - name: restore node_modules
# uses: actions/cache@v6
# with:
# path: |
# node_modules
# key: ${{ runner.os }}-${{ hashFiles('**/yarn.lock') }}
# - name: Prepare Environment
# run: |
# yarn --ignore-engines --frozen-lockfile --network-timeout 1000000
# - name: Build
# run: |
# yarn build
# - name: Build Binary
# run: |
# yarn build:binary
# env:
# GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# CSC_LINK: ${{ secrets.MAC_CSC_LINK }}
# CSC_KEY_PASSWORD: ${{ secrets.MAC_CSC_KEY_PASSWORD }}
# APPLEID: ${{ secrets.APPLEID }}
# APPLEIDPASS: ${{ secrets.APPLEIDPASS }}