Skip to content

Update es python, opensearch #1843

Update es python, opensearch

Update es python, opensearch #1843

Workflow file for this run

name: sfeos

Check failure on line 1 in .github/workflows/cicd.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/cicd.yml

Invalid workflow file

(Line: 55, Col: 9): Unexpected value 'healthcheck'
on:
push:
branches:
- main
pull_request:
branches:
- main
- features/**
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 20
services:
elasticsearch_8_svc:
image: docker.elastic.co/elasticsearch/elasticsearch:8.19.5
env:
cluster.name: stac-cluster
node.name: es01
network.host: 0.0.0.0
transport.host: 0.0.0.0
discovery.type: single-node
http.port: 9200
xpack.license.self_generated.type: basic
xpack.security.enabled: false
xpack.security.transport.ssl.enabled: false
ES_JAVA_OPTS: -Xms512m -Xmx1g
action.destructive_requires_name: false
ports:
- 9200:9200
opensearch_2_12:
image: opensearchproject/opensearch:2.12.0 # Your upgrade target
env:
cluster.name: stac-cluster
node.name: os01
network.host: 0.0.0.0
transport.host: 0.0.0.0
discovery.type: single-node
http.port: 9202
http.cors.enabled: true
# Fully disable security plugin and its SSL
DISABLE_SECURITY_PLUGIN: true # New: Explicitly skips security init
DISABLE_INSTALL_DEMO_CONFIG: true # New: Skips demo certs/password setup
plugins.security.disabled: true
plugins.security.ssl.http.enabled: false # Fix: Disable HTTP SSL
OPENSEARCH_JAVA_OPTS: -Xms512m -Xmx512m
action.destructive_requires_name: false
ports:
- 9202:9202
# Optional: Add healthcheck for reliable startup (see below)
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:9202 || exit 1"] # Plain HTTP test
interval: 10s
timeout: 5s
retries: 10
start-period: 30s # Gives 30s grace for JVM boot
strategy:
matrix:
python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13"]
backend: [ "elasticsearch8", "opensearch"]
name: Python ${{ matrix.python-version }} testing with ${{ matrix.backend }}
steps:
- name: Check out repository code
uses: actions/checkout@v5
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: |
**/setup.py
- name: Lint code
if: ${{ matrix.python-version == 3.11 }}
run: |
python -m pip install pre-commit
pre-commit run --all-files
- name: Install pipenv
run: |
python -m pip install --upgrade pipenv wheel
- name: Install core library stac-fastapi
run: |
pip install ./stac_fastapi/core
- name: Install helpers library stac-fastapi
run: |
pip install ./stac_fastapi/sfeos_helpers
- name: Install elasticsearch stac-fastapi
run: |
pip install ./stac_fastapi/elasticsearch[dev,server]
- name: Install opensearch stac-fastapi
run: |
pip install ./stac_fastapi/opensearch[dev,server]
- name: Install pytest-timeout
run: |
pip install pytest-timeout
- name: Run test suite
run: |
pipenv run pytest -svvv --timeout=300
env:
ENVIRONMENT: testing
ES_PORT: ${{ matrix.backend == 'elasticsearch8' && '9200' || '9202' }}
ES_HOST: 172.17.0.1
ES_USE_SSL: false
DATABASE_REFRESH: true
ES_VERIFY_CERTS: false
BACKEND: ${{ matrix.backend == 'elasticsearch8' && 'elasticsearch' || 'opensearch' }}