-
Notifications
You must be signed in to change notification settings - Fork 6
157 lines (154 loc) · 6.22 KB
/
daily-build-java17.yml
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
name: Daily build testing - Java 17
on:
repository_dispatch:
types: [ daily-build-java17 ]
workflow_dispatch:
inputs:
build:
description: Build level as cl231220231122-1901
required: true
date:
description: Dev date as 2023-11-22_1901
required: true
driver:
description: Driver location as openliberty-all-23.0.0.12-cl231220231122-1901.zip
required: true
guide:
description: Guide to build as guide-...
default: "all"
required: true
branch:
description: Branch to test
required: false
env:
#DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}
#DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
CHANGE_MINIKUBE_NONE_USER: true
jobs:
get-guide-repos:
runs-on: ubuntu-latest
outputs:
repos: ${{ steps.create-list.outputs.repos }}${{ steps.input-guide.outputs.repo }}
steps:
- uses: actions/checkout@v2
- name: Get default repos
if: ${{ github.event_name == 'repository_dispatch' || github.event_name == 'workflow_dispatch' && github.event.inputs.guide == 'all' }}
id: create-list
run: echo "::set-output name=repos::$(python3 .github/workflows/get-guides-java17.py)"
- name: Set input repo
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.guide != 'all' }}
id: input-guide
run: echo "repo=[ '${{ github.event.inputs.guide }}' ]" >> $GITHUB_OUTPUT
build-level:
runs-on: ubuntu-latest
steps:
- name: Starting daily build tests for ${{ github.event.client_payload.build-level }}${{ github.event.inputs.build }}
run: |
echo "Inputs: "
echo build: ${{ github.event.inputs.build }}
echo date: ${{ github.event.inputs.date }}
echo driver: ${{ github.event.inputs.driver }}
echo guide: ${{ github.event.inputs.guide }}
echo branch: ${{ github.event.inputs.branch }}
echo jdk_level: 17
echo "Build level: ${{ github.event.client_payload.build-level }}${{ github.event.inputs.build }}"
test-guide:
needs: [ get-guide-repos ]
runs-on: ubuntu-latest
strategy:
fail-fast: false
max-parallel: 5
matrix:
repos: ${{ fromJson(needs.get-guide-repos.outputs.repos) }}
jdk: [ "17" ]
steps:
- name: Setup JDK ${{ matrix.jdk }}
uses: actions/setup-java@v1
with:
java-version: ${{ matrix.jdk }}
- name: Clone ${{ matrix.repos }}
uses: actions/checkout@v2
with:
repository: OpenLiberty/${{ matrix.repos }}
ref: ${{ github.event.inputs.branch }}
path: ${{ matrix.repos }}
- name: Set permissions
run: chmod +x ${{ matrix.repos }}/scripts/*.sh
#- name: Docker login for runner
# run: |
# if [ "${{ matrix.repos }}" = "guide-liberty-deep-dive-gradle" ]
# then
# echo podman login
# echo $DOCKER_PASSWORD | podman login docker.io -u $DOCKER_USERNAME --password-stdin
# else
# echo docker login
# echo $DOCKER_PASSWORD | docker login -u $DOCKER_USERNAME --password-stdin
# fi
#- name: Docker login for root
# run: |
# if [ "${{ matrix.repos }}" = "guide-liberty-deep-dive-gradle" ]
# then
# echo podman login
# echo $DOCKER_PASSWORD | sudo podman login docker.io -u $DOCKER_USERNAME --password-stdin
# else
# echo docker login
# echo $DOCKER_PASSWORD | sudo docker login -u $DOCKER_USERNAME --password-stdin
# fi
- name: Run tests for ${{ matrix.repos }}
working-directory: ${{ matrix.repos }}/finish
env:
BUILDLEVEL: ${{ github.event.client_payload.build-level }}${{ github.event.inputs.build }}
DEVDATE: ${{ github.event.client_payload.dev-date }}${{ github.event.inputs.date }}
DRIVER: ${{ github.event.client_payload.driver-location }}${{ github.event.inputs.driver }}
run: sudo -E ../scripts/dailyBuild.sh -t $DEVDATE -d $DRIVER -b $BUILDLEVEL -j ${{ matrix.jdk }}
- name: Post tests
working-directory: ${{ matrix.repos }}
if: always()
run: |
mvn -version
sudo chmod -R 777 .
logsPath=$(sudo find . -name "console.log");
if [ -z "$logsPath" ]
then
logsPath=$(sudo find . -name "messages.log");
if [ -z "$logsPath" ]
then sudo docker images
else
sudo cat $logsPath | grep product
sudo cat $logsPath | grep java.runtime
fi
else sudo cat $logsPath | grep Launching
fi
- name: Archive server logs if failed
if: failure()
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.repos }}-logs
path: |
${{ matrix.repos }}/finish/target/liberty/wlp/usr/servers/defaultServer/logs/
${{ matrix.repos }}/start/target/liberty/wlp/usr/servers/defaultServer/logs/
${{ matrix.repos }}/finish/**/target/liberty/wlp/usr/servers/defaultServer/logs/
${{ matrix.repos }}/start/**/target/liberty/wlp/usr/servers/defaultServer/logs/
if-no-files-found: ignore
- name: Archive npm logs if failed
if: failure()
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.repos }}-npm-logs
path: ~/.npm/_logs
if-no-files-found: ignore
slack-alert:
needs: [test-guide]
if: failure()
runs-on: ubuntu-latest
env:
BUILDLEVEL: ${{ github.event.client_payload.build-level }}${{ github.event.inputs.build }}
DEVDATE: ${{ github.event.client_payload.dev-date }}${{ github.event.inputs.date }}
DRIVER: ${{ github.event.client_payload.driver-location }}${{ github.event.inputs.driver }}
steps:
- uses: actions/checkout@v2
- name: send-status
run: |
python3 .github/workflows/slack-alert.py ${{ env.BUILDLEVEL }} ${{ env.DRIVER }} ${{ env.DEVDATE }} ${{ needs.test-guide.result }} \
${{ github.repository }} ${{ github.run_id }} ${{ secrets.SLACK_HOOK }}
echo ${{ needs.test-guide.result }}