# Copyright (c) HashiCorp, Inc. # SPDX-License-Identifier: MPL-2.0 name: test-integrations-windows on: workflow_dispatch: env: TEST_RESULTS_DIR: /tmp/test-results TEST_RESULTS_ARTIFACT_NAME: test-results CONSUL_LICENSE: ${{ secrets.CONSUL_LICENSE }} GOTAGS: ${{ endsWith(github.repository, '-enterprise') && 'consulent' || '' }} GOTESTSUM_VERSION: "1.11.0" CONSUL_BINARY_UPLOAD_NAME: consul.exe # strip the hashicorp/ off the front of github.repository for consul CONSUL_LATEST_IMAGE_NAME: ${{ endsWith(github.repository, '-enterprise') && github.repository || 'consul' }} GOPRIVATE: github.com/hashicorp # Required for enterprise deps jobs: setup: runs-on: ubuntu-latest name: Setup outputs: compute-small: ${{ steps.runners.outputs.compute-small }} compute-medium: ${{ steps.runners.outputs.compute-medium }} compute-large: ${{ steps.runners.outputs.compute-large }} compute-xl: ${{ steps.runners.outputs.compute-xl }} enterprise: ${{ steps.runners.outputs.enterprise }} steps: - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - id: runners run: .github/scripts/get_runner_classes_windows.sh get-go-version: uses: ./.github/workflows/reusable-get-go-version.yml dev-build: needs: - setup - get-go-version uses: ./.github/workflows/reusable-dev-build-windows.yml with: runs-on: ${{ needs.setup.outputs.compute-large }} repository-name: ${{ github.repository }} uploaded-binary-name: 'consul.exe' go-version: ${{ needs.get-go-version.outputs.go-version }} secrets: elevated-github-token: ${{ secrets.ELEVATED_GITHUB_TOKEN }} # NOTE: Jobs needs to be added here manually. Jobs when run together on windows fails intermittently. # So they are run independently of each other. envoy-integration-test: needs: - setup - get-go-version - dev-build runs-on: ${{ fromJSON(needs.setup.outputs.compute-large) }} permissions: id-token: write # NOTE: this permission is explicitly required for Vault auth. contents: read strategy: fail-fast: false matrix: envoy-version: [ "1.28.1" ] xds-target: [ "server", "client" ] env: ENVOY_VERSION: ${{ matrix.envoy-version }} XDS_TARGET: ${{ matrix.xds-target }} AWS_LAMBDA_REGION: us-west-2 steps: - uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - uses: actions/setup-go@fac708d6674e30b6ba41289acaab6d4b75aa0753 # v4.0.1 with: go-version: ${{ needs.get-go-version.outputs.go-version }} - name: Fetch binary uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2 with: name: '${{ env.CONSUL_BINARY_UPLOAD_NAME }}' path: ${{ github.workspace }} - name: Create dist folder and copy binary run: | mkdir dist cp ${{ github.workspace }}\consul.exe dist\ - name: Restore mode+x run: icacls ${{ github.workspace }}\consul.exe /grant:rx Everyone:RX - name: Setup TcpDump Docker Image shell: bash run: | cd test/integration/connect/envoy curl -sSL "https://asheshvidyut-bucket.s3.ap-southeast-2.amazonaws.com/tcpdump.exe" -o tcpdump.exe docker build -t envoy-tcpdump -f Dockerfile-tcpdump-windows . - name: Set up Docker Buildx uses: docker/setup-buildx-action@2a1a44ac4aa01993040736bd95bb470da1a38365 # v2.9.0 - name: Docker build consul run: docker build -t windows/consul -f Dockerfile-windows . - name: Docker build consul local shell: bash run: cd build-support/windows && ./build-consul-local-images.sh - name: Docker build consul dev shell: bash run: cd build-support/windows && ./build-consul-dev-image.sh # https://hashicorp.atlassian.net/browse/NET-4973 # ^ Ticket to figure out why grouping test case is failing on Windows Machine # - name: Envoy Integration Tests for windows case-api-gateway-http-hostnames # shell: bash # if: always() # env: # GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml # GOTESTSUM_FORMAT: standard-verbose # COMPOSE_INTERACTIVE_NO_CLI: 1 # LAMBDA_TESTS_ENABLED: "true" # # tput complains if this isn't set to something. # TERM: ansi # run: | # # shellcheck disable=SC2001 # echo "Running Integration Test case-api-gateway-http-hostnames" # # shellcheck disable=SC2001 # go test -v -timeout=45m -tags integration \ # ./test/integration/connect/envoy -run="TestEnvoy/case-api-gateway-http-hostnames" -win=true - name: Envoy Integration Tests for windows case-api-gateway-http-simple shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-api-gateway-http-simple" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-api-gateway-http-simple" -win=true - name: Envoy Integration Tests for windows case-api-gateway-http-splitter-targets shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-api-gateway-http-splitter-targets" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-api-gateway-http-splitter-targets" -win=true - name: Envoy Integration Tests for windows case-api-gateway-http-tls-overlapping-hosts shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-api-gateway-http-tls-overlapping-hosts" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-api-gateway-http-tls-overlapping-hosts" -win=true - name: Envoy Integration Tests for windows case-api-gateway-tcp-conflicted shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-api-gateway-tcp-conflicted" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-api-gateway-tcp-conflicted" -win=true - name: Envoy Integration Tests for windows case-api-gateway-tcp-simple shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-api-gateway-tcp-simple" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-api-gateway-tcp-simple" -win=true - name: Envoy Integration Tests for windows case-api-gateway-tcp-tls-overlapping-hosts shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-api-gateway-tcp-tls-overlapping-hosts" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-api-gateway-tcp-tls-overlapping-hosts" -win=true - name: Envoy Integration Tests for windows case-badauthz shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-badauthz" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-badauthz" -win=true - name: Envoy Integration Tests for windows case-basic shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-basic" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-basic" -win=true - name: Envoy Integration Tests for windows case-centralconf shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-centralconf" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-centralconf" -win=true - name: Envoy Integration Tests for windows case-cfg-resolver-cluster-peering-failover shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cfg-resolver-cluster-peering-failover" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cfg-resolver-cluster-peering-failover" -win=true - name: Envoy Integration Tests for windows case-cfg-resolver-dc-failover-gateways-none shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cfg-resolver-dc-failover-gateways-none" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cfg-resolver-dc-failover-gateways-none" -win=true - name: Envoy Integration Tests for windows case-cfg-resolver-dc-failover-gateways-remote shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cfg-resolver-dc-failover-gateways-remote" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cfg-resolver-dc-failover-gateways-remote" -win=true - name: Envoy Integration Tests for windows case-cfg-resolver-defaultsubset shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cfg-resolver-defaultsubset" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cfg-resolver-defaultsubset" -win=true - name: Envoy Integration Tests for windows case-cfg-resolver-features shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cfg-resolver-features" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cfg-resolver-features" -win=true - name: Envoy Integration Tests for windows case-cfg-resolver-subset-onlypassing shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cfg-resolver-subset-onlypassing" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cfg-resolver-subset-onlypassing" -win=true - name: Envoy Integration Tests for windows case-cfg-resolver-subset-redirect shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cfg-resolver-subset-redirect" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cfg-resolver-subset-redirect" -win=true - name: Envoy Integration Tests for windows case-cfg-resolver-svc-failover shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cfg-resolver-svc-failover" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cfg-resolver-svc-failover" -win=true - name: Envoy Integration Tests for windows case-cfg-resolver-svc-redirect-http shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cfg-resolver-svc-redirect-http" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cfg-resolver-svc-redirect-http" -win=true - name: Envoy Integration Tests for windows case-cfg-resolver-svc-redirect-tcp shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cfg-resolver-svc-redirect-tcp" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cfg-resolver-svc-redirect-tcp" -win=true - name: Envoy Integration Tests for windows case-cfg-router-features shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cfg-router-features" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cfg-router-features" -win=true - name: Envoy Integration Tests for windows case-cfg-splitter-cluster-peering shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cfg-splitter-cluster-peering" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cfg-splitter-cluster-peering" -win=true - name: Envoy Integration Tests for windows case-cfg-splitter-features shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cfg-splitter-features" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cfg-splitter-features" -win=true - name: Envoy Integration Tests for windows case-cfg-splitter-peering-ingress-gateways shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cfg-splitter-peering-ingress-gateways" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cfg-splitter-peering-ingress-gateways" -win=true # This test runs fine on windows machine but fails on CI # Task to be picked later on - https://hashicorp.atlassian.net/browse/NET-4972 # - name: Envoy Integration Tests for windows case-consul-exec # if: always() # shell: bash # env: # GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml # GOTESTSUM_FORMAT: standard-verbose # COMPOSE_INTERACTIVE_NO_CLI: 1 # LAMBDA_TESTS_ENABLED: "true" # # tput complains if this isn't set to something. # TERM: ansi # run: | # #shellcheck disable=SC2001 # echo "Running Integration Test case-consul-exec" # # shellcheck disable=SC2001 # go test -v -timeout=45m -tags integration \ # ./test/integration/connect/envoy -run="TestEnvoy/case-consul-exec" -win=true - name: Envoy Integration Tests for windows case-cross-peer-control-plane-mgw if: always() shell: bash env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cross-peer-control-plane-mgw" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cross-peer-control-plane-mgw" -win=true - name: Envoy Integration Tests for windows case-cross-peers shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cross-peers" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cross-peers" -win=true - name: Envoy Integration Tests for windows case-cross-peers-http shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cross-peers-http" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cross-peers-http" -win=true - name: Envoy Integration Tests for windows case-cross-peers-http-router shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cross-peers-http-router" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cross-peers-http-router" -win=true - name: Envoy Integration Tests for windows case-cross-peers-resolver-redirect-tcp shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-cross-peers-resolver-redirect-tcp" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-cross-peers-resolver-redirect-tcp" -win=true - name: Envoy Integration Tests for windows case-dogstatsd-udp shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-dogstatsd-udp" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-dogstatsd-udp" -win=true - name: Envoy Integration Tests for windows case-envoyext-ratelimit shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-envoyext-ratelimit" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-envoyext-ratelimit" -win=true - name: Envoy Integration Tests for windows case-expose-checks shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-expose-checks" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-expose-checks" -win=true - name: Envoy Integration Tests for windows case-gateway-without-services shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-gateway-without-services" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-gateway-without-services" -win=true - name: Envoy Integration Tests for windows case-gateways-local shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-gateways-local" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-gateways-local" -win=true - name: Envoy Integration Tests for windows case-gateways-remote shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-gateways-remote" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-gateways-remote" -win=true - name: Envoy Integration Tests for windows case-grpc shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-grpc" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-grpc" -win=true - name: Envoy Integration Tests for windows case-http shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-http" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-http" -win=true - name: Envoy Integration Tests for windows case-http-badauthz shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-http-badauthz" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-http-badauthz" -win=true - name: Envoy Integration Tests for windows case-ingress-gateway-grpc shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-ingress-gateway-grpc" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-ingress-gateway-grpc" -win=true - name: Envoy Integration Tests for windows case-ingress-gateway-http shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-ingress-gateway-http" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-ingress-gateway-http" -win=true - name: Envoy Integration Tests for windows case-ingress-gateway-multiple-services shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-ingress-gateway-multiple-services" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-ingress-gateway-multiple-services" -win=true - name: Envoy Integration Tests for windows case-ingress-gateway-peering-failover shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-ingress-gateway-peering-failover" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-ingress-gateway-peering-failover" -win=true - name: Envoy Integration Tests for windows case-ingress-gateway-simple shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-ingress-gateway-simple" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-ingress-gateway-simple" -win=true - name: Envoy Integration Tests for windows case-ingress-mesh-gateways-resolver shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-ingress-mesh-gateways-resolver" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-ingress-mesh-gateways-resolver" -win=true - name: Envoy Integration Tests for windows case-l7-intentions shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-l7-intentions" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-l7-intentions" -win=true - name: Envoy Integration Tests for windows case-multidc-rsa-ca shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-multidc-rsa-ca" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-multidc-rsa-ca" -win=true - name: Envoy Integration Tests for windows case-prometheus shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-prometheus" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-prometheus" -win=true - name: Envoy Integration Tests for windows case-property-override shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-property-override" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-property-override" -win=true - name: Envoy Integration Tests for windows case-stats-proxy shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-stats-proxy" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-stats-proxy" -win=true - name: Envoy Integration Tests for windows case-statsd-udp shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-statsd-udp" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-statsd-udp" -win=true - name: Envoy Integration Tests for windows case-terminating-gateway-hostnames shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-terminating-gateway-hostnames" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-terminating-gateway-hostnames" -win=true - name: Envoy Integration Tests for windows case-terminating-gateway-simple shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-terminating-gateway-simple" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-terminating-gateway-simple" -win=true - name: Envoy Integration Tests for windows case-terminating-gateway-without-services shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-terminating-gateway-without-services" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-terminating-gateway-without-services" -win=true - name: Envoy Integration Tests for windows case-upstream-config shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-upstream-config" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-upstream-config" -win=true - name: Envoy Integration Tests for windows case-wanfed-gw shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-wanfed-gw" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-wanfed-gw" -win=true - name: Envoy Integration Tests for windows case-ingress-gateway-sds shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-ingress-gateway-sds" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-ingress-gateway-sds" -win=true - name: Envoy Integration Tests for windows case-lua shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-lua" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-lua" -win=true - name: Envoy Integration Tests for windows case-terminating-gateway-subsets shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-terminating-gateway-subsets" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-terminating-gateway-subsets" -win=true # Skipping this because - https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/wasm_filter # - name: Envoy Integration Tests for windows case-wasm # shell: bash # env: # GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml # GOTESTSUM_FORMAT: standard-verbose # COMPOSE_INTERACTIVE_NO_CLI: 1 # LAMBDA_TESTS_ENABLED: "true" # # tput complains if this isn't set to something. # TERM: ansi # run: | # # shellcheck disable=SC2001 # echo "Running Integration Test case-wasm" # # shellcheck disable=SC2001 # go test -v -timeout=45m -tags integration \ # ./test/integration/connect/envoy -run="TestEnvoy/case-wasm" -win=true # Skipping because of - cacert is not available in curl windows # https://www.phillipsj.net/posts/windows-curl-and-self-signed-certs/ # - name: Envoy Integration Tests for windows case-ingress-gateway-tls # shell: bash # if: always() # env: # GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml # GOTESTSUM_FORMAT: standard-verbose # COMPOSE_INTERACTIVE_NO_CLI: 1 # LAMBDA_TESTS_ENABLED: "true" # # tput complains if this isn't set to something. # TERM: ansi # run: | # # shellcheck disable=SC2001 # echo "Running Integration Test case-ingress-gateway-tls" # # shellcheck disable=SC2001 # go test -v -timeout=45m -tags integration \ # ./test/integration/connect/envoy -run="TestEnvoy/case-ingress-gateway-tls" -win=true - name: Envoy Integration Tests for windows case-mesh-to-lambda shell: bash if: always() env: GOTESTSUM_JUNITFILE: ${{ env.TEST_RESULTS_DIR }}/results.xml GOTESTSUM_FORMAT: standard-verbose COMPOSE_INTERACTIVE_NO_CLI: 1 LAMBDA_TESTS_ENABLED: "true" # tput complains if this isn't set to something. TERM: ansi run: | # shellcheck disable=SC2001 echo "Running Integration Test case-mesh-to-lambda" # shellcheck disable=SC2001 go test -v -timeout=45m -tags integration \ ./test/integration/connect/envoy -run="TestEnvoy/case-mesh-to-lambda" -win=true # NOTE: ENT specific step as we store secrets in Vault. - name: Authenticate to Vault if: ${{ !cancelled() && endsWith(github.repository, '-enterprise') }} id: vault-auth run: vault-auth # NOTE: ENT specific step as we store secrets in Vault. - name: Fetch Secrets if: ${{ !cancelled() && endsWith(github.repository, '-enterprise') }} id: secrets uses: hashicorp/vault-action@v2.5.0 with: url: ${{ steps.vault-auth.outputs.addr }} caCertificate: ${{ steps.vault-auth.outputs.ca_certificate }} token: ${{ steps.vault-auth.outputs.token }} secrets: | kv/data/github/${{ github.repository }}/datadog apikey | DATADOG_API_KEY; - name: Prepare datadog-ci shell: bash if: ${{ !cancelled() && !endsWith(github.repository, '-enterprise') }} run: | curl -L --fail "https://github.com/DataDog/datadog-ci/releases/download/v2.17.2/datadog-ci_win-x64.exe" --output "C:/datadog-ci" icacls C:/datadog-ci /grant:rx Everyone:RX - name: Upload coverage # do not run on forks if: ${{ !cancelled() && github.event.pull_request.head.repo.full_name == github.repository }} env: DATADOG_API_KEY: "${{ endsWith(github.repository, '-enterprise') && env.DATADOG_API_KEY || secrets.DATADOG_API_KEY }}" DD_ENV: ci run: C:/datadog-ci junit upload --service "$GITHUB_REPOSITORY" $TEST_RESULTS_DIR/results.xml test-integrations-success: needs: - envoy-integration-test runs-on: 'ubuntu-latest' if: ${{ always() }} steps: - name: evaluate upstream job results run: | # exit 1 if failure or cancelled result for any upstream job if printf '${{ toJSON(needs) }}' | grep -E -i '\"result\": \"(failure|cancelled)\"'; then printf "Tests failed or workflow cancelled:\n\n${{ toJSON(needs) }}" exit 1 fi