Skip to content

build: pin ghostty e2c782d13f #34

build: pin ghostty e2c782d13f

build: pin ghostty e2c782d13f #34

Workflow file for this run

name: CI
on:
push:
branches: [master, "release/**"]
pull_request:
# `edited` covers a retargeted base, which happens to every stacked PR
# once the one below it merges.
types: [opened, synchronize, reopened, edited]
branches: [master, "release/**", "stack/ghostty-*"]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
check:
name: ${{ matrix.name }}
runs-on: ${{ matrix.runner }}
strategy:
fail-fast: false
matrix:
include:
- name: macOS aarch64
runner: namespace-profile-libghostty-mac
flake_check: true
- name: Linux aarch64
runner: namespace-profile-linux-aarch64-sm
flake_check: true
- name: Linux x86_64
runner: namespace-profile-linux-x86-sm
flake_check: true
steps:
- uses: actions/checkout@v4
- name: Setup Namespace cache
uses: namespacelabs/nscloud-cache-action@15799a6b54e5765f85b2aac25b3f0df43ed571c0 # v1.4.3
if: runner.os == 'Linux'
with:
cache: |
nix
rust
- name: Setup Namespace cache
uses: namespacelabs/nscloud-cache-action@15799a6b54e5765f85b2aac25b3f0df43ed571c0 # v1.4.3
if: runner.os == 'macOS'
with:
cache: |
xcode
rust
- name: Install Nix
uses: cachix/install-nix-action@8aa03977d8d733052d78f4e008a241fd1dbf36b3 # v31.10.6
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Use Ghostty binary cache
uses: cachix/cachix-action@5f2d7c5294214f71b873db4b969586b980625e71 # v17
with:
name: ghostty
skipPush: true
- name: Build package derivation
run: nix build .#default --print-build-logs
- name: Run flake checks
if: matrix.flake_check
run: nix flake check --print-build-logs
# Exercises the vendored iOS xcframework build path, which needs a
# macOS host with the real Xcode toolchain (the dev shell strips the
# Nix SDK wrappers so zig detects the system SDKs).
- name: Check iOS vendored build
if: runner.os == 'macOS'
run: nix develop -c cargo check --locked -p libghostty-vt-sys --target aarch64-apple-ios
# The examples are their own workspace, so the flake checks above never
# build them. `--locked` also fails if example/Cargo.lock is stale.
- name: Build examples
run: nix develop -c cargo build --locked --manifest-path example/Cargo.toml --workspace
miri:
name: Linux Miri
runs-on: namespace-profile-linux-x86-sm
steps:
- uses: actions/checkout@v4
- name: Setup Namespace cache
uses: namespacelabs/nscloud-cache-action@15799a6b54e5765f85b2aac25b3f0df43ed571c0 # v1.4.3
with:
cache: |
nix
rust
- name: Install Nix
uses: cachix/install-nix-action@8aa03977d8d733052d78f4e008a241fd1dbf36b3 # v31.10.6
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Miri soundness checks
run: nix run .#miri