Skip to content

Commit ea22137

Browse files
kumaabmneethiraj
authored andcommitted
RANGER-5395: Split docker builds across GitHub runners with ranger-service and ranger-plugin builds (#727)
(cherry picked from commit f5cf897)
1 parent e715328 commit ea22137

File tree

2 files changed

+91
-23
lines changed

2 files changed

+91
-23
lines changed

.github/workflows/ci.yml

Lines changed: 88 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,8 @@ jobs:
100100
with:
101101
name: target-11
102102
path: target/*
103-
104-
docker-build:
103+
104+
services-docker-build:
105105
needs:
106106
- build-8
107107
runs-on: ubuntu-22.04
@@ -112,11 +112,89 @@ jobs:
112112
uses: actions/download-artifact@v4
113113
with:
114114
name: target-8
115-
115+
116116
- name: Copy artifacts for docker build
117117
run: |
118-
cp ranger-*.tar.gz dev-support/ranger-docker/dist
119-
cp version dev-support/ranger-docker/dist
118+
mv ranger-*-admin.tar.gz dev-support/ranger-docker/dist
119+
mv ranger-*-usersync.tar.gz dev-support/ranger-docker/dist
120+
mv ranger-*-tagsync.tar.gz dev-support/ranger-docker/dist
121+
mv ranger-*-kms.tar.gz dev-support/ranger-docker/dist
122+
mv version dev-support/ranger-docker/dist
123+
rm -f ranger-*.tar.gz # clean up workspace
124+
125+
- name: Free up disk space
126+
run: docker system prune --all --force --volumes
127+
128+
- name: Download DB and Log4J connectors
129+
run: |
130+
cd dev-support/ranger-docker
131+
./download-archives.sh none
132+
133+
- name: Build all ranger-service images
134+
run: |
135+
cd dev-support/ranger-docker
136+
export RANGER_DB_TYPE=postgres
137+
docker compose \
138+
-f docker-compose.ranger.yml \
139+
-f docker-compose.ranger-usersync.yml \
140+
-f docker-compose.ranger-tagsync.yml \
141+
-f docker-compose.ranger-kms.yml build
142+
143+
- name: Bring up ranger-service containers
144+
run: |
145+
cd dev-support/ranger-docker
146+
export RANGER_DB_TYPE=postgres
147+
docker compose \
148+
-f docker-compose.ranger.yml \
149+
-f docker-compose.ranger-usersync.yml \
150+
-f docker-compose.ranger-tagsync.yml \
151+
-f docker-compose.ranger-kms.yml up -d
152+
153+
- name: Check status of containers and remove them
154+
run: |
155+
sleep 60
156+
containers=(ranger ranger-zk ranger-solr ranger-postgres ranger-usersync ranger-tagsync ranger-kms);
157+
flag=true;
158+
for container in "${containers[@]}"; do
159+
if [[ $(docker inspect -f '{{.State.Running}}' $container 2>/dev/null) == "true" ]]; then
160+
echo "Container $container is running!";
161+
else
162+
flag=false;
163+
echo "Container $container is NOT running! Status: $(docker inspect -f '{{.State.Status}}' $container 2>/dev/null)";
164+
echo "docker logs $container:";
165+
docker logs $container
166+
fi
167+
done
168+
169+
if [[ $flag == true ]]; then
170+
echo "All required containers are up and running";
171+
docker stop $(docker ps -q) && docker rm $(docker ps -aq);
172+
else
173+
docker stop $(docker ps -q) && docker rm $(docker ps -aq);
174+
exit 1;
175+
fi
176+
177+
plugins-docker-build:
178+
needs:
179+
- build-8
180+
runs-on: ubuntu-24.04 # bumping os version for more disk space
181+
timeout-minutes: 60 # bumping timeout to allow containers to come up
182+
steps:
183+
- uses: actions/checkout@v4
184+
- name: Download build-8 artifacts
185+
uses: actions/download-artifact@v4
186+
with:
187+
name: target-8
188+
189+
- name: Copy artifacts for docker build
190+
run: |
191+
mv ranger-*-admin.tar.gz dev-support/ranger-docker/dist
192+
mv ranger-*-plugin.tar.gz dev-support/ranger-docker/dist
193+
mv version dev-support/ranger-docker/dist
194+
rm -f ranger-*.tar.gz # clean up workspace
195+
196+
- name: Free up disk space
197+
run: docker system prune --all --force --volumes
120198

121199
- name: Cache downloaded archives
122200
uses: actions/cache@v4
@@ -129,38 +207,28 @@ jobs:
129207
- name: Run download-archives.sh
130208
run: |
131209
cd dev-support/ranger-docker
132-
rm -rf downloads/ozone-*
133210
./download-archives.sh hadoop hive hbase kafka knox ozone
134-
135-
- name: Clean up Docker space
136-
run: docker system prune --all --force --volumes
137-
138-
- name: Build all ranger-service images
211+
212+
- name: Build all ranger-plugin images
139213
run: |
140214
cd dev-support/ranger-docker
141215
export RANGER_DB_TYPE=postgres
142216
docker compose \
143217
-f docker-compose.ranger.yml \
144-
-f docker-compose.ranger-usersync.yml \
145-
-f docker-compose.ranger-tagsync.yml \
146-
-f docker-compose.ranger-kms.yml \
147218
-f docker-compose.ranger-hadoop.yml \
148219
-f docker-compose.ranger-hbase.yml \
149220
-f docker-compose.ranger-kafka.yml \
150221
-f docker-compose.ranger-hive.yml \
151222
-f docker-compose.ranger-knox.yml \
152223
-f docker-compose.ranger-ozone.yml build
153224
154-
- name: Bring up containers
225+
- name: Bring up ranger-plugin containers
155226
run: |
156227
cd dev-support/ranger-docker
157228
./scripts/ozone/ozone-plugin-docker-setup.sh
158229
export RANGER_DB_TYPE=postgres
159230
docker compose \
160231
-f docker-compose.ranger.yml \
161-
-f docker-compose.ranger-usersync.yml \
162-
-f docker-compose.ranger-tagsync.yml \
163-
-f docker-compose.ranger-kms.yml \
164232
-f docker-compose.ranger-hadoop.yml \
165233
-f docker-compose.ranger-hbase.yml \
166234
-f docker-compose.ranger-kafka.yml \
@@ -171,7 +239,7 @@ jobs:
171239
- name: Check status of containers and remove them
172240
run: |
173241
sleep 60
174-
containers=(ranger ranger-zk ranger-solr ranger-postgres ranger-usersync ranger-tagsync ranger-kms ranger-hadoop ranger-hbase ranger-kafka ranger-hive ranger-knox ozone-om ozone-scm ozone-datanode);
242+
containers=(ranger ranger-zk ranger-solr ranger-postgres ranger-hadoop ranger-hbase ranger-kafka ranger-hive ranger-knox ozone-om ozone-scm ozone-datanode);
175243
flag=true;
176244
for container in "${containers[@]}"; do
177245
if [[ $(docker inspect -f '{{.State.Running}}' $container 2>/dev/null) == "true" ]]; then
@@ -183,7 +251,7 @@ jobs:
183251
docker logs $container
184252
fi
185253
done
186-
254+
187255
if [[ $flag == true ]]; then
188256
echo "All required containers are up and running";
189257
docker stop $(docker ps -q) && docker rm $(docker ps -aq);

dev-support/ranger-docker/docker-compose.ranger-hadoop.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,10 @@ services:
2626
ranger:
2727
condition: service_started
2828
healthcheck:
29-
test: 'su -c "/home/ranger/scripts/ranger-hadoop-healthcheck.sh" healthcheck'
30-
interval: 15s
29+
test: ["CMD-SHELL", "/home/ranger/scripts/ranger-hadoop-healthcheck.sh"]
30+
interval: 20s
3131
timeout: 10s
32-
retries: 30
32+
retries: 40
3333
start_period: 40s
3434
environment:
3535
- HADOOP_VERSION

0 commit comments

Comments
 (0)