Skip to content

chore: new release #256

chore: new release

chore: new release #256

Workflow file for this run

name: Release
on:
push:
tags:
- "v*"
workflow_dispatch:
env:
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
FARM_ENV: 'production'
TAURI_DEBUG: 'false'
jobs:
macos-universal:
permissions:
contents: write
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Reconfigure for MacOS Universal
run: rustup target add aarch64-apple-darwin && rustup target add x86_64-apple-darwin
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: swatinem/rust-cache@v2
- name: Install pnpm
uses: pnpm/action-setup@v3
with:
version: 9.1.2
- name: Sync node version and setup cache
uses: actions/setup-node@v4
with:
node-version: "lts/*"
cache: "pnpm"
- name: Cache pnpm modules
uses: actions/cache@v4
with:
path: |
$(pnpm store path --silent)
**/node_modules
key: ${{ runner.OS }}-pnpm-${{ runner.ARCH }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.OS }}-pnpm-${{ runner.ARCH }}-
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
- name: Build the app for MacOS Universal
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_OPTIONS: --max-old-space-size=6000
# MacOS Signing:
ENABLE_CODE_SIGNING: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_SIGNING_IDENTITY: ${{ secrets.APPLE_SIGNING_IDENTITY }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
with:
tagName: ${{ github.ref_name }}
releaseName: "KFtray - ${{ github.ref_name }}"
releaseBody: "See the assets to download this version and install."
releaseDraft: true
prerelease: false
updaterJsonKeepUniversal: true
args: --target universal-apple-darwin --bundles dmg,updater --verbose -- -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --package kftray
ubuntu-amd64:
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install dependencies for Linux
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libayatana-appindicator3-dev librsvg2-dev libssl-dev
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: swatinem/rust-cache@v2
- name: Install pnpm
uses: pnpm/action-setup@v3
with:
version: 9.1.2
- name: Sync node version and setup cache
uses: actions/setup-node@v4
with:
node-version: "lts/*"
cache: "pnpm"
- name: Cache pnpm modules
uses: actions/cache@v4
with:
path: |
$(pnpm store path --silent)
**/node_modules
key: ${{ runner.OS }}-pnpm-${{ runner.ARCH }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.OS }}-pnpm-${{ runner.ARCH }}-
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
- name: Build the app for Linux amd64
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_OPTIONS: --max-old-space-size=6000
with:
tagName: ${{ github.ref_name }}
releaseName: "KFtray - ${{ github.ref_name }}"
releaseBody: "See the assets to download this version and install."
releaseDraft: true
prerelease: false
updaterJsonKeepUniversal: true
args: --target x86_64-unknown-linux-gnu --bundles appimage,updater --verbose -- -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --package kftray
ubuntu-arm64:
permissions:
contents: write
runs-on: self-hosted
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: swatinem/rust-cache@v2
- name: Install pnpm
uses: pnpm/action-setup@v3
with:
version: 9.1.2
- name: Sync node version and setup cache
uses: actions/setup-node@v4
with:
node-version: "lts/*"
cache: "pnpm"
- name: Cache pnpm modules
uses: actions/cache@v4
with:
path: |
$(pnpm store path --silent)
**/node_modules
key: ${{ runner.OS }}-pnpm-${{ runner.ARCH }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.OS }}-pnpm-${{ runner.ARCH }}-
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
- name: Build the appimage for Linux ARM
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_OPTIONS: --max-old-space-size=6000
with:
tagName: ${{ github.ref_name }}
releaseName: "KFtray - ${{ github.ref_name }}"
releaseBody: "See the assets to download this version and install."
releaseDraft: true
prerelease: false
updaterJsonKeepUniversal: true
args: --target aarch64-unknown-linux-gnu --bundles appimage,updater --verbose -- -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --package kftray
windows-x86_64:
permissions:
contents: write
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: swatinem/rust-cache@v2
- name: Install pnpm
uses: pnpm/action-setup@v3
with:
version: 9.1.2
- name: Sync node version and setup cache
uses: actions/setup-node@v4
with:
node-version: "lts/*"
cache: "pnpm"
- name: Cache pnpm modules
uses: actions/cache@v4
with:
path: |
$(pnpm store path --silent)
**/node_modules
key: ${{ runner.OS }}-pnpm-${{ runner.ARCH }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.OS }}-pnpm-${{ runner.ARCH }}-
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
- name: Reconfigure for Windows x86_64
run: rustup target add x86_64-pc-windows-msvc
- name: Build the app for Windows x86_64
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_OPTIONS: --max-old-space-size=6000
with:
tagName: ${{ github.ref_name }}
releaseName: "KFtray - ${{ github.ref_name }}"
releaseBody: "See the assets to download this version and install."
releaseDraft: true
prerelease: false
updaterJsonKeepUniversal: true
args: --target x86_64-pc-windows-msvc --bundles nsis,updater --verbose -- -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --package kftray
windows-x86:
permissions:
contents: write
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: swatinem/rust-cache@v2
- name: Install pnpm
uses: pnpm/action-setup@v3
with:
version: 9.1.2
- name: Sync node version and setup cache
uses: actions/setup-node@v4
with:
node-version: "lts/*"
cache: "pnpm"
- name: Cache pnpm modules
uses: actions/cache@v4
with:
path: |
$(pnpm store path --silent)
**/node_modules
key: ${{ runner.OS }}-pnpm-${{ runner.ARCH }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.OS }}-pnpm-${{ runner.ARCH }}-
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
- name: Reconfigure for Windows x86
run: rustup target add i686-pc-windows-msvc
- name: Build the app for Windows x86
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_OPTIONS: --max-old-space-size=6000
with:
tagName: ${{ github.ref_name }}
releaseName: "KFtray - ${{ github.ref_name }}"
releaseBody: "See the assets to download this version and install."
releaseDraft: true
prerelease: false
updaterJsonKeepUniversal: true
args: --target i686-pc-windows-msvc --bundles nsis,updater --verbose -- -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --package kftray
windows-arm64:
permissions:
contents: write
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: swatinem/rust-cache@v2
- name: Install pnpm
uses: pnpm/action-setup@v3
with:
version: 9.1.2
- name: Sync node version and setup cache
uses: actions/setup-node@v4
with:
node-version: "lts/*"
cache: "pnpm"
- name: Cache pnpm modules
uses: actions/cache@v4
with:
path: |
$(pnpm store path --silent)
**/node_modules
key: ${{ runner.OS }}-pnpm-${{ runner.ARCH }}-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.OS }}-pnpm-${{ runner.ARCH }}-
- name: Install dependencies
run: pnpm install --no-frozen-lockfile
- name: Install dependencies for Windows on ARM64
uses: TheMrMilchmann/setup-msvc-dev@v3
with:
arch: amd64_arm64
- name: Reconfigure for Windows on ARM64
run: rustup target add aarch64-pc-windows-msvc
- name: Build the app for Windows on ARM64
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NODE_OPTIONS: --max-old-space-size=6000
with:
tagName: ${{ github.ref_name }}
releaseName: "KFtray - ${{ github.ref_name }}"
releaseBody: "See the assets to download this version and install."
releaseDraft: true
prerelease: false
updaterJsonKeepUniversal: true
args: --target aarch64-pc-windows-msvc --bundles nsis,updater --verbose -- -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --package kftray
build-and-push-docker:
permissions:
contents: write
packages: write
runs-on: ubuntu-latest
if: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }}
steps:
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout repository
uses: actions/checkout@v4
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: ./crates/kftray-server
file: ./crates/kftray-server/Dockerfile
push: true
tags: |
ghcr.io/${{ github.repository_owner }}/kftray-server:${{ github.sha }}
ghcr.io/${{ github.repository_owner }}/kftray-server:${{ github.ref_name }}
ghcr.io/${{ github.repository_owner }}/kftray-server:latest