From b222cf33bdd4751fe966ce01533a15d6627e02a5 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 22 Dec 2023 14:36:28 -0800 Subject: [PATCH 1/3] ci: swap magic-nix-cache with cachix Cachix doesn't have rate limit issues like GitHub Actions does and I'd love to support the Nix community. Plus, I have experience with Cachix before and they've been so great. --- .github/workflows/nix.yml | 25 ++--------------- .github/workflows/release-tip.yml | 8 ++---- .github/workflows/test.yml | 46 ++++++++++++------------------- 3 files changed, 24 insertions(+), 55 deletions(-) diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml index cbc764baa..477aeed83 100644 --- a/.github/workflows/nix.yml +++ b/.github/workflows/nix.yml @@ -10,28 +10,9 @@ jobs: uses: cachix/install-nix-action@v24 with: nix_path: nixpkgs=channel:nixos-unstable - # Use cache to minimize build times. - - name: Setup Nix cache - uses: DeterminateSystems/magic-nix-cache-action@main + - uses: cachix/cachix-action@v12 with: - diagnostic-endpoint: "" # disable telemetry + name: ghostty + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - name: Check Zig cache hash run: nix develop -c ./nix/build-support/check-zig-cache-hash.sh -# -# NOTE: Build is disabled until we resolve dependency build speeds. -# build: -# needs: check-zig-cache-hash -# runs-on: ubuntu-latest -# steps: -# - name: Checkout code -# uses: actions/checkout@v4 -# - name: Setup Nix -# uses: cachix/install-nix-action@v24 -# with: -# nix_path: nixpkgs=channel:nixos-unstable -# - name: Setup Nix cache -# uses: DeterminateSystems/magic-nix-cache-action@main -# with: -# diagnostic-endpoint: "" # disable telemetry -# - name: Run build -# run: nix build . diff --git a/.github/workflows/release-tip.yml b/.github/workflows/release-tip.yml index 23bc2431d..349a181bb 100644 --- a/.github/workflows/release-tip.yml +++ b/.github/workflows/release-tip.yml @@ -47,12 +47,10 @@ jobs: - uses: cachix/install-nix-action@v24 with: nix_path: nixpkgs=channel:nixos-unstable - - # Use cache to minimize build times. - - name: Setup Nix cache - uses: DeterminateSystems/magic-nix-cache-action@main + - uses: cachix/cachix-action@v12 with: - diagnostic-endpoint: "" # disable telemetry + name: ghostty + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' # Setup Sparkle - name: Setup Sparkle diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 700e73c16..610d440ae 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -30,12 +30,10 @@ jobs: - uses: cachix/install-nix-action@v24 with: nix_path: nixpkgs=channel:nixos-unstable - - # Use cache to minimize build times. - - name: Setup Nix cache - uses: DeterminateSystems/magic-nix-cache-action@main + - uses: cachix/cachix-action@v12 with: - diagnostic-endpoint: "" # disable telemetry + name: ghostty + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' # Cross-compile the binary. We always use static building for this # because its the only way to access the headers. @@ -56,12 +54,10 @@ jobs: - uses: cachix/install-nix-action@v24 with: nix_path: nixpkgs=channel:nixos-unstable - - # Use cache to minimize build times. - - name: Setup Nix cache - uses: DeterminateSystems/magic-nix-cache-action@main + - uses: cachix/cachix-action@v12 with: - diagnostic-endpoint: "" # disable telemetry + name: ghostty + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - name: Test NixOS package build run: nix build .#ghostty @@ -80,12 +76,10 @@ jobs: - uses: cachix/install-nix-action@v24 with: nix_path: nixpkgs=channel:nixos-unstable - - # Use cache to minimize build times. - - name: Setup Nix cache - uses: DeterminateSystems/magic-nix-cache-action@main + - uses: cachix/cachix-action@v12 with: - diagnostic-endpoint: "" # disable telemetry + name: ghostty + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' # GhosttyKit is the framework that is built from Zig for our native # Mac app to access. @@ -162,12 +156,10 @@ jobs: - uses: cachix/install-nix-action@v24 with: nix_path: nixpkgs=channel:nixos-unstable - - # Use cache to minimize build times. - - name: Setup Nix cache - uses: DeterminateSystems/magic-nix-cache-action@main + - uses: cachix/cachix-action@v12 with: - diagnostic-endpoint: "" # disable telemetry + name: ghostty + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - name: test run: nix develop -c zig build -Dapp-runtime=none test @@ -188,11 +180,10 @@ jobs: - uses: cachix/install-nix-action@v24 with: nix_path: nixpkgs=channel:nixos-unstable - # Use cache to minimize build times. - - name: Setup Nix cache - uses: DeterminateSystems/magic-nix-cache-action@main + - uses: cachix/cachix-action@v12 with: - diagnostic-endpoint: "" # disable telemetry + name: ghostty + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - name: prettier check run: nix develop -c prettier --check . @@ -203,10 +194,9 @@ jobs: - uses: cachix/install-nix-action@v24 with: nix_path: nixpkgs=channel:nixos-unstable - # Use cache to minimize build times. - - name: Setup Nix cache - uses: DeterminateSystems/magic-nix-cache-action@main + - uses: cachix/cachix-action@v12 with: - diagnostic-endpoint: "" # disable telemetry + name: ghostty + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - name: alejandra check run: nix develop -c alejandra --check . From f56ed57b575ddc83d6c332c67c8e36acbbb45ecd Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 22 Dec 2023 14:49:32 -0800 Subject: [PATCH 2/3] prettier --- .github/workflows/nix.yml | 2 +- .github/workflows/release-tip.yml | 2 +- .github/workflows/test.yml | 12 ++++++------ 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml index 477aeed83..b63dbff86 100644 --- a/.github/workflows/nix.yml +++ b/.github/workflows/nix.yml @@ -13,6 +13,6 @@ jobs: - uses: cachix/cachix-action@v12 with: name: ghostty - authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" - name: Check Zig cache hash run: nix develop -c ./nix/build-support/check-zig-cache-hash.sh diff --git a/.github/workflows/release-tip.yml b/.github/workflows/release-tip.yml index 349a181bb..d5bb85537 100644 --- a/.github/workflows/release-tip.yml +++ b/.github/workflows/release-tip.yml @@ -50,7 +50,7 @@ jobs: - uses: cachix/cachix-action@v12 with: name: ghostty - authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" # Setup Sparkle - name: Setup Sparkle diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 610d440ae..1b0f36d31 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -33,7 +33,7 @@ jobs: - uses: cachix/cachix-action@v12 with: name: ghostty - authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" # Cross-compile the binary. We always use static building for this # because its the only way to access the headers. @@ -57,7 +57,7 @@ jobs: - uses: cachix/cachix-action@v12 with: name: ghostty - authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" - name: Test NixOS package build run: nix build .#ghostty @@ -79,7 +79,7 @@ jobs: - uses: cachix/cachix-action@v12 with: name: ghostty - authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" # GhosttyKit is the framework that is built from Zig for our native # Mac app to access. @@ -159,7 +159,7 @@ jobs: - uses: cachix/cachix-action@v12 with: name: ghostty - authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" - name: test run: nix develop -c zig build -Dapp-runtime=none test @@ -183,7 +183,7 @@ jobs: - uses: cachix/cachix-action@v12 with: name: ghostty - authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" - name: prettier check run: nix develop -c prettier --check . @@ -197,6 +197,6 @@ jobs: - uses: cachix/cachix-action@v12 with: name: ghostty - authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" - name: alejandra check run: nix develop -c alejandra --check . From 188f82c16e793017507817d7bfb5f4e99ea4996b Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 22 Dec 2023 15:27:48 -0800 Subject: [PATCH 3/3] ci: build-nix and test are not matrix tests --- .github/workflows/test.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1b0f36d31..cd9516a83 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -41,10 +41,7 @@ jobs: run: nix develop -c zig build -Dstatic=true -Dapp-runtime=glfw -Dtarget=${{ matrix.target }} build-nix: - strategy: - matrix: - os: [ubuntu-latest] - runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest needs: test steps: - name: Checkout code @@ -144,10 +141,7 @@ jobs: run: Get-Content -Path ".\build.log" test: - strategy: - matrix: - os: [ubuntu-latest] - runs-on: ${{ matrix.os }} + runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4