diff --git a/.github/workflows/gh-token.yml b/.github/workflows/gh-token.yml index cd5e7f9..2356400 100644 --- a/.github/workflows/gh-token.yml +++ b/.github/workflows/gh-token.yml @@ -12,7 +12,7 @@ permissions: jobs: refresh-token: name: Refresh GitHub Token - if: ${{ github.server_url != 'https://github.com' }} + if: github.server_url != 'https://github.com' uses: CSVD/centralized-actions/.github/workflows/upload-github-token.yml@main with: aws_region: 'us-gov-west-1' diff --git a/.github/workflows/github-client-integration-test.yml b/.github/workflows/github-client-integration-test.yml new file mode 100644 index 0000000..da520fa --- /dev/null +++ b/.github/workflows/github-client-integration-test.yml @@ -0,0 +1,40 @@ +name: GitHub Client Integration Tests + +on: + pull_request: + branches: [ main ] + workflow_dispatch: + +jobs: + integration-tests: + runs-on: ubuntu-latest + if: ${{ github.server_url == 'https://github.com' }} + permissions: + contents: read + pull-requests: write + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.9' + cache: 'pip' + cache-dependency-path: template_automation/requirements.txt + + - name: Install dependencies + run: | + cd template_automation + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Run integration tests + env: + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} + GITHUB_TOKEN_SECRET_NAME: /dev/secret/ssh/dont/tell + GITHUB_API: "https://api.github.com" # Can be overridden with vars if needed + GITHUB_ORG_NAME: ${{ github.repository_owner }} + run: | + cd template_automation + python -m pytest tests/ -v -m integration diff --git a/.tflog b/.tflog index b0ec1ef..3c658a5 100644 --- a/.tflog +++ b/.tflog @@ -163,3 +163,84 @@ 2025-04-29T09:36:48.712-0700 [DEBUG] ignoring non-existing provider search directory /Library/Application Support/io.terraform/plugins 2025-04-29T09:36:48.715-0700 [INFO] Checkpoint disabled. Not running. 2025-04-29T09:36:48.716-0700 [INFO] CLI command args: []string{"version", "-json"} +2025-05-01T10:21:27.473-0700 [INFO] Terraform version: 1.10.5 +2025-05-01T10:21:27.474-0700 [DEBUG] using github.com/hashicorp/go-tfe v1.70.0 +2025-05-01T10:21:27.474-0700 [DEBUG] using github.com/hashicorp/hcl/v2 v2.23.0 +2025-05-01T10:21:27.474-0700 [DEBUG] using github.com/hashicorp/terraform-svchost v0.1.1 +2025-05-01T10:21:27.474-0700 [DEBUG] using github.com/zclconf/go-cty v1.16.2 +2025-05-01T10:21:27.474-0700 [INFO] Go runtime version: go1.23.3 +2025-05-01T10:21:27.474-0700 [INFO] CLI args: []string{"/usr/local/Cellar/tfenv/1.0.2/versions/1.10.5/terraform", "version", "-json"} +2025-05-01T10:21:27.474-0700 [TRACE] Stdout is not a terminal +2025-05-01T10:21:27.474-0700 [TRACE] Stderr is not a terminal +2025-05-01T10:21:27.474-0700 [TRACE] Stdin is not a terminal +2025-05-01T10:21:27.474-0700 [DEBUG] Attempting to open CLI config file: /Users/darnold/.terraformrc +2025-05-01T10:21:27.474-0700 [INFO] Loading CLI configuration from /Users/darnold/.terraformrc +2025-05-01T10:21:27.475-0700 [INFO] Loading CLI configuration from /Users/darnold/.terraform.d/credentials.tfrc.json +2025-05-01T10:21:27.477-0700 [DEBUG] checking for credentials in "/Users/darnold/.terraform.d/plugins" +2025-05-01T10:21:27.477-0700 [DEBUG] checking for credentials in "/Users/darnold/.terraform.d/plugins/darwin_amd64" +2025-05-01T10:21:27.477-0700 [DEBUG] Using modified User-Agent: HashiCorp Terraform/1.10.5 (+https://www.terraform.io) HashiCorp-terraform-exec/0.21.0 +2025-05-01T10:21:27.477-0700 [DEBUG] ignoring non-existing provider search directory terraform.d/plugins +2025-05-01T10:21:27.477-0700 [DEBUG] will search for provider plugins in /Users/darnold/.terraform.d/plugins +2025-05-01T10:21:27.477-0700 [WARN] local provider path "/Users/darnold/.terraform.d/plugins/HappyPathway/openai/0.1.0" contains invalid type "0.1.0"; ignoring +2025-05-01T10:21:27.478-0700 [WARN] local provider path "/Users/darnold/.terraform.d/plugins/HappyPathway/openai/0.1.0/darwin_amd64" contains invalid type "0.1.0"; ignoring +2025-05-01T10:21:27.478-0700 [WARN] local provider path "/Users/darnold/.terraform.d/plugins/HappyPathway/openai/0.1.0/darwin_amd64/terraform-provider-openai" contains invalid type "0.1.0"; ignoring +2025-05-01T10:21:27.478-0700 [WARN] local provider path "/Users/darnold/.terraform.d/plugins/darnold/gigrack/0.1.0" contains invalid type "0.1.0"; ignoring +2025-05-01T10:21:27.478-0700 [WARN] local provider path "/Users/darnold/.terraform.d/plugins/darnold/gigrack/0.1.0/darwin_amd64" contains invalid type "0.1.0"; ignoring +2025-05-01T10:21:27.478-0700 [WARN] local provider path "/Users/darnold/.terraform.d/plugins/darnold/gigrack/0.1.0/darwin_amd64/terraform-provider-gigrack" contains invalid type "0.1.0"; ignoring +2025-05-01T10:21:27.478-0700 [WARN] Provider plugin search ignored symlink /Users/darnold/.terraform.d/plugins/darwin_amd64/terraform-provider-configstash: only the base directory /Users/darnold/.terraform.d/plugins may be a symlink +2025-05-01T10:21:27.479-0700 [TRACE] getproviders.SearchLocalDirectory: found hashicorp.com/edu/hashicups v0.3.1 for darwin_amd64 at /Users/darnold/.terraform.d/plugins/hashicorp.com/edu/hashicups/0.3.1/darwin_amd64 +2025-05-01T10:21:27.479-0700 [TRACE] getproviders.SearchLocalDirectory: found registry.terraform.io/darnold/gigrack v0.1.0 for darwin_amd64 at /Users/darnold/.terraform.d/plugins/registry.terraform.io/darnold/gigrack/0.1.0/darwin_amd64 +2025-05-01T10:21:27.479-0700 [WARN] ignoring local provider path "/Users/darnold/.terraform.d/plugins/registry.terraform.io/darnold/openai/3b6fef8/darwin_amd64" with invalid version "3b6fef8": invalid characters "b6fef8" +2025-05-01T10:21:27.480-0700 [WARN] ignoring local provider path "/Users/darnold/.terraform.d/plugins/registry.terraform.io/darnold/openai/70f25a4/darwin_amd64" with invalid version "70f25a4": invalid characters "f25a4" +2025-05-01T10:21:27.481-0700 [TRACE] getproviders.SearchLocalDirectory: found registry.terraform.io/happypathway/openai v5.0.0 for darwin_amd64 at /Users/darnold/.terraform.d/plugins/registry.terraform.io/happypathway/openai/5.0.0/darwin_amd64 +2025-05-01T10:21:27.481-0700 [DEBUG] ignoring non-existing provider search directory /Users/darnold/Library/Application Support/io.terraform/plugins +2025-05-01T10:21:27.481-0700 [DEBUG] ignoring non-existing provider search directory /Library/Application Support/io.terraform/plugins +2025-05-01T10:21:27.483-0700 [INFO] Checkpoint disabled. Not running. +2025-05-01T10:21:27.484-0700 [INFO] CLI command args: []string{"version", "-json"} +2025-05-01T10:21:27.604-0700 [INFO] Terraform version: 1.10.5 +2025-05-01T10:21:27.604-0700 [DEBUG] using github.com/hashicorp/go-tfe v1.70.0 +2025-05-01T10:21:27.604-0700 [DEBUG] using github.com/hashicorp/hcl/v2 v2.23.0 +2025-05-01T10:21:27.604-0700 [DEBUG] using github.com/hashicorp/terraform-svchost v0.1.1 +2025-05-01T10:21:27.604-0700 [DEBUG] using github.com/zclconf/go-cty v1.16.2 +2025-05-01T10:21:27.604-0700 [INFO] Go runtime version: go1.23.3 +2025-05-01T10:21:27.604-0700 [INFO] CLI args: []string{"/usr/local/Cellar/tfenv/1.0.2/versions/1.10.5/terraform", "providers", "schema", "-json", "-no-color"} +2025-05-01T10:21:27.604-0700 [TRACE] Stdout is not a terminal +2025-05-01T10:21:27.604-0700 [TRACE] Stderr is not a terminal +2025-05-01T10:21:27.604-0700 [TRACE] Stdin is not a terminal +2025-05-01T10:21:27.605-0700 [DEBUG] Attempting to open CLI config file: /Users/darnold/.terraformrc +2025-05-01T10:21:27.605-0700 [INFO] Loading CLI configuration from /Users/darnold/.terraformrc +2025-05-01T10:21:27.605-0700 [INFO] Loading CLI configuration from /Users/darnold/.terraform.d/credentials.tfrc.json +2025-05-01T10:21:27.605-0700 [DEBUG] checking for credentials in "/Users/darnold/.terraform.d/plugins" +2025-05-01T10:21:27.605-0700 [DEBUG] checking for credentials in "/Users/darnold/.terraform.d/plugins/darwin_amd64" +2025-05-01T10:21:27.605-0700 [DEBUG] Using modified User-Agent: HashiCorp Terraform/1.10.5 (+https://www.terraform.io) HashiCorp-terraform-exec/0.21.0 +2025-05-01T10:21:27.605-0700 [DEBUG] ignoring non-existing provider search directory terraform.d/plugins +2025-05-01T10:21:27.605-0700 [DEBUG] will search for provider plugins in /Users/darnold/.terraform.d/plugins +2025-05-01T10:21:27.605-0700 [WARN] local provider path "/Users/darnold/.terraform.d/plugins/HappyPathway/openai/0.1.0" contains invalid type "0.1.0"; ignoring +2025-05-01T10:21:27.605-0700 [WARN] local provider path "/Users/darnold/.terraform.d/plugins/HappyPathway/openai/0.1.0/darwin_amd64" contains invalid type "0.1.0"; ignoring +2025-05-01T10:21:27.605-0700 [WARN] local provider path "/Users/darnold/.terraform.d/plugins/HappyPathway/openai/0.1.0/darwin_amd64/terraform-provider-openai" contains invalid type "0.1.0"; ignoring +2025-05-01T10:21:27.605-0700 [WARN] local provider path "/Users/darnold/.terraform.d/plugins/darnold/gigrack/0.1.0" contains invalid type "0.1.0"; ignoring +2025-05-01T10:21:27.605-0700 [WARN] local provider path "/Users/darnold/.terraform.d/plugins/darnold/gigrack/0.1.0/darwin_amd64" contains invalid type "0.1.0"; ignoring +2025-05-01T10:21:27.605-0700 [WARN] local provider path "/Users/darnold/.terraform.d/plugins/darnold/gigrack/0.1.0/darwin_amd64/terraform-provider-gigrack" contains invalid type "0.1.0"; ignoring +2025-05-01T10:21:27.605-0700 [WARN] Provider plugin search ignored symlink /Users/darnold/.terraform.d/plugins/darwin_amd64/terraform-provider-configstash: only the base directory /Users/darnold/.terraform.d/plugins may be a symlink +2025-05-01T10:21:27.606-0700 [TRACE] getproviders.SearchLocalDirectory: found hashicorp.com/edu/hashicups v0.3.1 for darwin_amd64 at /Users/darnold/.terraform.d/plugins/hashicorp.com/edu/hashicups/0.3.1/darwin_amd64 +2025-05-01T10:21:27.606-0700 [TRACE] getproviders.SearchLocalDirectory: found registry.terraform.io/darnold/gigrack v0.1.0 for darwin_amd64 at /Users/darnold/.terraform.d/plugins/registry.terraform.io/darnold/gigrack/0.1.0/darwin_amd64 +2025-05-01T10:21:27.606-0700 [WARN] ignoring local provider path "/Users/darnold/.terraform.d/plugins/registry.terraform.io/darnold/openai/3b6fef8/darwin_amd64" with invalid version "3b6fef8": invalid characters "b6fef8" +2025-05-01T10:21:27.606-0700 [WARN] ignoring local provider path "/Users/darnold/.terraform.d/plugins/registry.terraform.io/darnold/openai/70f25a4/darwin_amd64" with invalid version "70f25a4": invalid characters "f25a4" +2025-05-01T10:21:27.606-0700 [TRACE] getproviders.SearchLocalDirectory: found registry.terraform.io/happypathway/openai v5.0.0 for darwin_amd64 at /Users/darnold/.terraform.d/plugins/registry.terraform.io/happypathway/openai/5.0.0/darwin_amd64 +2025-05-01T10:21:27.606-0700 [DEBUG] ignoring non-existing provider search directory /Users/darnold/Library/Application Support/io.terraform/plugins +2025-05-01T10:21:27.606-0700 [DEBUG] ignoring non-existing provider search directory /Library/Application Support/io.terraform/plugins +2025-05-01T10:21:27.609-0700 [INFO] Checkpoint disabled. Not running. +2025-05-01T10:21:27.610-0700 [INFO] CLI command args: []string{"providers", "schema", "-json", "-no-color"} +2025-05-01T10:21:27.611-0700 [DEBUG] Using modified User-Agent: Terraform/1.10.5 HashiCorp-terraform-exec/0.21.0 +2025-05-01T10:21:27.611-0700 [DEBUG] Using modified User-Agent: HashiCorp Terraform/1.10.5 (+https://www.terraform.io) HashiCorp-terraform-exec/0.21.0 +2025-05-01T10:21:27.613-0700 [TRACE] Meta.Backend: no config given or present on disk, so returning nil config +2025-05-01T10:21:27.613-0700 [TRACE] Meta.Backend: backend has not previously been initialized in this working directory +2025-05-01T10:21:27.613-0700 [TRACE] Meta.Backend: using default local state only (no backend configuration, and no existing initialized backend) +2025-05-01T10:21:27.613-0700 [TRACE] Meta.Backend: instantiated backend of type +2025-05-01T10:21:27.613-0700 [TRACE] providercache.fillMetaCache: scanning directory .terraform/providers +2025-05-01T10:21:27.613-0700 [TRACE] getproviders.SearchLocalDirectory: failed to resolve symlinks for .terraform/providers: lstat .terraform: no such file or directory +2025-05-01T10:21:27.613-0700 [TRACE] providercache.fillMetaCache: error while scanning directory .terraform/providers: cannot search .terraform/providers: lstat .terraform/providers: no such file or directory +2025-05-01T10:21:27.613-0700 [DEBUG] checking for provisioner in "." +2025-05-01T10:21:27.613-0700 [DEBUG] checking for provisioner in "/usr/local/Cellar/tfenv/1.0.2/versions/1.10.5" +2025-05-01T10:21:27.613-0700 [DEBUG] checking for provisioner in "/Users/darnold/.terraform.d/plugins" +2025-05-01T10:21:27.613-0700 [DEBUG] checking for provisioner in "/Users/darnold/.terraform.d/plugins/darwin_amd64" diff --git a/github/workflows/integration-tests.yml b/github/workflows/integration-tests.yml new file mode 100644 index 0000000..3d05b0d --- /dev/null +++ b/github/workflows/integration-tests.yml @@ -0,0 +1,35 @@ +name: Integration Tests + +on: + pull_request: + branches: [ main ] + workflow_dispatch: + +env: + GITHUB_API_URL: https://api.github.com + GITHUB_ORG: ${{ vars.TEST_GITHUB_ORG }} + GITHUB_TEST_TEAM: ${{ vars.TEST_GITHUB_TEAM }} + +jobs: + integration-tests: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + pip install pytest pytest-cov + + - name: Run integration tests + env: + GITHUB_TOKEN: ${{ secrets.TEST_GITHUB_TOKEN }} + run: | + pytest tests/integration -v -m integration --cov=template_automation