Files
Windows-11-Clipboard-Histor…/.github/workflows/release.yml
2025-12-11 01:58:08 -03:00

129 lines
3.9 KiB
YAML

name: Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
env:
CARGO_TERM_COLOR: always
jobs:
create-release:
name: Create Release
runs-on: ubuntu-latest
outputs:
release_id: ${{ steps.create-release.outputs.id }}
upload_url: ${{ steps.create-release.outputs.upload_url }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Get version from tag
id: get_version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- name: Create Release
id: create-release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ github.ref_name }}
name: Release ${{ github.ref_name }}
body: |
## Win11 Clipboard History ${{ github.ref_name }}
A Windows 11-style Clipboard History Manager for Linux.
### Installation
#### Ubuntu/Debian
Download the `.deb` file and install:
```bash
sudo dpkg -i win11-clipboard-history_${{ steps.get_version.outputs.VERSION }}_amd64.deb
```
#### Fedora/RHEL
Download the `.rpm` file and install:
```bash
sudo rpm -i win11-clipboard-history-${{ steps.get_version.outputs.VERSION }}-1.x86_64.rpm
```
#### Any Linux (AppImage)
Download the `.AppImage` file, make it executable, and run:
```bash
chmod +x win11-clipboard-history_${{ steps.get_version.outputs.VERSION }}_amd64.AppImage
./win11-clipboard-history_${{ steps.get_version.outputs.VERSION }}_amd64.AppImage
```
### Changelog
See the [commit history](https://github.com/gustavosett/Windows-11-Clipboard-History-For-Linux/commits/${{ github.ref_name }}) for changes.
draft: false
prerelease: ${{ contains(github.ref_name, 'alpha') || contains(github.ref_name, 'beta') || contains(github.ref_name, 'rc') }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-linux:
name: Build Linux
runs-on: ubuntu-latest
needs: create-release
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install Rust
uses: dtolnay/rust-action@stable
- name: Cache Cargo
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
src-tauri/target/
key: ${{ runner.os }}-cargo-release-${{ hashFiles('**/Cargo.lock') }}
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.1-dev build-essential curl wget file \
libssl-dev libayatana-appindicator3-dev librsvg2-dev libxdo-dev \
libgtk-3-dev libglib2.0-dev
- name: Install npm dependencies
run: npm ci
- name: Build Tauri app
run: npm run tauri:build
- name: Upload DEB to Release
uses: softprops/action-gh-release@v1
with:
files: src-tauri/target/release/bundle/deb/*.deb
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload AppImage to Release
uses: softprops/action-gh-release@v1
with:
files: src-tauri/target/release/bundle/appimage/*.AppImage
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload RPM to Release
uses: softprops/action-gh-release@v1
with:
files: src-tauri/target/release/bundle/rpm/*.rpm
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}