Skip to content

Commit 60eb5c5

Browse files
committed
Add GHA jobs
(cherry picked from commit 59d522d)
1 parent f10e21c commit 60eb5c5

File tree

3 files changed

+159
-0
lines changed

3 files changed

+159
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
name: Test against RabbitMQ 3.11 alpha
2+
3+
on:
4+
push:
5+
branches:
6+
- 5.x.x-stable
7+
8+
env:
9+
RABBITMQ_IMAGE_TAG: 3.11
10+
RABBITMQ_IMAGE: pivotalrabbitmq/rabbitmq-dev
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-22.04
15+
16+
steps:
17+
- uses: actions/checkout@v3
18+
- name: Checkout tls-gen
19+
uses: actions/checkout@v3
20+
with:
21+
repository: rabbitmq/tls-gen
22+
path: './tls-gen'
23+
- name: Set up Python
24+
uses: actions/setup-python@v2
25+
with:
26+
python-version: '3.x'
27+
- name: Set up JDK
28+
uses: actions/setup-java@v3
29+
with:
30+
distribution: 'temurin'
31+
java-version: '17'
32+
cache: 'maven'
33+
server-id: ossrh
34+
server-username: MAVEN_USERNAME
35+
server-password: MAVEN_PASSWORD
36+
gpg-private-key: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }}
37+
gpg-passphrase: MAVEN_GPG_PASSPHRASE
38+
- name: Start broker
39+
run: ci/start-broker.sh
40+
- name: Get dependencies
41+
run: make deps
42+
- name: Test with NIO
43+
run: |
44+
./mvnw verify -P '!setup-test-cluster,use-nio' -Drabbitmqctl.bin=DOCKER:rabbitmq \
45+
-Dtest-broker.A.nodename=rabbit@$(hostname) -Dmaven.javadoc.skip=true \
46+
-Dtest-client-cert.password= -Dtest-tls-certs.dir=rabbitmq-configuration/tls \
47+
-Dit.test=ClientTests,FunctionalTests,ServerTests,SSLTests \
48+
--no-transfer-progress
49+
- name: Test with blocking IO
50+
run: |
51+
./mvnw verify -P '!setup-test-cluster' -Drabbitmqctl.bin=DOCKER:rabbitmq \
52+
-Dtest-broker.A.nodename=rabbit@$(hostname) -Dmaven.javadoc.skip=true \
53+
-Dtest-client-cert.password= -Dtest-tls-certs.dir=rabbitmq-configuration/tls \
54+
-Dit.test=ClientTests,FunctionalTests,ServerTests,SSLTests \
55+
--no-transfer-progress
56+
- name: Stop broker
57+
run: docker stop rabbitmq && docker rm rabbitmq
58+
- name: Publish snapshot
59+
if: ${{ github.event_name != 'pull_request' }}
60+
run: ./mvnw clean deploy -Psnapshots -DskipITs -DskipTests --no-transfer-progress
61+
env:
62+
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }}
63+
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
64+
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Test against supported Java versions
2+
3+
on:
4+
schedule:
5+
- cron: '0 23 * * *'
6+
7+
env:
8+
RABBITMQ_IMAGE_TAG: 3.11
9+
RABBITMQ_IMAGE: rabbitmq
10+
11+
jobs:
12+
build:
13+
runs-on: ubuntu-22.04
14+
strategy:
15+
matrix:
16+
java: [ '8', '11', '17', '19', '20-ea' ]
17+
name: Test against Java ${{ matrix.java }}
18+
steps:
19+
- uses: actions/checkout@v3
20+
- name: Checkout tls-gen
21+
uses: actions/checkout@v3
22+
with:
23+
repository: rabbitmq/tls-gen
24+
path: './tls-gen'
25+
- name: Set up Python
26+
uses: actions/setup-python@v2
27+
with:
28+
python-version: '3.x'
29+
- name: Set up JDK
30+
uses: actions/setup-java@v3
31+
with:
32+
distribution: 'zulu'
33+
java-version: ${{ matrix.java }}
34+
cache: 'maven'
35+
- name: Start broker
36+
run: ci/start-broker.sh
37+
- name: Get dependencies
38+
run: make deps
39+
- name: Test with NIO
40+
run: |
41+
./mvnw verify -P '!setup-test-cluster,use-nio' -Drabbitmqctl.bin=DOCKER:rabbitmq \
42+
-Dtest-broker.A.nodename=rabbit@$(hostname) -Dmaven.javadoc.skip=true \
43+
-Dtest-client-cert.password= -Dtest-tls-certs.dir=rabbitmq-configuration/tls \
44+
-Dit.test=ClientTests,FunctionalTests,ServerTests,SSLTests \
45+
--no-transfer-progress
46+
- name: Test with blocking IO
47+
run: |
48+
./mvnw verify -P '!setup-test-cluster' -Drabbitmqctl.bin=DOCKER:rabbitmq \
49+
-Dtest-broker.A.nodename=rabbit@$(hostname) -Dmaven.javadoc.skip=true \
50+
-Dtest-client-cert.password= -Dtest-tls-certs.dir=rabbitmq-configuration/tls \
51+
-Dit.test=ClientTests,FunctionalTests,ServerTests,SSLTests \
52+
--no-transfer-progress
53+
- name: Stop broker
54+
run: docker stop rabbitmq && docker rm rabbitmq

ci/start-broker.sh

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

0 commit comments

Comments
 (0)