-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathjustfile
More file actions
109 lines (88 loc) · 4.07 KB
/
Copy pathjustfile
File metadata and controls
109 lines (88 loc) · 4.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
set dotenv-load := true
ci: ci-up-solve ci-up-val ci-ipc ci-warm-up
# Run planning tests for UP integration
ci-up-solve:
# ignore invalid problem `robot_with_variable_duration`. Bug report: https://github.com/aiplan4eu/unified-planning/pull/734
python3 planning/unified/deps/unified-planning/up_test_cases/report.py aries -e up_aries_tests -b robot_with_variable_duration
# Run validation tests for UP integration
ci-up-val:
python3 planning/unified/deps/unified-planning/up_test_cases/report.py aries-val -e up_aries_tests
# Run resolution tests on IPC problems
ci-ipc:
ARIES_UP_ASSUME_REALS_ARE_INTS=true python3 ci/ipc.py
# Run tests for warm-starting
ci-warm-up:
pytest planning/unified/plugin/test/test_warm_up.py -v -s
# Solve a UP test case
up-solve problem:
python3 planning/unified/scripts/cli.py {{ problem }}
# Export a UP test case to a protobuf binary file (/tmp/problem.upp)
up-export problem:
python3 planning/unified/scripts/cli.py {{ problem }} -m dump
# Solve specific IPC problems
ipc-solve +problem:
ARIES_UP_ASSUME_REALS_ARE_INTS=true python3 ci/ipc.py {{ problem }}
fzn-build:
cargo build --release --bin aries_fzn
cp target/release/aries_fzn aries_fzn/share
# Invoke minizinc, within the development environments (with aries compiled in release mode)
minizinc +args: fzn-build
minizinc --solver aries {{ args }}
fzn-build-dbg:
cargo build --profile ci --bin aries_fzn
cp target/ci/aries_fzn aries_fzn/share
# Invoke minizinc, within the development environments (with aries compiled in ci mode)
minizinc-dbg +args: fzn-build-dbg
# Flatzinc file is exported to a file `/tmp/pb.fzn-build`
# and can me tested directly with `cargo run --bin aries_fzn -- /tmp/pb.out`
minizinc --solver aries {{ args }} --fzn /tmp/pb.fzn
# Shortcut command to run the samply profiler on a specific binary
samply bin +args:
cargo build --profile perf --bin {{ bin }}
samply record target/perf/{{ bin }} {{ args }}
# Parses all instance-1.pddl [HP]DDL files in planning/ext/pddl except for the few known to be unsupported.
ci-pddl-parse-all lift="false" filter="d":
#!/usr/bin/env bash
set -e # stop on first error
cargo build --profile ci --bin pddl-parser
# ignore the following domains
# - from 1998 IPC (non stabilized syntax)
# - with derived predicates
# - temporal machine shop (TMS, IPC 2011 and 2014) that contains an object declared twice with two distinct type (valid PDDL but unsupported)
# - cyber-security-sequential-satisficing-strips as it (`instance-1.pddl`) as it is VERY long to lift
# - organic-synthesis-split-sequential-satisficing (same reason)
# note: promela-optical-telegraph-strips is slightly long to lift but manageable
LIFT=""
if [ "{{ lift }}" = "true" ]; then LIFT="--lift"; fi
for f in `\
find planning/ext/pddl/ -name instance-1.[hp]ddl \
| sort \
| grep -v "1998" \
| grep {{ filter }} \
| grep -v derived \
| grep -v temporal-machine-shop \
| grep -v cyber-security-sequential-satisficing-strips \
| grep -v organic-synthesis-split-sequential-satisficing \
`; do
echo $f
target/ci/pddl-parser $LIFT $f > /dev/null
done
# Attempts to validate and optimize all the plan files it can find the planning/problems/upf. Fails if an inconsistency is detected
ci-ape-val-opt:
uv run ci/ape-val.py
# Checks that all problems marked are as solvable are indeed solved within their max-depth
ci-ape-solve timeout="5":
uv run ci/ape-solve.py -t {{ timeout }} --from-toml ci/problems.toml
bench-jsp name timeout="10":
#!/usr/bin/env bash
set -e # stop on first error
for instance in `cat benches.jsp`; do
cargo run --profile perf --bin scheduler -- -t {{ timeout }} -r {{ name }} jsp $instance
done
bench-fjs name timeout="30":
#!/usr/bin/env bash
set -e # stop on first error
cargo build --profile perf --bin scheduler
for instance in `cat benches.fjs`; do
./target/perf/scheduler -t {{ timeout }} -r bench-res/{{ name }} fjs $instance
done