mirror of
https://github.com/neosubhamoy/neodlp.git
synced 2025-12-19 01:32:57 +05:30
114 lines
4.1 KiB
YAML
114 lines
4.1 KiB
YAML
on:
|
|
push:
|
|
tags:
|
|
- 'v*.*.*' # Matches version tags like v1.0.0 etc.
|
|
|
|
name: 🚀 Release on GitHub
|
|
jobs:
|
|
release:
|
|
permissions:
|
|
contents: write
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- platform: 'macos-latest'
|
|
args: '--target aarch64-apple-darwin --config ./src-tauri/tauri.macos-aarch64.conf.json'
|
|
arch: 'aarch64-apple-darwin'
|
|
- platform: 'macos-latest'
|
|
args: '--target x86_64-apple-darwin'
|
|
arch: 'x86_64-apple-darwin'
|
|
- platform: 'ubuntu-22.04'
|
|
args: ''
|
|
arch: ''
|
|
- platform: 'windows-latest'
|
|
args: ''
|
|
arch: ''
|
|
runs-on: ${{ matrix.platform }}
|
|
steps:
|
|
- name: 🚚 Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: 🛠️ Install dependencies
|
|
if: matrix.platform == 'ubuntu-22.04'
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
|
|
|
|
- name: 📦 Setup node
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 'lts/*'
|
|
cache: 'npm'
|
|
|
|
- name: 🛠️ install Rust stable
|
|
uses: dtolnay/rust-toolchain@stable
|
|
with:
|
|
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
|
|
|
|
- name: 🛠️ Rust cache
|
|
uses: swatinem/rust-cache@v2
|
|
with:
|
|
workspaces: './src-tauri -> target'
|
|
|
|
- name: 🛠️ Install frontend dependencies
|
|
run: npm install
|
|
|
|
- name: 📄 Read and Process CHANGELOG (Unix)
|
|
if: matrix.platform != 'windows-latest'
|
|
id: changelog_unix
|
|
shell: bash
|
|
run: |
|
|
if [ -f CHANGELOG.md ]; then
|
|
# Extract version number from tag
|
|
VERSION_NUM=$(echo "${{ github.ref_name }}" | sed -E 's/^v([0-9]+\.[0-9]+\.[0-9]+)(-.*)?$/\1/')
|
|
|
|
# Read and replace placeholders
|
|
CONTENT=$(cat CHANGELOG.md)
|
|
CONTENT=${CONTENT//<release_tag>/${{ github.ref_name }}}
|
|
CONTENT=${CONTENT//<version>/$VERSION_NUM}
|
|
|
|
echo "content<<EOF" >> $GITHUB_OUTPUT
|
|
echo "$CONTENT" >> $GITHUB_OUTPUT
|
|
echo "EOF" >> $GITHUB_OUTPUT
|
|
else
|
|
echo "content=No changelog found" >> $GITHUB_OUTPUT
|
|
fi
|
|
|
|
- name: 📄 Read and Process CHANGELOG (Windows)
|
|
if: matrix.platform == 'windows-latest'
|
|
id: changelog_windows
|
|
shell: pwsh
|
|
run: |
|
|
if (Test-Path "CHANGELOG.md") {
|
|
# Extract version number from tag
|
|
$version_num = "${{ github.ref_name }}" -replace '^v([0-9]+\.[0-9]+\.[0-9]+)(-.*)?$','$1'
|
|
|
|
# Read and replace placeholders
|
|
$content = Get-Content -Path CHANGELOG.md -Raw
|
|
$content = $content -replace '<release_tag>', "${{ github.ref_name }}"
|
|
$content = $content -replace '<version>', "$version_num"
|
|
|
|
"content<<EOF" >> $env:GITHUB_OUTPUT
|
|
$content >> $env:GITHUB_OUTPUT
|
|
"EOF" >> $env:GITHUB_OUTPUT
|
|
} else {
|
|
"content=No changelog found" >> $env:GITHUB_OUTPUT
|
|
}
|
|
|
|
- name: 🚀 Build and publish
|
|
uses: tauri-apps/tauri-action@v0
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
TARGET_ARCH: ${{ matrix.arch }}
|
|
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
|
|
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
|
|
with:
|
|
tagName: ${{ github.ref_name }}
|
|
releaseName: ${{ github.event.repository.name }}-${{ github.ref_name }}
|
|
releaseBody: ${{ matrix.platform == 'windows-latest' && steps.changelog_windows.outputs.content || steps.changelog_unix.outputs.content }}
|
|
releaseDraft: true
|
|
prerelease: false
|
|
includeUpdaterJson: true
|
|
updaterJsonPreferNsis: true
|
|
args: ${{ matrix.args }} |