Skip to content

Commit

Permalink
feat: Add Nix support
Browse files Browse the repository at this point in the history
  • Loading branch information
l0b0 committed Oct 17, 2024
1 parent 6f7e862 commit e4eb866
Show file tree
Hide file tree
Showing 4 changed files with 68 additions and 14 deletions.
16 changes: 6 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,12 @@ jobs:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
fetch-depth: 0
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
- uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
- uses: cachix/cachix-action@18cf96c7c98e048e10a83abd92116114cd8504be # v14
with:
python-version: "3.12.3"
- name: Install
run: |
pip install poetry
poetry install --no-root
name: linz
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: Lint & format
run: |
poetry run pre-commit run --all-files
run: nix-shell --pure --run 'pre-commit run --all-files'
- name: Test
run: |
poetry run pytest
run: nix-shell --pure --run pytest
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,6 @@
*.pyc
__pycache__
/.pytest_cache/
/python
Thumbs.db
/.vscode/
32 changes: 28 additions & 4 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,29 +8,53 @@ repos:
name: black
entry: black
language: system
stages: [commit]
stages: [pre-commit]
types: [python]

- id: deadnix
name: deadnix
entry: deadnix
args: [--edit, --fail]
files: \.nix$
language: system
stages: [pre-commit]

- id: isort
name: isort
entry: isort
language: system
stages: [commit]
stages: [pre-commit]
types: [python]

- id: mypy
name: mypy
entry: mypy
args: [--no-incremental]
language: system
stages: [commit]
stages: [pre-commit]
types: [python]
require_serial: true

- id: nixfmt
name: nixfmt
entry: nixfmt
files: \.nix$
language: system
stages: [pre-commit]

- id: pylint
name: pylint
entry: pylint
language: system
stages: [commit]
stages: [pre-commit]
types: [python]
require_serial: true

- id: statix
name: statix
entry: statix
args: [check]
files: \.nix$
pass_filenames: false
language: system
stages: [pre-commit]
33 changes: 33 additions & 0 deletions shell.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
let
pkgs = import (builtins.fetchTarball {
name = "nixos-unstable-2024-10-17";
url = "https://github.com/nixos/nixpkgs/archive/a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c.tar.gz";
sha256 = "1wn29537l343lb0id0byk0699fj0k07m1n2d7jx2n0ssax55vhwy";
}) { };
poetry2nix = import (builtins.fetchTarball {
url = "https://github.com/nix-community/poetry2nix/archive/2024.10.1637698.tar.gz";
sha256 = "08w14qxgn6rklfc83p8z6h91si854kl6nr1pjhdn8smfx7nw5819";
}) { inherit pkgs; };
poetryPackages = poetry2nix.mkPoetryPackages {
projectDir = builtins.path {
path = ./.;
name = "python-linz-logger";
};
};
in
pkgs.mkShell {
packages = [
pkgs.bashInteractive
pkgs.poetry
pkgs.deadnix
pkgs.gitFull
pkgs.nixfmt-rfc-style
pkgs.statix
poetryPackages.poetryPackages
poetryPackages.python.pkgs.pip # For IDEA package resolution
poetryPackages.python.pkgs.setuptools # For IDEA package resolution
];
shellHook = ''
ln --force --no-target-directory --symbolic "${poetryPackages.python}/bin/python" python
'';
}

0 comments on commit e4eb866

Please sign in to comment.