mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-16 08:46:08 +03:00
Merge pull request #1742 from mitchellh/macos-matrix
ci: add renderer, font engine macOS build+test matrix
This commit is contained in:
35
.github/workflows/test.yml
vendored
35
.github/workflows/test.yml
vendored
@ -172,6 +172,41 @@ jobs:
|
||||
cd macos
|
||||
xcodebuild -target Ghostty-iOS "CODE_SIGNING_ALLOWED=NO"
|
||||
|
||||
build-macos-matrix:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
renderer: [opengl, metal]
|
||||
|
||||
font_backend:
|
||||
[
|
||||
freetype,
|
||||
coretext,
|
||||
coretext_freetype,
|
||||
coretext_harfbuzz,
|
||||
coretext_noshape,
|
||||
]
|
||||
runs-on: namespace-profile-ghostty-macos
|
||||
needs: test
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
# Install Nix and use that to run our tests so our environment matches exactly.
|
||||
- uses: cachix/install-nix-action@v26
|
||||
with:
|
||||
nix_path: nixpkgs=channel:nixos-unstable
|
||||
- uses: cachix/cachix-action@v14
|
||||
with:
|
||||
name: ghostty
|
||||
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
|
||||
|
||||
- name: Test
|
||||
run: nix develop -c zig build test -Dapp-runtime=glfw -Drenderer=${{ matrix.renderer }} -Dfont-backend=${{ matrix.font_backend }}
|
||||
|
||||
- name: Build
|
||||
run: nix develop -c zig build -Dapp-runtime=glfw -Drenderer=${{ matrix.renderer }} -Dfont-backend=${{ matrix.font_backend }}
|
||||
|
||||
build-windows:
|
||||
runs-on: windows-2019
|
||||
# this will not stop other jobs from running
|
||||
|
@ -380,32 +380,35 @@ test getIndex {
|
||||
var c = try Collection.init(alloc);
|
||||
c.load_options = .{ .library = lib };
|
||||
|
||||
_ = try c.add(alloc, .regular, .{ .loaded = try Face.init(
|
||||
lib,
|
||||
testFont,
|
||||
.{ .size = .{ .points = 12, .xdpi = 96, .ydpi = 96 } },
|
||||
) });
|
||||
if (font.options.backend != .coretext) {
|
||||
// Coretext doesn't support Noto's format
|
||||
{
|
||||
errdefer c.deinit(alloc);
|
||||
_ = try c.add(alloc, .regular, .{ .loaded = try Face.init(
|
||||
lib,
|
||||
testFont,
|
||||
.{ .size = .{ .points = 12, .xdpi = 96, .ydpi = 96 } },
|
||||
) });
|
||||
if (comptime !font.options.backend.hasCoretext()) {
|
||||
// Coretext doesn't support Noto's format
|
||||
_ = try c.add(
|
||||
alloc,
|
||||
.regular,
|
||||
.{ .loaded = try Face.init(
|
||||
lib,
|
||||
testEmoji,
|
||||
.{ .size = .{ .points = 12 } },
|
||||
) },
|
||||
);
|
||||
}
|
||||
_ = try c.add(
|
||||
alloc,
|
||||
.regular,
|
||||
.{ .loaded = try Face.init(
|
||||
lib,
|
||||
testEmoji,
|
||||
testEmojiText,
|
||||
.{ .size = .{ .points = 12 } },
|
||||
) },
|
||||
);
|
||||
}
|
||||
_ = try c.add(
|
||||
alloc,
|
||||
.regular,
|
||||
.{ .loaded = try Face.init(
|
||||
lib,
|
||||
testEmojiText,
|
||||
.{ .size = .{ .points = 12 } },
|
||||
) },
|
||||
);
|
||||
|
||||
var r: CodepointResolver = .{ .collection = c };
|
||||
defer r.deinit(alloc);
|
||||
@ -429,7 +432,7 @@ test getIndex {
|
||||
{
|
||||
const idx = r.getIndex(alloc, 0x270C, .regular, .text).?;
|
||||
try testing.expectEqual(Style.regular, idx.style);
|
||||
const text_idx = if (font.options.backend == .coretext) 1 else 2;
|
||||
const text_idx = if (comptime font.options.backend.hasCoretext()) 1 else 2;
|
||||
try testing.expectEqual(@as(Collection.Index.IndexInt, text_idx), idx.idx);
|
||||
}
|
||||
{
|
||||
|
@ -233,7 +233,7 @@ fn collection(
|
||||
// people add other emoji fonts to their system, we always want to
|
||||
// prefer the official one. Users can override this by explicitly
|
||||
// specifying a font-family for emoji.
|
||||
if (comptime builtin.target.isDarwin()) apple_emoji: {
|
||||
if (comptime builtin.target.isDarwin() and Discover != void) apple_emoji: {
|
||||
const disco = try self.discover() orelse break :apple_emoji;
|
||||
var disco_it = try disco.discover(self.alloc, .{
|
||||
.family = "Apple Color Emoji",
|
||||
|
@ -1213,7 +1213,7 @@ fn testShaperWithFont(alloc: Allocator, font_req: TestFont) !TestShaper {
|
||||
.{ .size = .{ .points = 12 } },
|
||||
) });
|
||||
|
||||
if (font.options.backend != .coretext) {
|
||||
if (comptime !font.options.backend.hasCoretext()) {
|
||||
// Coretext doesn't support Noto's format
|
||||
_ = try c.add(alloc, .regular, .{ .loaded = try Face.init(
|
||||
lib,
|
||||
|
Reference in New Issue
Block a user