feat: refactor configs dirs #272
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: ubicloud-standard-4-arm | |
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 perl | |
- name: Rust setup | |
uses: dtolnay/rust-toolchain@stable | |
- name: Rust cache | |
uses: swatinem/rust-cache@v2 | |
- name: Reconfigure for Linux ARM64 | |
run: rustup target add aarch64-unknown-linux-gnu | |
- 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@v6 | |
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 |