Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,21 +35,26 @@ jobs:
filters: |
hooks/openfeature-hooks-opentelemetry:
- 'hooks/openfeature-hooks-opentelemetry/**'
- 'uv.lock'
providers/openfeature-provider-env-var:
- 'providers/openfeature-provider-env-var/**'
- 'uv.lock'
providers/openfeature-provider-flagd:
- 'providers/openfeature-provider-flagd/**'
- 'uv.lock'
providers/openfeature-provider-flipt:
- 'providers/openfeature-provider-flipt/**'
- 'uv.lock'
providers/openfeature-provider-ofrep:
- 'providers/openfeature-provider-ofrep/**'
- 'uv.lock'

build:
needs: changes
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
package: ${{ fromJSON(needs.changes.outputs.packages) }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
import grpc
from grpc_health.v1 import health_pb2, health_pb2_grpc
from testcontainers.core.container import DockerContainer
from testcontainers.core.waiting_utils import wait_container_is_ready, wait_for_logs
from testcontainers.core.wait_strategies import LogMessageWaitStrategy

from openfeature.contrib.provider.flagd.config import ResolverType

Expand All @@ -32,6 +32,7 @@ def __init__(
self.flagDir.mkdir(parents=True, exist_ok=True)
self.with_exposed_ports(self.rpc, self.ipr, HEALTH_CHECK, LAUNCHPAD)
self.with_volume_mapping(os.path.abspath(self.flagDir.name), "/flags", "rw")
self.waiting_for(LogMessageWaitStrategy("listening").with_startup_timeout(5))

def get_port(self, resolver_type: ResolverType):
if resolver_type == ResolverType.RPC:
Expand All @@ -47,15 +48,8 @@ def start(self) -> "FlagdContainer":
self._checker(self.get_container_host_ip(), self.get_exposed_port(HEALTH_CHECK))
return self

@wait_container_is_ready(ConnectionError)
def _checker(self, host: str, port: int) -> None:
# First we wait for Flagd to say it's listening
wait_for_logs(
self,
"listening",
5,
)

# Give an extra second before continuing
time.sleep(1)
# Second we use the GRPC health check endpoint
with grpc.insecure_channel(host + ":" + str(port)) as channel:
Expand Down
Loading
Loading