@@ -3,63 +3,120 @@ name: Plugin Install
33on : [push, pull_request, workflow_dispatch]
44
55jobs :
6- plugin_install :
7- name : Plugin Install
6+
7+ linux-install :
8+
89 runs-on : ubuntu-latest
10+
911 steps :
10- - uses : actions/checkout@v2
11-
12- - name : Set up JDK
13- uses : actions/setup-java@v1
14- with :
15- java-version : 11
16-
17- - name : Build
18- run : ./gradlew clean assemble -Dbuild.snapshot=false
19-
20- - name : Download OpenSearch Core
21- run : |
22- opensearch_version=`./gradlew properties -q | grep "opensearch_version:" | awk '{print $2}' | sed 's/-SNAPSHOT//g'`
23- wget https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/$opensearch_version/latest/linux/x64/tar/builds/opensearch/dist/opensearch-min-$opensearch_version-linux-x64.tar.gz
24- tar -xzf opensearch-*.tar.gz
25- rm -f opensearch-*.tar.gz
26-
27- - name : Move and rename security plugin for installation
28- run : mv build/distributions/opensearch-security-*.zip opensearch-security.zip
29-
30- - name : Run OpenSearch with plugin
31- run : |
32- cat > os-ep.sh <<EOF
33- yes | opensearch-plugin install file:///docker-host/security-plugin.zip
34- chmod +x plugins/opensearch-security/tools/install_demo_configuration.sh
35- yes | plugins/opensearch-security/tools/install_demo_configuration.sh
36- chown 1001:1001 -R /opensearch
37- su -c "/opensearch/bin/opensearch" -s /bin/bash opensearch
38- EOF
39- docker build -t opensearch-test:latest -f- . <<EOF
40- FROM ubuntu:latest
41- COPY --chown=1001:1001 os-ep.sh /docker-host/
42- COPY --chown=1001:1001 opensearch-security.zip /docker-host/security-plugin.zip
43- COPY --chown=1001:1001 opensearch* /opensearch/
44- RUN chmod +x /docker-host/os-ep.sh
45- RUN useradd -u 1001 -s /sbin/nologin opensearch
46- ENV PATH="/opensearch/bin:${PATH}"
47- WORKDIR /opensearch/
48- ENTRYPOINT /docker-host/os-ep.sh
49- EOF
50- docker run --name ops -d -p 9200:9200 -p 9600:9600 -i opensearch-test:latest
51-
52- - name : Sleep while OpenSearch finishes starting up
53- uses : whatnick/wait-action@v0.1.2
54- with :
55- time : ' 30s'
56-
57- - name : Check OpenSearch Running
58- run : curl -XGET https://localhost:9200 -u 'admin:admin' -k -v
59-
60- - name : Get Docker Logs
61- if : always()
62- run : docker logs ops
63-
64- - name : Run sanity tests
65- run : ./gradlew integTestRemote -Dtests.rest.cluster=localhost:9200 -Dtests.cluster=localhost:9200 -Dtests.clustername="opensearch" -Dhttps=true -Duser=admin -Dpassword=admin
12+ - uses : actions/checkout@v2
13+
14+ - name : Set up JDK
15+ uses : actions/setup-java@v1
16+ with :
17+ java-version : 11
18+
19+ - name : Build
20+ run : ./gradlew clean assemble -Dbuild.snapshot=false
21+
22+ - name : Download OpenSearch Core
23+ run : |
24+ opensearch_version=`./gradlew properties -q | grep "opensearch_version:" | awk '{print $2}' | sed 's/-SNAPSHOT//g'`
25+ wget https://ci.opensearch.org/ci/dbc/distribution-build-opensearch/$opensearch_version/latest/linux/x64/tar/builds/opensearch/dist/opensearch-min-$opensearch_version-linux-x64.tar.gz
26+ tar -xzf opensearch-*.tar.gz
27+ rm -f opensearch-*.tar.gz
28+
29+ - name : Move and rename security plugin for installation
30+ run : mv build/distributions/opensearch-security-*.zip opensearch-security.zip
31+
32+ - name : Run OpenSearch with plugin
33+ run : |
34+ cat > os-ep.sh <<EOF
35+ yes | opensearch-plugin install file:///docker-host/security-plugin.zip
36+ chmod +x plugins/opensearch-security/tools/install_demo_configuration.sh
37+ yes | plugins/opensearch-security/tools/install_demo_configuration.sh
38+ chown 1001:1001 -R /opensearch
39+ su -c "/opensearch/bin/opensearch" -s /bin/bash opensearch
40+ EOF
41+ docker build -t opensearch-test:latest -f- . <<EOF
42+ FROM ubuntu:latest
43+ COPY --chown=1001:1001 os-ep.sh /docker-host/
44+ COPY --chown=1001:1001 opensearch-security.zip /docker-host/security-plugin.zip
45+ COPY --chown=1001:1001 opensearch* /opensearch/
46+ RUN chmod +x /docker-host/os-ep.sh
47+ RUN useradd -u 1001 -s /sbin/nologin opensearch
48+ ENV PATH="/opensearch/bin:${PATH}"
49+ WORKDIR /opensearch/
50+ ENTRYPOINT /docker-host/os-ep.sh
51+ EOF
52+ docker run --name ops -d -p 9200:9200 -p 9600:9600 -i opensearch-test:latest
53+
54+ - name : Sleep while OpenSearch finishes starting up
55+ uses : whatnick/wait-action@v0.1.2
56+ with :
57+ time : ' 30s'
58+
59+ - name : Check OpenSearch Running
60+ run : curl -XGET https://localhost:9200 -u 'admin:admin' -k -v
61+
62+ - name : Get Docker Logs
63+ if : always()
64+ run : docker logs ops
65+
66+ - name : Run sanity tests
67+ run : ./gradlew integTestRemote -Dtests.rest.cluster=localhost:9200 -Dtests.cluster=localhost:9200 -Dtests.clustername="opensearch" -Dhttps=true -Duser=admin -Dpassword=admin
68+
69+ windows-install :
70+
71+ runs-on : windows-latest
72+
73+ steps :
74+ - name : Enable longer filenames for Windows
75+ run : git config --system core.longpaths true
76+
77+ - name : Checkout Plugin
78+ uses : actions/checkout@v2
79+
80+ - name : Set up JDK
81+ uses : actions/setup-java@v1
82+ with :
83+ java-version : 11
84+
85+ - name : Download OpenSearch Core
86+ run : |
87+ cd ..
88+ Invoke-WebRequest https://artifacts.opensearch.org/snapshots/core/opensearch/2.4.0-SNAPSHOT/opensearch-min-2.4.0-SNAPSHOT-windows-x64-latest.zip -Outfile opensearch-2.4.0.zip
89+ tar -xzf opensearch-2.4.0.zip
90+ del opensearch-2.4.0.zip
91+ Rename-Item opensearch-* Opensearch
92+
93+ - name : Build Security Plugin with Gradle
94+ run : |
95+ .\gradlew.bat assemble
96+ env :
97+ _JAVA_OPTIONS : -Xmx4096M
98+
99+ - name : Move and rename security plugin
100+ run : move build\distributions\opensearch-security-*.zip ..\opensearch-security.zip
101+
102+ - name : Install the plugin
103+ run : |
104+ cd ..
105+ 'y' | .\Opensearch\bin\opensearch-plugin.bat install file:\a\security\opensearch-security.zip
106+ 'y', 'y', 'N' | .\Opensearch\plugins\opensearch-security\tools\install_demo_configuration.bat
107+
108+ - name : Run OpenSearch with plugin
109+ run : |
110+ cd ..
111+ start .\Opensearch\bin\opensearch.bat
112+
113+ - name : Sleep while OpenSearch finishes starting up
114+ run : Start-Sleep -s 30
115+
116+ - name : Check OpenSearch Running
117+ run : |
118+ $credentialBytes = [Text.Encoding]::ASCII.GetBytes("admin:admin")
119+ $encodedCredentials = [Convert]::ToBase64String($credentialBytes)
120+ $baseCredentials = "Basic $encodedCredentials"
121+ $Headers = @{ Authorization = $baseCredentials }
122+ Invoke-WebRequest -SkipCertificateCheck -Uri 'https://localhost:9200' -Headers $Headers
0 commit comments