Skip to content

Commit 56d2c18

Browse files
committed
Add CI scripts
1 parent 422c52a commit 56d2c18

File tree

4 files changed

+160
-0
lines changed

4 files changed

+160
-0
lines changed

ci/evaluate-release.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/env bash
2+
3+
source ./release-versions.txt
4+
5+
if [[ $RELEASE_VERSION == *[RCM]* ]]
6+
then
7+
echo "prerelease=true" >> $GITHUB_ENV
8+
echo "ga_release=false" >> $GITHUB_ENV
9+
echo "maven_server_id=packagecloud-rabbitmq-maven-milestones" >> $GITHUB_ENV
10+
else
11+
echo "prerelease=false" >> $GITHUB_ENV
12+
echo "ga_release=true" >> $GITHUB_ENV
13+
echo "maven_server_id=ossrh" >> $GITHUB_ENV
14+
fi

ci/release-java-client.sh

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#!/usr/bin/env bash
2+
3+
source ./release-versions.txt
4+
git checkout $RELEASE_BRANCH
5+
6+
./mvnw release:clean release:prepare -DdryRun=true -Darguments="-DskipTests" --no-transfer-progress \
7+
--batch-mode -Dtag="v$RELEASE_VERSION" \
8+
-DreleaseVersion=$RELEASE_VERSION \
9+
-DdevelopmentVersion=$DEVELOPMENT_VERSION \
10+
11+
./mvnw release:clean release:prepare -Darguments="-DskipTests" --no-transfer-progress \
12+
--batch-mode -Dtag="v$RELEASE_VERSION" \
13+
-DreleaseVersion=$RELEASE_VERSION \
14+
-DdevelopmentVersion=$DEVELOPMENT_VERSION
15+
16+
git checkout "v$RELEASE_VERSION"
17+
18+
if [[ $RELEASE_VERSION == *[RCM]* ]]
19+
then
20+
MAVEN_PROFILE="milestone"
21+
echo "prerelease=true" >> $GITHUB_ENV
22+
else
23+
MAVEN_PROFILE="release"
24+
echo "prerelease=false" >> $GITHUB_ENV
25+
fi
26+
27+
./mvnw clean deploy -P $MAVEN_PROFILE -DskipTests --no-transfer-progress

ci/start-broker.sh

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
#!/usr/bin/env bash
2+
3+
LOCAL_SCRIPT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
4+
5+
RABBITMQ_IMAGE=${RABBITMQ_IMAGE:-rabbitmq:3.12}
6+
7+
wait_for_message() {
8+
while ! docker logs "$1" | grep -q "$2";
9+
do
10+
sleep 5
11+
echo "Waiting 5 seconds for $1 to start..."
12+
done
13+
}
14+
15+
make -C "${PWD}"/tls-gen/basic
16+
17+
mv tls-gen/basic/result/server_$(hostname -s)_certificate.pem tls-gen/basic/result/server_certificate.pem
18+
mv tls-gen/basic/result/server_$(hostname -s)_key.pem tls-gen/basic/result/server_key.pem
19+
mv tls-gen/basic/server_$(hostname -s) tls-gen/basic/server
20+
mv tls-gen/basic/client_$(hostname -s) tls-gen/basic/client
21+
22+
mkdir -p rabbitmq-configuration/tls
23+
24+
cp -R "${PWD}"/tls-gen/basic/* rabbitmq-configuration/tls
25+
chmod -R o+r rabbitmq-configuration/tls/*
26+
./mvnw -q clean resources:testResources -Dtest-tls-certs.dir=/etc/rabbitmq/tls
27+
cp target/test-classes/[email protected] rabbitmq-configuration/rabbitmq.config
28+
29+
echo "Running RabbitMQ ${RABBITMQ_IMAGE}"
30+
31+
docker rm -f rabbitmq 2>/dev/null || echo "rabbitmq was not running"
32+
docker run -d --name rabbitmq \
33+
--network host \
34+
-v "${PWD}"/rabbitmq-configuration:/etc/rabbitmq \
35+
"${RABBITMQ_IMAGE}"
36+
37+
wait_for_message rabbitmq "completed with"
38+
39+
docker exec rabbitmq rabbitmq-diagnostics erlang_version
40+
docker exec rabbitmq rabbitmqctl version

ci/start-cluster.sh

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
#!/usr/bin/env bash
2+
3+
LOCAL_SCRIPT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
4+
5+
RABBITMQ_IMAGE=${RABBITMQ_IMAGE:-rabbitmq:3.12}
6+
7+
wait_for_message() {
8+
while ! docker logs "$1" | grep -q "$2";
9+
do
10+
sleep 5
11+
echo "Waiting 5 seconds for $1 to start..."
12+
done
13+
}
14+
15+
make -C "${PWD}"/tls-gen/basic
16+
17+
mv tls-gen/basic/result/server_$(hostname -s)_certificate.pem tls-gen/basic/result/server_certificate.pem
18+
mv tls-gen/basic/result/server_$(hostname -s)_key.pem tls-gen/basic/result/server_key.pem
19+
mv tls-gen/basic/server_$(hostname -s) tls-gen/basic/server
20+
mv tls-gen/basic/client_$(hostname -s) tls-gen/basic/client
21+
22+
mkdir -p rabbitmq-configuration/tls
23+
24+
cp -R "${PWD}"/tls-gen/basic/* rabbitmq-configuration/tls
25+
chmod -R o+r rabbitmq-configuration/tls/*
26+
./mvnw -q clean resources:testResources -Dtest-tls-certs.dir=/etc/rabbitmq/tls
27+
cp target/test-classes/[email protected] rabbitmq-configuration/[email protected]
28+
cp target/test-classes/[email protected] rabbitmq-configuration/[email protected]
29+
30+
echo "Running RabbitMQ ${RABBITMQ_IMAGE}"
31+
32+
docker rm -f rabbitmq 2>/dev/null || echo "rabbitmq was not running"
33+
docker run -d --name rabbitmq \
34+
--network host \
35+
-v "${PWD}"/rabbitmq-configuration:/etc/rabbitmq \
36+
--env RABBITMQ_CONFIG_FILE=/etc/rabbitmq/[email protected] \
37+
--env RABBITMQ_NODENAME=rabbit@$(hostname) \
38+
--env RABBITMQ_NODE_PORT=5672 \
39+
--env RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-setcookie do-not-do-this-in-production" \
40+
"${RABBITMQ_IMAGE}"
41+
42+
# for CLI commands to share the same cookie
43+
docker exec rabbitmq bash -c "echo 'do-not-do-this-in-production' > /var/lib/rabbitmq/.erlang.cookie"
44+
docker exec rabbitmq chmod 0600 /var/lib/rabbitmq/.erlang.cookie
45+
46+
wait_for_message rabbitmq "completed with"
47+
48+
docker run -d --name hare \
49+
--network host \
50+
-v "${PWD}"/rabbitmq-configuration:/etc/rabbitmq \
51+
--env RABBITMQ_CONFIG_FILE=/etc/rabbitmq/[email protected] \
52+
--env RABBITMQ_NODENAME=hare@$(hostname) \
53+
--env RABBITMQ_NODE_PORT=5673 \
54+
--env RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS="-setcookie do-not-do-this-in-production" \
55+
"${RABBITMQ_IMAGE}"
56+
57+
# for CLI commands to share the same cookie
58+
docker exec hare bash -c "echo 'do-not-do-this-in-production' > /var/lib/rabbitmq/.erlang.cookie"
59+
docker exec hare chmod 0600 /var/lib/rabbitmq/.erlang.cookie
60+
61+
wait_for_message hare "completed with"
62+
63+
docker exec hare rabbitmqctl --node hare@$(hostname) status
64+
65+
docker exec rabbitmq rabbitmq-diagnostics --node rabbit@$(hostname) is_running
66+
docker exec hare rabbitmq-diagnostics --node hare@$(hostname) is_running
67+
68+
docker exec hare rabbitmqctl --node hare@$(hostname) stop_app
69+
docker exec hare rabbitmqctl --node hare@$(hostname) join_cluster rabbit@$(hostname)
70+
docker exec hare rabbitmqctl --node hare@$(hostname) start_app
71+
72+
sleep 10
73+
74+
docker exec hare rabbitmqctl --node hare@$(hostname) await_startup
75+
76+
docker exec rabbitmq rabbitmq-diagnostics --node rabbit@$(hostname) erlang_version
77+
docker exec rabbitmq rabbitmqctl --node rabbit@$(hostname) version
78+
docker exec rabbitmq rabbitmqctl --node rabbit@$(hostname) status
79+
docker exec rabbitmq rabbitmqctl --node rabbit@$(hostname) cluster_status

0 commit comments

Comments
 (0)