forked from apache/druid
-
Notifications
You must be signed in to change notification settings - Fork 0
84 lines (77 loc) · 3.21 KB
/
docker-tests.yml
File metadata and controls
84 lines (77 loc) · 3.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
name: "Docker Tests using Distribution Image"
on:
workflow_call:
jobs:
run-docker-tests:
name: Run Docker tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set Docker image env var
run: echo "DRUID_DIST_IMAGE_NAME=apache/druid:docker-tests" >> $GITHUB_ENV
- name: Build the Docker image
run: DOCKER_BUILDKIT=1 docker build -t $DRUID_DIST_IMAGE_NAME -f distribution/docker/Dockerfile .
- name: Save Docker image to archive
run: |
echo "Saving image $DRUID_DIST_IMAGE_NAME in archive druid-dist-container.tar.gz"
docker save "$DRUID_DIST_IMAGE_NAME" | gzip > druid-dist-container.tar.gz
- name: Stop and remove Druid Docker containers
run: |
echo "Force stopping all Druid containers and pruning"
docker ps -aq --filter "ancestor=apache/druid" | xargs -r docker rm -f
docker system prune -af --volumes
- name: Load Docker image
run: |
docker load --input druid-dist-container.tar.gz
docker images
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 17
cache: 'maven'
- name: Run Docker tests
id: run-it
run: .github/scripts/run_docker-tests
timeout-minutes: 60
- name: Collect docker logs on failure
if: ${{ failure() && steps.run-it.conclusion == 'failure' }}
run: |
mkdir docker-logs
for c in $(docker ps -a --format="{{.Names}}")
do
docker logs $c > ./docker-logs/$c.log
done
- name: Tar docker logs
if: ${{ failure() && steps.run-it.conclusion == 'failure' }}
run: tar cvzf ./docker-logs.tgz ./docker-logs
- name: Upload docker logs to GitHub
if: ${{ failure() && steps.run-it.conclusion == 'failure' }}
uses: actions/upload-artifact@v4
with:
name: failure-docker-logs
path: docker-logs.tgz
- name: Collect failsafe reports on failure
if: ${{ failure() && steps.run-it.conclusion == 'failure' }}
run: |
tar cvzf ./failsafe-logs.tgz ./embedded-tests/target/failsafe-reports
- name: Upload failsafe reports to GitHub
if: ${{ failure() && steps.run-it.conclusion == 'failure' }}
uses: actions/upload-artifact@v4
with:
name: failure-failsafe-logs
path: failsafe-logs.tgz