ci: fix Consul dev agent startup on Windows CI #461
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: Quality control checks | |
| on: | |
| push: | |
| branches: [main, "feat/**"] | |
| paths-ignore: | |
| - "**.md" # Do not need to run CI for markdown changes. | |
| pull_request: | |
| branches: [main, "feat/**"] | |
| paths-ignore: | |
| - "**.md" | |
| jobs: | |
| linux: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - uses: launchdarkly/gh-actions/actions/persistent-stores@persistent-stores-v0 | |
| with: | |
| redis: true | |
| consul: true | |
| dynamodb: true | |
| - name: Install poetry | |
| uses: abatilo/actions-poetry@7b6d33e44b4f08d7021a1dee3c044e9c253d6439 | |
| - uses: ./.github/actions/build | |
| - uses: ./.github/actions/build-docs | |
| - name: Run tests | |
| run: make test-all | |
| env: | |
| LD_SKIP_FLAKY_TESTS: true | |
| - name: Verify typehints | |
| run: make lint | |
| # | |
| # SDK contract tests | |
| # | |
| - name: install contract test dependencies | |
| run: make install-contract-tests-deps | |
| - name: start contract test service | |
| run: make start-contract-test-service-bg | |
| - name: Run contract tests v2 | |
| uses: launchdarkly/gh-actions/actions/contract-tests@contract-tests-v1 | |
| with: | |
| test_service_port: 9000 | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| stop_service: "false" | |
| enable_persistence_tests: "true" | |
| - name: Run contract tests v3 | |
| uses: launchdarkly/gh-actions/actions/contract-tests@contract-tests-v1 | |
| with: | |
| test_service_port: 9000 | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| version: v3.0.0-alpha.4 | |
| enable_persistence_tests: "true" | |
| windows: | |
| runs-on: windows-latest | |
| defaults: | |
| run: | |
| shell: powershell | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - uses: launchdarkly/gh-actions/actions/persistent-stores@persistent-stores-v0 | |
| with: | |
| redis: true | |
| consul: true | |
| dynamodb: true | |
| - name: Wait for Consul to be ready | |
| run: | | |
| $timeout = 30 | |
| $elapsed = 0 | |
| while ($elapsed -lt $timeout) { | |
| try { | |
| $response = Invoke-RestMethod -Uri 'http://127.0.0.1:8500/v1/status/leader' -TimeoutSec 2 | |
| if ($response -and $response -ne '""') { | |
| Write-Host "Consul is ready (leader: $response)" | |
| exit 0 | |
| } | |
| } catch {} | |
| Write-Host "Waiting for Consul to elect a leader... ($elapsed/$timeout seconds)" | |
| Start-Sleep -Seconds 1 | |
| $elapsed++ | |
| } | |
| Write-Error "Consul did not become ready within $timeout seconds" | |
| exit 1 | |
| - name: Install poetry | |
| uses: abatilo/actions-poetry@7b6d33e44b4f08d7021a1dee3c044e9c253d6439 | |
| - name: Install requirements | |
| run: poetry install --all-extras | |
| - name: Run tests | |
| run: make test-all | |
| env: | |
| LD_SKIP_FLAKY_TESTS: true |