blueprint icon indicating copy to clipboard operation
blueprint copied to clipboard

GitHub Actions integration

Open zimbatm opened this issue 1 year ago • 1 comments

Output the build matrix so it integrates with GitHub Actions a bit like https://github.com/nix-community/nix-github-actions

zimbatm avatar Jun 30 '24 08:06 zimbatm

Just a suggestion, but maybe nix-fast-build could be used instead? When I first saw how checks are automatically created here, it instantly reminded me of it -- as that's how jobs are handled by default there as well

I think this would be pretty feasible given it's in nixpkgs as of https://github.com/NixOS/nixpkgs/pull/313554, comes from a reputable member of the community, and would allow for simple workflows like this to work in any setup

name: CI

on:
  push:
    branches: [ main ]
  pull_request:
  workflow_dispatch:
  
jobs:
  build:
    name: Build flake outputs
    
    strategy:
      matrix:
        os: [ ubuntu-latest, macos-latest ]
        
    runs-on: ${{ matrix.os }}
    
    steps:
      - name: Checkout repository
         uses: actions/checkout@v4
         
      - name: Install Nix
        uses: cachix/install-nix-action@v27
        
      # Optional. See https://nix.dev/tutorials/nixos/continuous-integration-github-actions
      # - name: Setup Nix cache
      #   uses: cachix/cachix-action@v15
      
      - name: Run nix-fast-build
         run: |
           nix run \
             --inputs-from . \
             nixpkgs#nix-fast-build -- \
             --no-nom \
             --skip-cached

I've been using something similar with hydraJobs and flake-parts personally for a while now and it has worked wonders. A more simplistic approach like this would also probably make things easier to implement internally, and make things easier to reproduce locally for users (i.e., they can run nix-fast-build themselves to debug CI)

getchoo avatar Jul 08 '24 13:07 getchoo