drop impure checks from ci
This commit is contained in:
@@ -1,9 +0,0 @@
|
|||||||
name: checks
|
|
||||||
on:
|
|
||||||
pull_request:
|
|
||||||
jobs:
|
|
||||||
checks-impure:
|
|
||||||
runs-on: nix
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- run: nix run .#impure-checks
|
|
||||||
@@ -36,7 +36,6 @@ in
|
|||||||
++ filter pathExists [
|
++ filter pathExists [
|
||||||
./devshell/flake-module.nix
|
./devshell/flake-module.nix
|
||||||
./flash/flake-module.nix
|
./flash/flake-module.nix
|
||||||
./impure/flake-module.nix
|
|
||||||
./installation/flake-module.nix
|
./installation/flake-module.nix
|
||||||
./update/flake-module.nix
|
./update/flake-module.nix
|
||||||
./morph/flake-module.nix
|
./morph/flake-module.nix
|
||||||
|
|||||||
@@ -1,51 +0,0 @@
|
|||||||
{
|
|
||||||
perSystem =
|
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
self',
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
# a script that executes all other checks
|
|
||||||
packages.impure-checks = pkgs.writeShellScriptBin "impure-checks" ''
|
|
||||||
#!${pkgs.bash}/bin/bash
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
unset CLAN_DIR
|
|
||||||
|
|
||||||
export PATH="${
|
|
||||||
lib.makeBinPath (
|
|
||||||
[
|
|
||||||
pkgs.gitMinimal
|
|
||||||
pkgs.nix
|
|
||||||
pkgs.coreutils
|
|
||||||
pkgs.rsync # needed to have rsync installed on the dummy ssh server
|
|
||||||
]
|
|
||||||
++ self'.packages.clan-cli-full.runtimeDependencies
|
|
||||||
)
|
|
||||||
}"
|
|
||||||
ROOT=$(git rev-parse --show-toplevel)
|
|
||||||
cd "$ROOT/pkgs/clan-cli"
|
|
||||||
|
|
||||||
# Set up custom git configuration for tests
|
|
||||||
export GIT_CONFIG_GLOBAL=$(mktemp)
|
|
||||||
git config --file "$GIT_CONFIG_GLOBAL" user.name "Test User"
|
|
||||||
git config --file "$GIT_CONFIG_GLOBAL" user.email "test@example.com"
|
|
||||||
export GIT_CONFIG_SYSTEM=/dev/null
|
|
||||||
|
|
||||||
# this disables dynamic dependency loading in clan-cli
|
|
||||||
export CLAN_NO_DYNAMIC_DEPS=1
|
|
||||||
|
|
||||||
jobs=$(nproc)
|
|
||||||
# Spawning worker in pytest is relatively slow, so we limit the number of jobs to 13
|
|
||||||
# (current number of impure tests)
|
|
||||||
jobs="$((jobs > 6 ? 6 : jobs))"
|
|
||||||
|
|
||||||
nix develop "$ROOT#clan-cli" -c bash -c "TMPDIR=/tmp python -m pytest -n $jobs -m impure ./clan_cli $@"
|
|
||||||
|
|
||||||
# Clean up temporary git config
|
|
||||||
rm -f "$GIT_CONFIG_GLOBAL"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -90,13 +90,10 @@ export CLAN_DEBUG_COMMANDS=1
|
|||||||
These options help you pinpoint the source and context of print messages and debug logs during development.
|
These options help you pinpoint the source and context of print messages and debug logs during development.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## Analyzing Performance
|
## Analyzing Performance
|
||||||
|
|
||||||
To understand what's causing slow performance, set the environment variable `export CLAN_CLI_PERF=1`. When you complete a clan command, you'll see a summary of various performance metrics, helping you identify what's taking up time.
|
To understand what's causing slow performance, set the environment variable `export CLAN_CLI_PERF=1`. When you complete a clan command, you'll see a summary of various performance metrics, helping you identify what's taking up time.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
## See all possible packages and tests
|
## See all possible packages and tests
|
||||||
|
|
||||||
To quickly show all possible packages and tests execute:
|
To quickly show all possible packages and tests execute:
|
||||||
@@ -155,28 +152,16 @@ To test the CLI locally in a development environment and set breakpoints for deb
|
|||||||
|
|
||||||
## Test Locally in a Nix Sandbox
|
## Test Locally in a Nix Sandbox
|
||||||
|
|
||||||
To run tests in a Nix sandbox, you have two options depending on whether your test functions have been marked as impure or not:
|
To run tests in a Nix sandbox:
|
||||||
|
|
||||||
### Running Tests Marked as Impure
|
|
||||||
|
|
||||||
If your test functions need to execute `nix build` and have been marked as impure because you can't execute `nix build` inside a Nix sandbox, use the following command:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
nix run .#impure-checks -L
|
nix build .#checks.x86_64-linux.clan-pytest-with-core
|
||||||
```
|
```
|
||||||
|
|
||||||
This command will run the impure test functions.
|
|
||||||
|
|
||||||
### Running Pure Tests
|
|
||||||
|
|
||||||
For test functions that have not been marked as impure and don't require executing `nix build`, you can use the following command:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
nix build .#checks.x86_64-linux.clan-pytest --rebuild
|
nix build .#checks.x86_64-linux.clan-pytest-without-core
|
||||||
```
|
```
|
||||||
|
|
||||||
This command will run all pure test functions.
|
|
||||||
|
|
||||||
### Inspecting the Nix Sandbox
|
### Inspecting the Nix Sandbox
|
||||||
|
|
||||||
If you need to inspect the Nix sandbox while running tests, follow these steps:
|
If you need to inspect the Nix sandbox while running tests, follow these steps:
|
||||||
|
|||||||
@@ -32,16 +32,12 @@ You can also run a single test like this:
|
|||||||
pytest -n0 -s tests/test_secrets_cli.py::test_users
|
pytest -n0 -s tests/test_secrets_cli.py::test_users
|
||||||
```
|
```
|
||||||
|
|
||||||
## Run tests in nix container
|
Run all checks in a sandbox
|
||||||
|
|
||||||
Run all impure checks
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
nix run .#impure-checks
|
nix build .#checks.x86_64-linux.clan-pytest-with-core
|
||||||
```
|
```
|
||||||
|
|
||||||
Run all checks
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
nix flake check
|
nix build .#checks.x86_64-linux.clan-pytest-without-core
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user