Skip to content

Commit

Permalink
Refactor GitHub Actions workflows: update token refresh condition and…
Browse files Browse the repository at this point in the history
… add integration tests for GitHub client functionality
  • Loading branch information
Dave Arnold committed May 1, 2025
1 parent e64d7e6 commit 6f18058
Show file tree
Hide file tree
Showing 4 changed files with 157 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .github/workflows/gh-token.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
40 changes: 40 additions & 0 deletions .github/workflows/github-client-integration-test.yml
Original file line number Diff line number Diff line change
@@ -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
81 changes: 81 additions & 0 deletions .tflog
Original file line number Diff line number Diff line change
Expand Up @@ -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 <nil>
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"
35 changes: 35 additions & 0 deletions github/workflows/integration-tests.yml
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 6f18058

Please sign in to comment.