# Meetily CI/CD Tools: GitHub Actions Pipelines for Building, Signing, and Releasing

> Discover how Meetily leverages GitHub Actions for powerful CI/CD pipelines. Learn about the tools used to build sign and release its desktop app across multiple operating systems.

- Repository: [Zackriya Solutions/meetily](https://github.com/Zackriya-Solutions/meetily)
- Tags: how-to-guide
- Published: 2026-07-27

---

**TLDR:** Meetily uses **GitHub Actions** as its sole CI/CD platform, orchestrating over a dozen community actions—including `actions/checkout@v4`, `dtolnay/rust-toolchain@stable`, `tauri-apps/tauri-action@v0`, and `digicert/ssm-code-signing@v1.1.1`—to build, sign, and publish its Tauri-based desktop app across Linux, macOS, and Windows.

Meetily is a privacy-first AI meeting assistant developed by Zackriya-Solutions. Its continuous integration and continuous deployment pipelines are defined entirely within `.github/workflows/` and driven by **GitHub Actions**. The workflow files combine environment setup, dependency caching, Rust compilation, and code signing to automate every stage of the desktop application's lifecycle.

## Meetily's Core CI/CD Actions and Their Roles

The repository's CI/CD pipelines stitch together a collection of version-pinned, community-maintained actions. Each action handles a specific step in the build, test, or release process.

### Source Checkout and Automation

- **`actions/checkout@v4`** — Checks out the repository source code before any build steps run. It is referenced in [`.github/workflows/build.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/build.yml) at line 54.
- **`actions/github-script@v7`** — Executes arbitrary JavaScript or TypeScript directly inside the workflow. It appears in [`.github/workflows/release.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/release.yml) at line 71.

### Frontend and Node.js Tooling

- **`pnpm/action-setup@v4`** — Installs the **PNPM** package manager required for the Next.js frontend. Meetily invokes this action in [`.github/workflows/build.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/build.yml) at line 81.
- **`actions/setup-node@v4`** — Configures the Node.js runtime environment that PNPM and the frontend build rely on, configured in [`.github/workflows/build.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/build.yml) at line 87.

### Dependency Caching and Rust Toolchain

- **`actions/cache@v4`** — Caches `node_modules`, Rust crates, and other build artifacts to accelerate subsequent runs. It is used in [`.github/workflows/build.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/build.yml) at line 97.
- **`dtolnay/rust-toolchain@stable`** — Installs the stable **Rust** toolchain needed to compile the Tauri core backend, defined in [`.github/workflows/build.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/build.yml) at line 105.
- **`swatinem/rust-cache@v2`** — Persists compiled Cargo crates across workflow runs, reducing redundant compilation. This appears in [`.github/workflows/build.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/build.yml) at line 111.

### GPU and Platform Dependencies

- **`humbletim/install-vulkan-sdk@v1.2`** — Installs the **Vulkan SDK** for GPU-accelerated builds on Linux, macOS, and Windows. It is referenced in [`.github/workflows/build.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/build.yml) at line 136.

### Code Signing, Building, and Artifact Upload

- **`digicert/ssm-code-signing@v1.1.1`** — Performs code signing for macOS and Windows binaries via DigiCert’s service, located in [`.github/workflows/build.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/build.yml) at line 286.
- **`tauri-apps/tauri-action@v0`** — Executes the Tauri build steps that bundle the Rust backend with the Next.js UI, found in [`.github/workflows/build.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/build.yml) at line 571.
- **`actions/upload-artifact@v4`** — Uploads the resulting installers and archives as workflow artifacts, defined in [`.github/workflows/build.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/build.yml) at line 598.

## Cross-Platform Workflow Files

Meetily organizes its CI/CD logic into reusable, platform-specific workflow definitions. These files orchestrate the actions above for everyday builds, pull-request checks, and production releases.

- **[`.github/workflows/build.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/build.yml)** — The primary reusable workflow that sets up Node, Rust, caching, the Vulkan SDK, and executes the Tauri build.
- **[`.github/workflows/build-macos.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/build-macos.yml)** — macOS-specific build steps, including code signing and Metal setup.
- **[`.github/workflows/build-windows.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/build-windows.yml)** — Windows-specific steps, including DigiCert signing and WASAPI handling.
- **[`.github/workflows/build-linux.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/build-linux.yml)** — Linux-specific steps, covering Vulkan SDK installation and AppImage packaging.
- **[`.github/workflows/build-test.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/build-test.yml)** — Invokes the primary build workflow in a test context for validation.
- **[`.github/workflows/pr-main-check.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/pr-main-check.yml)** — Lints, type-checks, and runs unit tests on pull requests.
- **[`.github/workflows/release.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/release.yml)** — Orchestrates full releases by building for all platforms, signing binaries, and creating GitHub release assets.

## Example CI/CD Pipeline Configuration

The following trimmed YAML demonstrates a typical Linux build job as implemented in Meetily's source. It combines checkout, Node and Rust setup, dependency caching, Vulkan SDK installation, Tauri bundling, and artifact upload.

```yaml
name: Build (Linux)

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  build-linux:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: pnpm/action-setup@v4
        with:
          version: 9
      - uses: actions/setup-node@v4
        with:
          node-version: 20
      - uses: actions/cache@v4
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
            node_modules
          key: ${{ runner.os }}-cargo-node-${{ hashFiles('Cargo.lock','pnpm-lock.yaml') }}
      - uses: dtolnay/rust-toolchain@stable
      - uses: swatinem/rust-cache@v2
      - uses: humbletim/install-vulkan-sdk@v1.2
      - uses: tauri-apps/tauri-action@v0
        with:
          args: "--target x86_64-unknown-linux-gnu"
      - uses: actions/upload-artifact@v4
        with:
          name: meetily-linux
          path: src-tauri/target/release/bundle/**/*.AppImage

```

Every step shown above is present in the real [`build-linux.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/build-linux.yml) and analogous files for macOS and Windows. This structure ensures consistent build behavior across all targeted operating systems.

## Summary

- Meetily's entire CI/CD stack runs on **GitHub Actions**, with no external CI servers required.
- The pipelines rely on over ten specialized actions for checkout, package management, Rust tooling, caching, GPU dependencies, code signing, and artifact publishing.
- Key workflow files such as [`.github/workflows/build.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/build.yml), [`.github/workflows/release.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/release.yml), and platform-specific counterparts automate builds for Linux, macOS, and Windows.
- A typical build job sets up **Node.js 20**, **PNPM 9**, **stable Rust**, the **Vulkan SDK**, and the **Tauri** toolchain before uploading signed or unsigned installers.

## Frequently Asked Questions

### What CI/CD platform does Meetily use?

Meetily uses **GitHub Actions** exclusively for its continuous integration and continuous deployment needs. All workflow definitions live in the `.github/workflows/` directory inside the `Zackriya-Solutions/meetily` repository.

### How does Meetily handle Rust and Node.js dependencies in CI?

The project uses **`actions/setup-node@v4`** and **`pnpm/action-setup@v4`** to install Node.js 20 and PNPM 9, while **`dtolnay/rust-toolchain@stable`** installs the stable Rust compiler required by Tauri. **`actions/cache@v4`** and **`swatinem/rust-cache@v2`** then cache `node_modules` and Cargo crates to keep build times low.

### Which tool signs Meetily's macOS and Windows binaries?

Meetily uses **`digicert/ssm-code-signing@v1.1.1`** to sign desktop binaries. This action is integrated into the build pipeline inside [`.github/workflows/build.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/.github/workflows/build.yml) and is invoked during macOS and Windows build stages.

### Where are Meetily's GitHub Actions workflows defined?

The workflows are stored under `.github/workflows/`. The primary files include [`build.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/build.yml), [`build-linux.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/build-linux.yml), [`build-macos.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/build-macos.yml), [`build-windows.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/build-windows.yml), [`build-test.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/build-test.yml), [`pr-main-check.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/pr-main-check.yml), and [`release.yml`](https://github.com/Zackriya-Solutions/meetily/blob/main/release.yml), each handling specific platforms or pipeline phases.