Skip to content

Commit b17f953

Browse files
committed
Work into a local matrix thing
1 parent a276626 commit b17f953

12 files changed

+148
-33
lines changed

.github/workflows/test.yml

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,8 @@ jobs:
2424
# - wikibase/wikibase:1.38.5-wmde.10 # Pre extension Registration
2525
- wikibase/wikibase:1.39.1-wmde.11 # Requires wfLoadExtension
2626
sql:
27-
# - mariadb:10.3 # No real difference between 10.3 and 10.5 mariadb, so just use the newest one
28-
# - mariadb:10.5
29-
# - mariadb:10.6
30-
# - mariadb:10.7
31-
# - mariadb:10.8
32-
- mariadb:10.9
27+
# - mariadb:10.9
28+
- mariadb:11.7
3329
# - mysql:5.7 # MariaDB seems to generally be the faster choice...
3430
# - mysql:8.0 # Broken! and thus untested... (Probably because the install fails? :)
3531
settings:

README.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ Steps:
1818
You can also try running them locally... For example...
1919

2020
```sh
21-
export PROFILE_IMAGE=wikibase/wikibase:1.39.1-wmde.11
21+
export PROFILE_IMAGE=wikibase/wikibase:mw1.43.0
2222
export PROFILE_SETTINGS=default
23-
export PROFILE_SQL=mariadb:10.9
23+
export PROFILE_SQL=mariadb:11.7
2424

2525
docker-compose up -d mysql wikibase1
2626
./docker-compose-wait1.sh
@@ -41,4 +41,16 @@ And to delete everything, just...
4141

4242
```sh
4343
docker-compose down --volumes
44-
```
44+
```
45+
46+
## Running Matrix Jobs Locally
47+
48+
To run the matrix jobs locally, use the `run_matrix.sh` script. This script reads the matrix configuration from `matrix.yml` and runs the jobs locally, storing the outputs in the `.data` directory.
49+
50+
### Usage
51+
52+
```bash
53+
./run_matrix.sh
54+
```
55+
56+
The outputs will be stored in the `.data` directory with a directory schema reflecting the matrix configuration. Each run will also be summarized in a CSV file located at `.data/summary.csv`, and the statistics from the API will be included in the output.

loads/wbeditentity-2000EmptyItems.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# Get the ball (and id counters rolling) with some simple entities..
2-
curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=item' -F 'data={}' http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
3-
curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=property' -F "data={\"datatype\":\"string\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
2+
(echo $(curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=item' -F 'data={}' http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php)) >> process.out
3+
(echo $(curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=property' -F "data={\"datatype\":\"string\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php)) >> process.out
44

55
# Then do the bulk of the stuff
66

77
for i in {1..2000}
88
do
99
(
10-
curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=item' -F 'data={}' http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
10+
(echo $(curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=item' -F 'data={}' http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php)) >> process.out
1111
)&
1212
if (( $(wc -w <<<$(jobs -p)) % $ASYNC == 0 )); then sleep 0.5; fi
1313
done

loads/wbeditentity-2000FullishItems.sh

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
1+
# Function to make a curl request and retry if "success" is missing
2+
make_request() {
3+
local response
4+
local url="http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php"
5+
response=$(curl -s -m 20 -X POST -F "action=wbeditentity" -F "format=json" -F "token=+\\" -F "$1" -F "$2" "$url")
6+
echo "$response" >> process.out
7+
if [[ "$response" != *"success"* ]]; then
8+
echo "success missing, retrying"
9+
make_request "$1" "$2"
10+
fi
11+
}
12+
113
# Get the ball (and id counters rolling) with some simple entities..
2-
curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=item' -F 'data={}' http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
3-
curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=property' -F "data={\"datatype\":\"string\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
14+
make_request "new=item" "data={}"
15+
make_request "new=property" "data={\"datatype\":\"string\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}"
416

517
# Then do the bulk of the stuff
618

@@ -12,7 +24,7 @@ curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F
1224
properties=( wikibase-item wikibase-property string time )
1325
for p in "${properties[@]}"
1426
do
15-
curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=property' -F "data={\"datatype\":\"${p}\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
27+
make_request "new=property" "data={\"datatype\":\"${p}\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}"
1628
done
1729

1830
# Create some items including statements
@@ -21,7 +33,7 @@ done
2133
for i in {1..1000}
2234
do
2335
(
24-
curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=item' -F "data={\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}},\"descriptions\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}},\"aliases\":{\"en\":[{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}]},\"claims\":{\"P4\":[{\"mainsnak\":{\"snaktype\":\"value\",\"property\":\"P4\",\"datavalue\":{\"value\":\"statement-string-value\",\"type\":\"string\"},\"datatype\":\"string\"},\"type\":\"statement\",\"rank\":\"normal\"}]}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
36+
make_request "new=item" "data={\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}},\"descriptions\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}},\"aliases\":{\"en\":[{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}]},\"claims\":{\"P4\":[{\"mainsnak\":{\"snaktype\":\"value\",\"property\":\"P4\",\"datavalue\":{\"value\":\"statement-string-value\",\"type\":\"string\"},\"datatype\":\"string\"},\"type\":\"statement\",\"rank\":\"normal\"}]}}"
2537
)&
2638
if (( $(wc -w <<<$(jobs -p)) % $ASYNC == 0 )); then sleep 0.5; fi
2739
done
@@ -30,7 +42,7 @@ done
3042
for i in {1..1000}
3143
do
3244
(
33-
curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=item' -F "data={\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}},\"descriptions\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}},\"aliases\":{\"en\":[{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}]},\"claims\":{\"P2\":[{\"mainsnak\":{\"snaktype\":\"value\",\"property\":\"P2\",\"datavalue\":{\"value\":{\"entity-type\":\"item\",\"numeric-id\":1,\"id\":\"Q1\"},\"type\":\"wikibase-entityid\"},\"datatype\":\"wikibase-item\"},\"type\":\"statement\",\"rank\":\"normal\"}]}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
45+
make_request "new=item" "data={\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}},\"descriptions\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}},\"aliases\":{\"en\":[{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}]},\"claims\":{\"P2\":[{\"mainsnak\":{\"snaktype\":\"value\",\"property\":\"P2\",\"datavalue\":{\"value\":{\"entity-type\":\"item\",\"numeric-id\":1,\"id\":\"Q1\"},\"type\":\"wikibase-entityid\"},\"datatype\":\"wikibase-item\"},\"type\":\"statement\",\"rank\":\"normal\"}]}}"
3446
)&
3547
if (( $(wc -w <<<$(jobs -p)) % $ASYNC == 0 )); then sleep 0.5; fi
3648
done

loads/wbeditentity-2000MultiTermItems.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# Get the ball (and id counters rolling) with some simple entities..
2-
curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=item' -F 'data={}' http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
3-
curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=property' -F "data={\"datatype\":\"string\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
2+
(echo $(curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=item' -F 'data={}' http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php)) >> process.out
3+
(echo $(curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=property' -F "data={\"datatype\":\"string\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php)) >> process.out
44

55
# Then do the bulk of the stuff
66

77
for i in {1..2000}
88
do
99
(
10-
curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=item' -F "data={\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}},\"descriptions\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}},\"aliases\":{\"en\":[{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}]}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
10+
(echo $(curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=item' -F "data={\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}},\"descriptions\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}},\"aliases\":{\"en\":[{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}]}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php)) >> process.out
1111
)&
1212
if (( $(wc -w <<<$(jobs -p)) % $ASYNC == 0 )); then sleep 0.5; fi
1313
done

loads/wbeditentity-2000SingleTermItems.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# Get the ball (and id counters rolling) with some simple entities..
2-
curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=item' -F 'data={}' http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
3-
curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=property' -F "data={\"datatype\":\"string\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
2+
(echo $(curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=item' -F 'data={}' http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php)) >> process.out
3+
(echo $(curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=property' -F "data={\"datatype\":\"string\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php)) >> process.out
44

55
# Then do the bulk of the stuff
66

77
for i in {1..2000}
88
do
99
(
10-
curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=item' -F "data={\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
10+
(echo $(curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=item' -F "data={\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php)) >> process.out
1111
)&
1212
if (( $(wc -w <<<$(jobs -p)) % $ASYNC == 0 )); then sleep 0.5; fi
1313
done

loads/wbfastimport-2000full-batch100.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Get the ball (and id counters rolling) with some simple entities..
22
# Using wbfastimport for the item to try and get the error like https://phabricator.wikimedia.org/P47263
3-
curl -s -m 20 -X POST -F 'action=wbfastimport' -F 'format=json' -F 'data={\"type\":\"item\"}' http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
4-
curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'new=property' -F "data={\"datatype\":\"string\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
3+
(echo $(curl -s -m 20 -X POST -F 'action=wbfastimport' -F 'format=json' -F 'data={\"type\":\"item\"}' http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php)) >> process.out
4+
(echo $(curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'new=property' -F "data={\"datatype\":\"string\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php)) >> process.out
55

66
# # Create some properties
77
# # P2 = wikibase-item
@@ -11,7 +11,7 @@ curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'new=property
1111
# properties=( wikibase-item wikibase-property string time )
1212
# for p in "${properties[@]}"
1313
# do
14-
# curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=property' -F "data={\"datatype\":\"${p}\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
14+
# (echo $(curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=property' -F "data={\"datatype\":\"${p}\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php)) >> process.out
1515
# done
1616

1717
# Do bulk stuff
@@ -28,7 +28,7 @@ do
2828

2929
# Post the contents of the file
3030
(
31-
curl -s -m 20 -X POST -F 'action=wbfastimport' -F 'format=json' -F "data=${DATA}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
31+
(echo $(curl -s -m 20 -X POST -F 'action=wbfastimport' -F 'format=json' -F "data=${DATA}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php)) >> process.out
3232
)&
3333
if (( $(wc -w <<<$(jobs -p)) % $ASYNC == 0 )); then sleep 0.5; fi
3434
done

loads/wbfastimport-5000full-batch250.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Get the ball (and id counters rolling) with some simple entities..
22
# Using wbfastimport for the item to try and get the error like https://phabricator.wikimedia.org/P47263
3-
curl -s -m 20 -X POST -F 'action=wbfastimport' -F 'format=json' -F 'data={\"type\":\"item\"}' http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
4-
curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'new=property' -F "data={\"datatype\":\"string\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
3+
(echo $(curl -s -m 20 -X POST -F 'action=wbfastimport' -F 'format=json' -F 'data={\"type\":\"item\"}' http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php)) >> process.out
4+
(echo $(curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'new=property' -F "data={\"datatype\":\"string\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php)) >> process.out
55

66
# # Create some properties
77
# # P2 = wikibase-item
@@ -11,7 +11,7 @@ curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'new=property
1111
# properties=( wikibase-item wikibase-property string time )
1212
# for p in "${properties[@]}"
1313
# do
14-
# curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=property' -F "data={\"datatype\":\"${p}\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
14+
# (echo $(curl -s -m 20 -X POST -F 'action=wbeditentity' -F 'format=json' -F 'token=+\' -F 'new=property' -F "data={\"datatype\":\"${p}\",\"labels\":{\"en\":{\"language\":\"en\",\"value\":\"$(sed "s/[^a-zA-Z0-9]//g" <<< $(openssl rand -base64 30))\"}}}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php)) >> process.out
1515
# done
1616

1717
# Do bulk stuff
@@ -28,7 +28,7 @@ do
2828

2929
# Post the contents of the file
3030
(
31-
curl -s -m 20 -X POST -F 'action=wbfastimport' -F 'format=json' -F "data=${DATA}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php >> process.out && echo >> process.out
31+
(echo $(curl -s -m 20 -X POST -F 'action=wbfastimport' -F 'format=json' -F "data=${DATA}" http://localhost:818$((1 + RANDOM % $INSTANCES))/w/api.php)) >> process.out
3232
)&
3333
if (( $(wc -w <<<$(jobs -p)) % $ASYNC == 0 )); then sleep 0.5; fi
3434
done

matrix.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
instances:
2+
- 1
3+
# - 2
4+
async:
5+
# - 1
6+
# - 5
7+
- 60
8+
images:
9+
- wikibase/wikibase:1.39.1-wmde.11
10+
# - wikibase/wikibase:mw1.43.0
11+
sql:
12+
# - mariadb:10.9
13+
- mariadb:11.7
14+
settings:
15+
# - default
16+
- lightweight
17+
loads:
18+
- wbeditentity-2000FullishItems
19+
# - wbfastimport-2000full-batch100

0 commit comments

Comments
 (0)