Repository navigation
Expand file tree
/
Copy pathjustfile
More file actions
73 lines (55 loc) · 2.12 KB
/
Copy pathjustfile
File metadata and controls
73 lines (55 loc) · 2.12 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
set quiet
import? '../sdk-codegen/utils.just'
# make vendored executables callable directly
export PATH := "vendor/bin:" + env_var('PATH')
_default:
just --list --unsorted
# ⭐ run format, lint, and tests to prepare for CI
prepare: format lint test
# install vendored dependencies
install *args:
composer install {{ if is_dependency() == "true" {"--quiet"} else {""} }} {{ args }}
# ⭐ run full unit test suite; needs stripe-mock
[no-exit-message]
test *args: install
phpunit {{ args }}
# run tests in CI; can use autoload mode (or not)
[confirm("This will modify local files and is intended for use in CI; do you want to proceed?")]
ci-test autoload:
php build.php {{ autoload }}
# ⭐ format all files
format *args: install
php-cs-fixer fix -v --using-cache=no {{ args }}
# check formatting for, but don't modify, files
format-check: (format "--dry-run")
# ⭐ statically analyze code
lint *args:
php -d memory_limit=512M vendor/bin/phpstan analyse lib tests {{args}}
# statically analyze code (strict)
lint-test:
phpstan analyse examples/IteratorExample.php --level=9
# for backwards compatibility; ideally removed later
[private]
alias phpstan := lint
# called by tooling
[private]
update-version version:
echo "{{ version }}" > VERSION
perl -pi -e 's|VERSION = '\''[.\-\w\d]+'\''|VERSION = '\''{{ version }}'\''|' lib/Stripe.php
PHPDOCUMENTOR_VERSION := "v3.0.0"
# generates docs; currently broken? can unhide if working
[private]
phpdoc:
#!/usr/bin/env bash
set -euo pipefail
if [ ! -f vendor/bin/phpdoc ]; then
curl -sfL https://github.com/phpDocumentor/phpDocumentor/releases/download/{{ PHPDOCUMENTOR_VERSION }}/phpDocumentor.phar -o vendor/bin/phpdoc
chmod +x vendor/bin/phpdoc
fi
phpdoc
# ⭐ print the API version this SDK pins and the lowest runtime it supports
print-version-info:
#!/usr/bin/env bash
set -euo pipefail
echo "pinned-api-version: $(rg -N --color never -m1 -o '[0-9]{4}-[0-9]{2}-[0-9]{2}[.\w-]*' lib/Util/ApiVersion.php)"
echo "minimum-runtime-version: $(rg -N --color never -o '"php": ">=([^"]+)"' --replace '$1' composer.json)"