diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 69e7f32..cd3c514 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,20 +27,17 @@ jobs: timeout-minutes: 10 permissions: contents: read + defaults: + run: + shell: nix develop --command bash -eo pipefail {0} steps: - name: Checkout repository uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 with: persist-credentials: false - - name: Setup pnpm - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - - - name: Setup Node.js - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0 - with: - node-version: 22.23.3 - cache: pnpm + - name: Setup Nix + uses: furedea/reusable-workflows/.github/actions/nix-setup@2ae953294b9a805d0705657adc1d9d4f1bc1f646 # v1.3.0 - name: Install dependencies run: pnpm install --frozen-lockfile @@ -53,20 +50,19 @@ jobs: timeout-minutes: 10 permissions: contents: read + defaults: + run: + shell: nix develop --command bash -eo pipefail {0} steps: - name: Checkout repository uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 with: persist-credentials: false - - name: Setup pnpm - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - - - name: Setup Node.js - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0 + - name: Setup Nix + uses: furedea/reusable-workflows/.github/actions/nix-setup@2ae953294b9a805d0705657adc1d9d4f1bc1f646 # v1.3.0 with: - node-version: 22.23.3 - cache: pnpm + save: false - name: Install dependencies run: pnpm install --frozen-lockfile @@ -79,20 +75,19 @@ jobs: timeout-minutes: 10 permissions: contents: read + defaults: + run: + shell: nix develop --command bash -eo pipefail {0} steps: - name: Checkout repository uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 with: persist-credentials: false - - name: Setup pnpm - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - - - name: Setup Node.js - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0 + - name: Setup Nix + uses: furedea/reusable-workflows/.github/actions/nix-setup@2ae953294b9a805d0705657adc1d9d4f1bc1f646 # v1.3.0 with: - node-version: 22.23.3 - cache: pnpm + save: false - name: Install dependencies run: pnpm install --frozen-lockfile @@ -105,20 +100,19 @@ jobs: timeout-minutes: 10 permissions: contents: read + defaults: + run: + shell: nix develop --command bash -eo pipefail {0} steps: - name: Checkout repository uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 with: persist-credentials: false - - name: Setup pnpm - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - - - name: Setup Node.js - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0 + - name: Setup Nix + uses: furedea/reusable-workflows/.github/actions/nix-setup@2ae953294b9a805d0705657adc1d9d4f1bc1f646 # v1.3.0 with: - node-version: 22.23.3 - cache: pnpm + save: false - name: Install dependencies run: pnpm install --frozen-lockfile @@ -131,20 +125,19 @@ jobs: timeout-minutes: 10 permissions: contents: read + defaults: + run: + shell: nix develop --command bash -eo pipefail {0} steps: - name: Checkout repository uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0 with: persist-credentials: false - - name: Setup pnpm - uses: pnpm/action-setup@fc06bc1257f339d1d5d8b3a19a8cae5388b55320 # v5.0.0 - - - name: Setup Node.js - uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0 + - name: Setup Nix + uses: furedea/reusable-workflows/.github/actions/nix-setup@2ae953294b9a805d0705657adc1d9d4f1bc1f646 # v1.3.0 with: - node-version: 22.23.3 - cache: pnpm + save: false - name: Install dependencies run: pnpm install --frozen-lockfile diff --git a/flake.nix b/flake.nix index 25d8ea4..da7eaf9 100644 --- a/flake.nix +++ b/flake.nix @@ -9,22 +9,33 @@ outputs = { nixpkgs, nixpkgs-unstable, ... }: let - system = "aarch64-darwin"; - pkgs = import nixpkgs { inherit system; }; + systems = [ + "aarch64-darwin" + "x86_64-linux" + ]; + forAllSystems = nixpkgs.lib.genAttrs systems; in { - devShells.${system}.default = pkgs.mkShell { - packages = with pkgs; [ - commitlint - deadnix - # lefthook before 2.1.6 runs hooks under a pty, which agent sandboxes deny. - nixpkgs-unstable.legacyPackages.${system}.lefthook - ls-lint - nixfmt - nodejs_24 - pnpm - statix - ]; - }; + devShells = forAllSystems ( + system: + let + pkgs = nixpkgs.legacyPackages.${system}; + in + { + default = pkgs.mkShell { + packages = with pkgs; [ + commitlint + deadnix + # lefthook before 2.1.6 runs hooks under a pty, which agent sandboxes deny. + nixpkgs-unstable.legacyPackages.${system}.lefthook + ls-lint + nixfmt + nodejs_24 + pnpm + statix + ]; + }; + } + ); }; }