TestAcc Platform #41
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: TestAcc Platform | |
| on: | |
| workflow_call: | |
| workflow_dispatch: | |
| pull_request: | |
| # Most Platform resources still use SDKv2 so we have to target files manually until migrated | |
| paths: | |
| - 'internal/clients/hvn.go' | |
| - 'internal/clients/hvn_route.go' | |
| - 'internal/clients/tgw.go' | |
| - 'internal/clients/peering.go' | |
| - 'internal/providersdkv2/peering*' | |
| - 'internal/providersdkv2/resource_aws_network_peering*' | |
| - 'internal/providersdkv2/resource_azure_peering*' | |
| - 'internal/providersdkv2/resource_aws_transit_gateway_attachment*' | |
| - 'internal/providersdkv2/resource_hvn*' | |
| # This prevents more than one run of this workflow from executing at a time. | |
| # Up to 1 additional run will be queued, with anything futher being cancelled from the queue. | |
| concurrency: | |
| group: testacc-platform | |
| cancel-in-progress: false | |
| jobs: | |
| acceptance_tests: | |
| name: Platform Acceptance Tests | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
| with: | |
| fetch-depth: 0 | |
| token: ${{ secrets.HCP_SDK_PIPELINE_TOKEN }} | |
| - name: Set up Go | |
| uses: actions/setup-go@f111f3307d8850f501ac008e886eec1fd1932a34 # v5.3.0 | |
| with: | |
| cache: true | |
| go-version-file: 'go.mod' | |
| cache-dependency-path: go.sum | |
| id: go | |
| - name: Install Dependencies | |
| env: | |
| GOPRIVATE: 'github.com/hashicorp/*' | |
| run: | | |
| go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.53.3 | |
| go mod tidy | |
| sudo wget https://github.com/jmespath/jp/releases/latest/download/jp-linux-amd64 -O /usr/local/bin/jp | |
| sudo chmod +x /usr/local/bin/jp | |
| - name: Run 'go mod tidy' | |
| run: | | |
| make depscheck | |
| - name: Get dependencies | |
| run: | | |
| go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.53.3 | |
| go mod download | |
| - name: Go Build | |
| run: | | |
| go build -v . | |
| - name: Run TestAcc | |
| env: | |
| TF_ACC: 1 | |
| HCP_API_HOST: ${{ secrets.HCP_API_HOST }} | |
| HCP_AUTH_URL: ${{ secrets.HCP_AUTH_URL }} | |
| HCP_CLIENT_ID: ${{ secrets.HCP_CLIENT_ID }} | |
| HCP_CLIENT_SECRET: ${{ secrets.HCP_CLIENT_SECRET }} | |
| HCP_ORGANIZATION_ID: ${{ secrets.HCP_ORGANIZATION_ID }} | |
| HCP_PROJECT_ID: ${{ secrets.HCP_PROJECT_ID }} | |
| AWS_REGION: us-west-1 | |
| AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
| AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| AWS_ROLE_ARN: ${{ secrets.AWS_ROLE_ARN }} | |
| AZURE_TENANT_ID: ${{ secrets.ARM_TENANT_ID }} | |
| AZURE_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }} | |
| ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }} | |
| ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }} | |
| ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }} | |
| ARM_CLIENT_SECRET: ${{ secrets.ARM_CLIENT_SECRET }} | |
| run: | | |
| AWS_OUTPUT=$(aws sts assume-role --role-arn $AWS_ROLE_ARN --role-session-name e2e-test --duration-seconds 43200) | |
| export AWS_ACCESS_KEY_ID=$(echo $AWS_OUTPUT | jp --unquoted Credentials.AccessKeyId) | |
| export AWS_SECRET_ACCESS_KEY=$(echo $AWS_OUTPUT | jp --unquoted Credentials.SecretAccessKey) | |
| export AWS_SESSION_TOKEN=$(echo $AWS_OUTPUT | jp --unquoted Credentials.SessionToken) | |
| go test ./internal/providersdkv2 \ | |
| -v \ | |
| -short \ | |
| -test.v \ | |
| -parallel=10 \ | |
| -timeout=360m \ | |
| -run=TestAcc_Platform.* \ | |
| -coverprofile=testacc-platform.out | |
| go tool cover \ | |
| -html=testacc-platform.out \ | |
| -o testacc-platform.html | |
| - name: Upload TestAcc Coverage Artifact | |
| uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 | |
| with: | |
| name: coverage-platform | |
| path: testacc-platform.html |