Skip to content

Commit 357b1a3

Browse files
committed
updated GH actions scripts
1 parent b9a3bf2 commit 357b1a3

17 files changed

+150
-500
lines changed

.github/workflows/maven.yml

Lines changed: 51 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,15 @@
11
name: Java CI
22

33
on:
4-
pull_request:
4+
push:
55
branches:
66
- master
7-
- preview
8-
push:
7+
pull_request:
8+
types: [ opened, synchronize, reopened ]
99
branches:
1010
- master
11-
- preview
1211

1312
jobs:
14-
package:
15-
timeout-minutes: 20
16-
runs-on: ubuntu-latest
17-
18-
steps:
19-
- uses: actions/checkout@v1
20-
- name: Set up JDK 1.8
21-
uses: actions/setup-java@v1
22-
with:
23-
java-version: 1.8
24-
- name: Package
25-
run: mvn --no-transfer-progress -DskipTests=true package
2613

2714
test:
2815
timeout-minutes: 20
@@ -33,61 +20,66 @@ jobs:
3320
matrix:
3421
docker-img:
3522
- docker.io/arangodb/arangodb:3.7.15
36-
- docker.io/arangodb/arangodb:3.8.1
23+
- docker.io/arangodb/arangodb:3.8.2
3724
- docker.io/arangodb/enterprise:3.7.15
38-
- docker.io/arangodb/enterprise:3.8.1
39-
25+
- docker.io/arangodb/enterprise:3.8.2
4026
topology:
4127
- single
4228
- cluster
43-
- active-failover
29+
- activefailover
30+
db-ext-names:
31+
- false
32+
java-version:
33+
- 8
34+
user-language:
35+
- en
36+
include:
37+
- docker-img: docker.io/arangodb/arangodb-test:PR14700
38+
topology: single
39+
db-ext-names: true
40+
java-version: 11
41+
user-language: tr
42+
- docker-img: docker.io/arangodb/enterprise-test:PR14700
43+
topology: cluster
44+
db-ext-names: true
45+
java-version: 17
46+
user-language: tr
4447

4548
steps:
46-
- uses: actions/checkout@v1
49+
- uses: actions/checkout@v2
4750
- name: Set up JDK 1.8
48-
uses: actions/setup-java@v1
51+
uses: actions/setup-java@v2
4952
with:
50-
java-version: 1.8
53+
java-version: ${{matrix.java-version}}
54+
distribution: 'adopt'
5155
- name: Start Database
52-
run: ./docker/start_db_${{ matrix.topology }}_retry_fail.sh ${{ matrix.docker-img }}
56+
run: ./docker/start_db.sh
5357
env:
5458
ARANGO_LICENSE_KEY: ${{ secrets.ARANGO_LICENSE_KEY }}
59+
STARTER_MODE: ${{matrix.topology}}
60+
DOCKER_IMAGE: ${{matrix.docker-img}}
61+
DATABASE_EXTENDED_NAMES: ${{matrix.db-ext-names}}
62+
- name: Cache local Maven repository
63+
uses: actions/cache@v2
64+
with:
65+
path: ~/.m2/repository
66+
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
67+
restore-keys: ${{ runner.os }}-maven-
68+
- name: Info
69+
run: mvn -version
5570
- name: Test
56-
run: mvn --no-transfer-progress test
57-
- name: Debug containers
71+
run: mvn --no-transfer-progress test -DargLine="-Duser.language=${{matrix.user-language}}"
72+
- name: Collect docker logs on failure
5873
if: ${{ cancelled() || failure() }}
59-
run: ./docker/debug_containers_${{ matrix.topology }}.sh
60-
61-
test-locale:
62-
timeout-minutes: 20
63-
runs-on: ubuntu-latest
64-
65-
strategy:
66-
fail-fast: false
67-
matrix:
68-
docker-img:
69-
# - docker.io/arangodb/arangodb:3.7.15
70-
- docker.io/arangodb/arangodb:3.8.1
71-
# - docker.io/arangodb/enterprise:3.7.15
72-
# - docker.io/arangodb/enterprise:3.8.1
73-
74-
topology:
75-
- single
76-
# - cluster
77-
# - active-failover
78-
79-
steps:
80-
- uses: actions/checkout@v1
81-
- name: Set up JDK 1.8
82-
uses: actions/setup-java@v1
74+
uses: jwalton/gh-docker-logs@v1
8375
with:
84-
java-version: 1.8
85-
- name: Start Database
86-
run: ./docker/start_db_${{ matrix.topology }}_retry_fail.sh ${{ matrix.docker-img }}
87-
env:
88-
ARANGO_LICENSE_KEY: ${{ secrets.ARANGO_LICENSE_KEY }}
89-
- name: Test
90-
run: mvn --no-transfer-progress test -DargLine="-Duser.language=tr"
91-
- name: Debug containers
76+
dest: './logs'
77+
- name: Tar logs
9278
if: ${{ cancelled() || failure() }}
93-
run: ./docker/debug_containers_${{ matrix.topology }}.sh
79+
run: tar cvzf ./logs.tgz ./logs
80+
- name: Upload logs to GitHub
81+
if: ${{ cancelled() || failure() }}
82+
uses: actions/upload-artifact@master
83+
with:
84+
name: logs.tgz
85+
path: ./logs.tgz

docker/clean_active-failover.sh

Lines changed: 0 additions & 7 deletions
This file was deleted.

docker/clean_cluster.sh

Lines changed: 0 additions & 11 deletions
This file was deleted.

docker/clean_single.sh

Lines changed: 0 additions & 3 deletions
This file was deleted.

docker/debug_containers_active-failover.sh

Lines changed: 0 additions & 20 deletions
This file was deleted.

docker/debug_containers_cluster.sh

Lines changed: 0 additions & 24 deletions
This file was deleted.

docker/debug_containers_single.sh

Lines changed: 0 additions & 18 deletions
This file was deleted.

docker/start_db.sh

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
#!/bin/bash
2+
3+
# Configuration environment variables:
4+
# STARTER_MODE: (single|cluster|activefailover), default single
5+
# DOCKER_IMAGE: ArangoDB docker image, default gcr.io/gcr-for-testing/arangodb/arangodb:latest
6+
# SSL: (true|false), default false
7+
# DATABASE_EXTENDED_NAMES: (true|false), default false
8+
# ARANGO_LICENSE_KEY: only required for ArangoDB Enterprise
9+
10+
# EXAMPLE:
11+
# STARTER_MODE=cluster SSL=true ./start_db.sh
12+
13+
STARTER_MODE=${STARTER_MODE:=single}
14+
DOCKER_IMAGE=${DOCKER_IMAGE:=gcr.io/gcr-for-testing/arangodb/arangodb:latest}
15+
SSL=${SSL:=false}
16+
DATABASE_EXTENDED_NAMES=${DATABASE_EXTENDED_NAMES:=false}
17+
18+
STARTER_DOCKER_IMAGE=gcr.io/gcr-for-testing/arangodb/arangodb-starter:latest
19+
20+
# exit when any command fails
21+
set -e
22+
23+
docker pull $STARTER_DOCKER_IMAGE
24+
docker pull $DOCKER_IMAGE
25+
26+
LOCATION=$(pwd)/$(dirname "$0")
27+
28+
echo "Averysecretword" > "$LOCATION"/jwtSecret
29+
docker run --rm -v "$LOCATION"/jwtSecret:/jwtSecret "$STARTER_DOCKER_IMAGE" auth header --auth.jwt-secret /jwtSecret > "$LOCATION"/jwtHeader
30+
AUTHORIZATION_HEADER=$(cat "$LOCATION"/jwtHeader)
31+
32+
STARTER_ARGS=
33+
SCHEME=http
34+
ARANGOSH_SCHEME=http+tcp
35+
COORDINATORS=("172.17.0.1:8529" "172.17.0.1:8539" "172.17.0.1:8549")
36+
37+
if [ "$STARTER_MODE" == "single" ]; then
38+
COORDINATORS=("172.17.0.1:8529")
39+
fi
40+
41+
if [ "$SSL" == "true" ]; then
42+
STARTER_ARGS="$STARTER_ARGS --ssl.keyfile=server.pem"
43+
SCHEME=https
44+
ARANGOSH_SCHEME=http+ssl
45+
fi
46+
47+
if [ "$DATABASE_EXTENDED_NAMES" == "true" ]; then
48+
STARTER_ARGS="${STARTER_ARGS} --all.database.extended-names-databases=true"
49+
fi
50+
51+
docker run -d \
52+
--name=adb \
53+
-p 8528:8528 \
54+
-v "$LOCATION"/server.pem:/server.pem \
55+
-v "$LOCATION"/jwtSecret:/jwtSecret \
56+
-v /var/run/docker.sock:/var/run/docker.sock \
57+
-e ARANGO_LICENSE_KEY="$ARANGO_LICENSE_KEY" \
58+
$STARTER_DOCKER_IMAGE \
59+
$STARTER_ARGS \
60+
--docker.container=adb \
61+
--auth.jwt-secret=/jwtSecret \
62+
--starter.address=172.17.0.1 \
63+
--docker.image="${DOCKER_IMAGE}" \
64+
--starter.local --starter.mode=${STARTER_MODE} --all.log.level=debug --all.log.output=+ --log.verbose
65+
66+
67+
wait_server() {
68+
# shellcheck disable=SC2091
69+
until $(curl --output /dev/null --insecure --fail --silent --head -i -H "$AUTHORIZATION_HEADER" "$SCHEME://$1/_api/version"); do
70+
printf '.'
71+
sleep 1
72+
done
73+
}
74+
75+
echo "Waiting..."
76+
77+
for a in ${COORDINATORS[*]} ; do
78+
wait_server "$a"
79+
done
80+
81+
set +e
82+
for a in ${COORDINATORS[*]} ; do
83+
docker run --rm ${DOCKER_IMAGE} arangosh --server.endpoint="$ARANGOSH_SCHEME://$a" --server.authentication=false --javascript.execute-string='require("org/arangodb/users").update("root", "test")'
84+
done
85+
set -e
86+
87+
for a in ${COORDINATORS[*]} ; do
88+
echo ""
89+
curl -u root:test --insecure --fail "$SCHEME://$a/_api/version"
90+
done
91+
92+
echo ""
93+
echo ""
94+
echo "Done, your deployment is reachable at: "
95+
for a in ${COORDINATORS[*]} ; do
96+
echo "$SCHEME://$a"
97+
echo ""
98+
done

0 commit comments

Comments
 (0)