mirror of https://github.com/status-im/consul.git
test: fix Envoy int tests and add container logs (#21674)
Correctly set the the version of Consul built by the `dev-build` job, which is then copied into the Consul dev image used in integration tests. This was causing failures starting sidecar proxies via `consul connect envoy` due to a mismatch between the (incorrect) Consul binary's supported Envoy versions and the (correct) Envoy version under test. Also add debug log uploads to each int test so we can more easily diagnose this sort of failure in the future, as it was entirely hidden in test output.
This commit is contained in:
parent
64683180f3
commit
188af1ccb0
|
@ -146,11 +146,15 @@ jobs:
|
|||
path: ./bin
|
||||
- name: restore mode+x
|
||||
run: chmod +x ./bin/consul
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@d70bba72b1f3fd22344832f00baa16ece964efeb # v3.3.0
|
||||
|
||||
- name: Docker build
|
||||
run: docker build -t consul:local -f ./build-support/docker/Consul-Dev.dockerfile ./bin
|
||||
|
||||
- name: Envoy Integration Tests
|
||||
id: envoy-integration-tests
|
||||
env:
|
||||
GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml
|
||||
GOTESTSUM_FORMAT: standard-verbose
|
||||
|
@ -171,6 +175,23 @@ jobs:
|
|||
--packages=./test/integration/connect/envoy \
|
||||
-- -timeout=30m -tags integration -run="TestEnvoy/(${{ matrix.test-cases }})"
|
||||
|
||||
# See https://github.com/orgs/community/discussions/8945#discussioncomment-9897011
|
||||
# and overall topic discussion for why this is necessary.
|
||||
- name: Generate artifact ID
|
||||
id: generate-artifact-id
|
||||
if: ${{ failure() && steps.envoy-integration-tests.conclusion == 'failure' }}
|
||||
run: |
|
||||
ARTIFACT_ID=$(uuidgen)
|
||||
echo "Artifact ID: $ARTIFACT_ID (search this in job summary for download link)"
|
||||
echo "artifact_id=$ARTIFACT_ID" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Upload failure logs
|
||||
if: ${{ failure() && steps.envoy-integration-tests.conclusion == 'failure' }}
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: envoy-${{ matrix.envoy-version }}-logs-${{ env.artifact_id }}
|
||||
path: test/integration/connect/envoy/workdir/logs/
|
||||
|
||||
# NOTE: ENT specific step as we store secrets in Vault.
|
||||
- name: Authenticate to Vault
|
||||
if: ${{ !cancelled() && endsWith(github.repository, '-enterprise') }}
|
||||
|
|
|
@ -154,6 +154,7 @@ jobs:
|
|||
run: docker build -t consul:local -f ./build-support/docker/Consul-Dev.dockerfile ./bin
|
||||
|
||||
- name: Envoy Integration Tests
|
||||
id: envoy-integration-tests
|
||||
env:
|
||||
GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml
|
||||
GOTESTSUM_FORMAT: standard-verbose
|
||||
|
@ -174,6 +175,23 @@ jobs:
|
|||
--packages=./test/integration/connect/envoy \
|
||||
-- -timeout=30m -tags integration -run="TestEnvoy/(${{ matrix.test-cases }})"
|
||||
|
||||
# See https://github.com/orgs/community/discussions/8945#discussioncomment-9897011
|
||||
# and overall topic discussion for why this is necessary.
|
||||
- name: Generate artifact ID
|
||||
id: generate-artifact-id
|
||||
if: ${{ failure() && steps.envoy-integration-tests.conclusion == 'failure' }}
|
||||
run: |
|
||||
ARTIFACT_ID=$(uuidgen)
|
||||
echo "Artifact ID: $ARTIFACT_ID (search this in job summary for download link)"
|
||||
echo "artifact_id=$ARTIFACT_ID" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Upload failure logs
|
||||
if: ${{ failure() && steps.envoy-integration-tests.conclusion == 'failure' }}
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: envoy-${{ matrix.envoy-version }}-logs-${{ env.artifact_id }}
|
||||
path: test/integration/connect/envoy/workdir/logs/
|
||||
|
||||
# NOTE: ENT specific step as we store secrets in Vault.
|
||||
- name: Authenticate to Vault
|
||||
if: ${{ !cancelled() && endsWith(github.repository, '-enterprise') }}
|
||||
|
|
|
@ -68,7 +68,7 @@ jobs:
|
|||
runs-on: ${{ needs.setup.outputs.compute-large }}
|
||||
repository-name: ${{ github.repository }}
|
||||
uploaded-binary-name: 'consul-bin'
|
||||
branch-name: "release/1.17.x"
|
||||
branch-name: "release/1.18.x"
|
||||
go-version: ${{ needs.get-go-version.outputs.go-version }}
|
||||
secrets:
|
||||
elevated-github-token: ${{ secrets.ELEVATED_GITHUB_TOKEN }}
|
||||
|
@ -154,6 +154,7 @@ jobs:
|
|||
run: docker build -t consul:local -f ./build-support/docker/Consul-Dev.dockerfile ./bin
|
||||
|
||||
- name: Envoy Integration Tests
|
||||
id: envoy-integration-tests
|
||||
env:
|
||||
GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml
|
||||
GOTESTSUM_FORMAT: standard-verbose
|
||||
|
@ -174,6 +175,23 @@ jobs:
|
|||
--packages=./test/integration/connect/envoy \
|
||||
-- -timeout=30m -tags integration -run="TestEnvoy/(${{ matrix.test-cases }})"
|
||||
|
||||
# See https://github.com/orgs/community/discussions/8945#discussioncomment-9897011
|
||||
# and overall topic discussion for why this is necessary.
|
||||
- name: Generate artifact ID
|
||||
id: generate-artifact-id
|
||||
if: ${{ failure() && steps.envoy-integration-tests.conclusion == 'failure' }}
|
||||
run: |
|
||||
ARTIFACT_ID=$(uuidgen)
|
||||
echo "Artifact ID: $ARTIFACT_ID (search this in job summary for download link)"
|
||||
echo "artifact_id=$ARTIFACT_ID" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Upload failure logs
|
||||
if: ${{ failure() && steps.envoy-integration-tests.conclusion == 'failure' }}
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: envoy-${{ matrix.envoy-version }}-logs-${{ env.artifact_id }}
|
||||
path: test/integration/connect/envoy/workdir/logs/
|
||||
|
||||
# NOTE: ENT specific step as we store secrets in Vault.
|
||||
- name: Authenticate to Vault
|
||||
if: ${{ !cancelled() && endsWith(github.repository, '-enterprise') }}
|
||||
|
|
|
@ -59,7 +59,7 @@ jobs:
|
|||
runs-on: ${{ needs.setup.outputs.compute-large }}
|
||||
repository-name: ${{ github.repository }}
|
||||
uploaded-binary-name: 'consul-bin'
|
||||
branch-name: "release/1.17.x"
|
||||
branch-name: "release/1.19.x"
|
||||
go-version: ${{ needs.get-go-version.outputs.go-version }}
|
||||
secrets:
|
||||
elevated-github-token: ${{ secrets.ELEVATED_GITHUB_TOKEN }}
|
||||
|
@ -145,6 +145,7 @@ jobs:
|
|||
run: docker build -t consul:local -f ./build-support/docker/Consul-Dev.dockerfile ./bin
|
||||
|
||||
- name: Envoy Integration Tests
|
||||
id: envoy-integration-tests
|
||||
env:
|
||||
GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml
|
||||
GOTESTSUM_FORMAT: standard-verbose
|
||||
|
@ -165,6 +166,23 @@ jobs:
|
|||
--packages=./test/integration/connect/envoy \
|
||||
-- -timeout=30m -tags integration -run="TestEnvoy/(${{ matrix.test-cases }})"
|
||||
|
||||
# See https://github.com/orgs/community/discussions/8945#discussioncomment-9897011
|
||||
# and overall topic discussion for why this is necessary.
|
||||
- name: Generate artifact ID
|
||||
id: generate-artifact-id
|
||||
if: ${{ failure() && steps.envoy-integration-tests.conclusion == 'failure' }}
|
||||
run: |
|
||||
ARTIFACT_ID=$(uuidgen)
|
||||
echo "Artifact ID: $ARTIFACT_ID (search this in job summary for download link)"
|
||||
echo "artifact_id=$ARTIFACT_ID" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Upload failure logs
|
||||
if: ${{ failure() && steps.envoy-integration-tests.conclusion == 'failure' }}
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: envoy-${{ matrix.envoy-version }}-logs-${{ env.artifact_id }}
|
||||
path: test/integration/connect/envoy/workdir/logs/
|
||||
|
||||
# NOTE: ENT specific step as we store secrets in Vault.
|
||||
- name: Authenticate to Vault
|
||||
if: ${{ !cancelled() && endsWith(github.repository, '-enterprise') }}
|
||||
|
|
|
@ -340,6 +340,7 @@ jobs:
|
|||
run: docker build -t consul:local -f ./build-support/docker/Consul-Dev.dockerfile ./bin
|
||||
|
||||
- name: Envoy Integration Tests
|
||||
id: envoy-integration-tests
|
||||
env:
|
||||
GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml
|
||||
GOTESTSUM_FORMAT: standard-verbose
|
||||
|
@ -360,6 +361,23 @@ jobs:
|
|||
--packages=./test/integration/connect/envoy \
|
||||
-- -timeout=30m -tags integration -run="TestEnvoy/(${{ matrix.test-cases }})"
|
||||
|
||||
# See https://github.com/orgs/community/discussions/8945#discussioncomment-9897011
|
||||
# and overall topic discussion for why this is necessary.
|
||||
- name: Generate artifact ID
|
||||
id: generate-artifact-id
|
||||
if: ${{ failure() && steps.envoy-integration-tests.conclusion == 'failure' }}
|
||||
run: |
|
||||
ARTIFACT_ID=$(uuidgen)
|
||||
echo "Artifact ID: $ARTIFACT_ID (search this in job summary for download link)"
|
||||
echo "artifact_id=$ARTIFACT_ID" >> "$GITHUB_ENV"
|
||||
|
||||
- name: Upload failure logs
|
||||
if: ${{ failure() && steps.envoy-integration-tests.conclusion == 'failure' }}
|
||||
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
|
||||
with:
|
||||
name: envoy-${{ matrix.envoy-version }}-logs-${{ env.artifact_id }}
|
||||
path: test/integration/connect/envoy/workdir/logs/
|
||||
|
||||
# NOTE: ENT specific step as we store secrets in Vault.
|
||||
- name: Authenticate to Vault
|
||||
if: ${{ !cancelled() && endsWith(github.repository, '-enterprise') }}
|
||||
|
|
Loading…
Reference in New Issue