forked from opensearch-project/opensearch-net
-
Notifications
You must be signed in to change notification settings - Fork 0
179 lines (155 loc) · 6.08 KB
/
integration.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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
name: Integration tests
on:
push:
branches-ignore:
- 'dependabot/**'
pull_request: {}
env:
OPENSEARCH_PLUGINS_DIRECTORY: /tmp/opensearch-plugins
jobs:
integration-opensearch:
name: Integration OpenSearch
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# 1.0.1 is skipped because it doesn't have a tag in OpenSearch repo, we can't check out to compile plugins
version:
- 2.7.0
- 2.6.0
- 2.5.0
- 2.4.1
- 2.3.0
- 2.2.1
- 2.1.0
- 2.0.1
- 1.3.10
- 1.2.4
- 1.1.0
- 1.0.0
steps:
- name: Checkout Client
uses: actions/checkout@v3
with:
path: client
- uses: actions/setup-dotnet@v1
with:
dotnet-version: |
5.0.x
6.0.x
- uses: actions/cache@v2
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
restore-keys: |
${{ runner.os }}-nuget-
- run: dotnet nuget locals all --clear
name: Clear nuget cache
working-directory: client
# Due to https://github.com/opensearch-project/project-website/issues/737
# No plugins released for versions 1.0.x , so we need to compile plugins on our own to run tests properly
# Compiled plugins are copied to ${OPENSEARCH_PLUGINS_DIRECTORY} where picked up by the test framework
# Versions of OpenSearch starting 1.1.0 are able to download plugins from the Internet
- name: Restore or Build OpenSearch Plugins
uses: ./client/.github/actions/cached-git-build
if: matrix.version == '1.0.0'
with:
repository: opensearch-project/OpenSearch
ref: ${{ matrix.version }}
path: opensearch
cached_paths: |
./opensearch/plugins/*/build/distributions/*.zip
build_script: |
PluginList=("analysis-icu" "analysis-kuromoji" "analysis-nori" "analysis-phonetic" "ingest-attachment" "mapper-murmur3")
for plugin in ${PluginList[*]}; do
./gradlew :plugins:$plugin:assemble -Dbuild.snapshot=false
done
- name: Copy OpenSearch Plugins
if: matrix.version == '1.0.0'
run: |
mkdir -p ${{ env.OPENSEARCH_PLUGINS_DIRECTORY }}
cp opensearch/plugins/*/build/distributions/*-${{ matrix.version }}.zip ${{ env.OPENSEARCH_PLUGINS_DIRECTORY }}
- run: "./build.sh integrate ${{ matrix.version }} readonly,writable random:test_only_one --report"
name: Integration Tests
working-directory: client
- name: Upload test report
if: failure()
uses: actions/upload-artifact@v3
with:
name: report-${{ matrix.version }}
path: client/build/output/*
integration-opensearch-unreleased:
name: Integration OpenSearch Unreleased
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
opensearch_ref:
- '1.x'
- '2.x'
- 'main'
steps:
- name: Checkout Client
uses: actions/checkout@v3
with:
path: client
- uses: actions/setup-dotnet@v1
with:
dotnet-version: |
5.0.x
6.0.x
- uses: actions/cache@v2
with:
path: ~/.nuget/packages
key: ${{ runner.os }}-nuget-${{ hashFiles('**/packages.lock.json') }}
restore-keys: |
${{ runner.os }}-nuget-
- run: dotnet nuget locals all --clear
name: Clear nuget cache
working-directory: client
- name: Restore or Build OpenSearch
uses: ./client/.github/actions/cached-git-build
with:
repository: opensearch-project/OpenSearch
ref: ${{ matrix.opensearch_ref }}
path: opensearch
cached_paths: |
./opensearch/distribution/archives/linux-tar/build/distributions/opensearch-*.tar.gz
./opensearch/plugins/*/build/distributions/*.zip
build_script: |
./gradlew :distribution:archives:linux-tar:assemble
PluginList=("analysis-icu" "analysis-kuromoji" "analysis-nori" "analysis-phonetic" "ingest-attachment" "mapper-murmur3")
for plugin in ${PluginList[*]}; do
./gradlew :plugins:$plugin:assemble
done
- name: Restore or Build OpenSearch Security
uses: ./client/.github/actions/cached-git-build
if: matrix.opensearch_ref == '1.x'
with:
repository: opensearch-project/security
ref: ${{ matrix.opensearch_ref }}
path: opensearch-security
cached_paths: |
./opensearch-security/build/distributions/opensearch-security-*-SNAPSHOT.zip
build_script: ./gradlew assemble
- name: Determine OpenSearch distribution path
shell: bash -eo pipefail {0}
run: |
distribution=`ls -1 $PWD/opensearch/distribution/archives/linux-tar/build/distributions/opensearch-*.tar.gz | head -1`
version=`basename $distribution | cut -d'-' -f3,4`
echo "OPENSEARCH_DISTRIBUTION=$distribution" >> $GITHUB_ENV
echo "OPENSEARCH_VERSION=$version" >> $GITHUB_ENV
mkdir -p $OPENSEARCH_PLUGINS_DIRECTORY
cp ./opensearch/plugins/*/build/distributions/*-$version.zip $OPENSEARCH_PLUGINS_DIRECTORY/
if [[ -d "./opensearch-security" ]]; then
cp ./opensearch-security/build/distributions/opensearch-security-*-SNAPSHOT.zip $OPENSEARCH_PLUGINS_DIRECTORY/
fi
- run: "./build.sh integrate ${{ env.OPENSEARCH_VERSION }} readonly,writable random:test_only_one --report"
name: Integration Tests
working-directory: client
- name: Upload test report
if: failure()
uses: actions/upload-artifact@v3
with:
name: report-unreleased-${{ matrix.opensearch_ref }}
path: client/build/output/*