Refactor test infrastructure and consolidate test utilities #150
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Integration for Compatibility | |
| on: [push, pull_request] | |
| jobs: | |
| integ-test-compat: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| secured: ["true", "false"] | |
| entry: | |
| - { opensearch_version: 1.3.20 } | |
| - { opensearch_version: 2.0.1 } | |
| - { opensearch_version: 2.1.0 } | |
| - { opensearch_version: 2.2.1 } | |
| - { opensearch_version: 2.3.0 } | |
| - { opensearch_version: 2.4.1 } | |
| - { opensearch_version: 2.5.0 } | |
| - { opensearch_version: 2.6.0 } | |
| - { opensearch_version: 2.7.0 } | |
| - { opensearch_version: 2.8.0 } | |
| - { opensearch_version: 2.9.0 } | |
| - { opensearch_version: 2.10.0 } | |
| - { opensearch_version: 2.11.1 } | |
| - { opensearch_version: 2.12.0 } | |
| - { opensearch_version: 2.13.0 } | |
| - { opensearch_version: 2.14.0 } | |
| - { opensearch_version: 2.15.0 } | |
| - { opensearch_version: 2.16.0 } | |
| - { opensearch_version: 2.17.1 } | |
| - { opensearch_version: 2.18.0 } | |
| - { opensearch_version: 2.19.4 } | |
| - { opensearch_version: 3.0.0 } | |
| - { opensearch_version: 3.1.0 } | |
| - { opensearch_version: 3.2.0 } | |
| - { opensearch_version: 3.3.2 } | |
| - { opensearch_version: 3.4.0 } | |
| - { opensearch_version: latest } | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-go@v6 | |
| with: { go-version-file: 'go.mod' } | |
| - run: go version | |
| - name: Increase system limits | |
| run: | | |
| sudo swapoff -a | |
| sudo sysctl -w vm.swappiness=1 | |
| sudo sysctl -w fs.file-max=262144 | |
| sudo sysctl -w vm.max_map_count=262144 | |
| - name: Launch OpenSearch cluster | |
| run: | | |
| export OPENSEARCH_VERSION=${{ matrix.entry.opensearch_version }} | |
| export SECURE_INTEGRATION=${{ matrix.secured }} | |
| make cluster.clean cluster.build cluster.start | |
| if [ "${SECURE_INTEGRATION}" = "true" ]; then | |
| CURL_URL="https://localhost:9200" | |
| # Password changed in OpenSearch 2.12.0 | |
| function version { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }'; } | |
| if [ $(version ${OPENSEARCH_VERSION}) -ge $(version "2.12.0") ] || [ "${OPENSEARCH_VERSION}" = "latest" ]; then | |
| CURL_OPTS="-sfku admin:myStrongPassword123!" | |
| else | |
| CURL_OPTS="-sfku admin:admin" | |
| fi | |
| else | |
| CURL_URL="http://localhost:9200" | |
| CURL_OPTS="-sf" | |
| fi | |
| echo "=====> Waiting for OpenSearch ${OPENSEARCH_VERSION} (secure=${SECURE_INTEGRATION}) to be ready (max 125s)..." | |
| for attempt in $(seq 25); do | |
| sleep 5 | |
| if curl ${CURL_OPTS} ${CURL_URL} > /dev/null 2>&1; then | |
| echo "=====> Cluster ready after $((attempt * 5))s" | |
| curl -s ${CURL_OPTS} ${CURL_URL} | jq -r '.version.number // "unknown"' | xargs echo "OpenSearch version:" | |
| break | |
| fi | |
| if [ $attempt -eq 25 ]; then | |
| echo "=====> ERROR: Cluster failed to start after 125s" | |
| echo "" | |
| echo "=====> Container status:" | |
| docker compose --project-directory .ci/opensearch ps | |
| echo "" | |
| echo "=====> Node 1 logs (last 50 lines):" | |
| docker compose --project-directory .ci/opensearch logs --tail=50 opensearch-node1 | |
| echo "" | |
| echo "=====> Node 2 logs (last 50 lines):" | |
| docker compose --project-directory .ci/opensearch logs --tail=50 opensearch-node2 | |
| echo "" | |
| echo "=====> Node 3 logs (last 50 lines):" | |
| docker compose --project-directory .ci/opensearch logs --tail=50 opensearch-node3 | |
| exit 1 | |
| fi | |
| echo "=====> Attempt $attempt/25 - waiting..." | |
| done | |
| - name: Integration test | |
| run: | | |
| export OPENSEARCH_VERSION=${{ matrix.entry.opensearch_version }} | |
| export SECURE_INTEGRATION=${{ matrix.secured }} | |
| make cluster.get-cert test-integ-core test-integ-plugins race=true | |
| - name: Stop the OpenSearch cluster | |
| run: | | |
| make cluster.stop |