-
Notifications
You must be signed in to change notification settings - Fork 245
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(automation): run integration tests and report drift
- Loading branch information
1 parent
092ca5a
commit da19f1f
Showing
6 changed files
with
171 additions
and
150 deletions.
There are no files selected for viewing
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,9 +5,40 @@ on: | |
push: | ||
branches: [main] | ||
pull_request: | ||
# schedule: | ||
# # Cron executes at 0800, 1200 1600 (8am, 12pm, 4pm) | ||
# - cron: "0 8,12,16 * * 1-5" | ||
workflow_call: | ||
secrets: | ||
NEW_RELIC_ACCOUNT_ID: | ||
required: true | ||
NEW_RELIC_SUBACCOUNT_ID: | ||
required: true | ||
NEW_RELIC_ADMIN_API_KEY: | ||
required: true | ||
NEW_RELIC_API_KEY: | ||
required: true | ||
NEW_RELIC_LICENSE_KEY: | ||
required: true | ||
NEW_RELIC_REGION: | ||
required: true | ||
NEW_RELIC_INSIGHTS_INSERT_KEY: | ||
required: true | ||
NR_ACC_TESTING: | ||
required: true | ||
INTEGRATION_TESTING_AWS_ARN: | ||
required: true | ||
INTEGRATION_TESTING_GCP_ACCOUNT_NAME: | ||
required: true | ||
INTEGRATION_TESTING_GCP_PROJECT_ID: | ||
required: true | ||
INTEGRATION_TESTING_GCP_INTEGRATIONS_PROJECT_ID: | ||
required: true | ||
INTEGRATION_TESTING_AZURE_APPLICATION_ID: | ||
required: true | ||
INTEGRATION_TESTING_AZURE_CLIENT_SECRET_ID: | ||
required: true | ||
INTEGRATION_TESTING_AZURE_SUBSCRIPTION_ID: | ||
required: true | ||
INTEGRATION_TESTING_AZURE_TENANT_ID: | ||
required: true | ||
|
||
jobs: | ||
test-integration: | ||
|
@@ -18,68 +49,38 @@ jobs: | |
with: | ||
go-version: 1.21.x | ||
|
||
# - name: Add GOBIN to PATH | ||
# run: echo "$(go env GOPATH)/bin" >> $GITHUB_PATH | ||
# shell: bash | ||
- name: Add GOBIN to PATH | ||
run: echo "$(go env GOPATH)/bin" >> $GITHUB_PATH | ||
shell: bash | ||
|
||
# - name: Checkout code | ||
# uses: actions/checkout@v4 | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
||
# - name: Cache deps | ||
# uses: actions/cache@v4 | ||
# with: | ||
# path: ~/go/pkg/mod | ||
# key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | ||
# restore-keys: | | ||
# ${{ runner.os }}-go- | ||
|
||
# - name: Integration Tests | ||
# if: github.event.pull_request.head.repo.full_name == github.repository | ||
# run: make test-integration cover-report | ||
# env: | ||
# NEW_RELIC_ACCOUNT_ID: ${{ secrets.NEW_RELIC_ACCOUNT_ID }} | ||
# NEW_RELIC_SUBACCOUNT_ID: ${{ secrets.NEW_RELIC_SUBACCOUNT_ID }} | ||
# NEW_RELIC_ADMIN_API_KEY: ${{ secrets.NEW_RELIC_ADMIN_API_KEY }} | ||
# NEW_RELIC_API_KEY: ${{ secrets.NEW_RELIC_API_KEY }} | ||
# NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }} | ||
# NEW_RELIC_REGION: ${{ secrets.NEW_RELIC_REGION }} | ||
# NEW_RELIC_INSIGHTS_INSERT_KEY: ${{ secrets.NEW_RELIC_INSIGHTS_INSERT_KEY }} | ||
# NR_ACC_TESTING: ${{ secrets.NR_ACC_TESTING }} | ||
# INTEGRATION_TESTING_AWS_ARN: ${{ secrets.INTEGRATION_TESTING_AWS_ARN }} | ||
# INTEGRATION_TESTING_GCP_ACCOUNT_NAME: ${{ secrets.INTEGRATION_TESTING_GCP_ACCOUNT_NAME }} | ||
# INTEGRATION_TESTING_GCP_PROJECT_ID: ${{ secrets.INTEGRATION_TESTING_GCP_PROJECT_ID }} | ||
# INTEGRATION_TESTING_GCP_INTEGRATIONS_PROJECT_ID: ${{secrets.INTEGRATION_TESTING_GCP_INTEGRATIONS_PROJECT_ID}} | ||
# INTEGRATION_TESTING_AZURE_APPLICATION_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_APPLICATION_ID }} | ||
# INTEGRATION_TESTING_AZURE_CLIENT_SECRET_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_CLIENT_SECRET_ID }} | ||
# INTEGRATION_TESTING_AZURE_SUBSCRIPTION_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_SUBSCRIPTION_ID }} | ||
# INTEGRATION_TESTING_AZURE_TENANT_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_TENANT_ID }} | ||
|
||
# - name: Create test failure report | ||
# id: testFailureReport | ||
# run: | | ||
# go install github.com/mfridman/tparse@latest | ||
# make test-failure-report | ||
# tparse -file=coverage/integration.failures -format=markdown >> "$GITHUB_OUTPUT" | ||
|
||
# - name: Send test failures report to Slack | ||
# id: slack | ||
# uses: slackapi/[email protected] | ||
# with: | ||
# # Uses Slack's Block Kit to build the message | ||
# payload: | | ||
# { | ||
# "text": "New Relic Terraform Provider Test Failures", | ||
# "blocks": [ | ||
# { | ||
# "type": "section", | ||
# "text": { | ||
# "type": "mrkdwn", | ||
# "text": "${{ steps.testFailureReport.outputs }}" | ||
# } | ||
# } | ||
# ] | ||
# } | ||
# env: | ||
# SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | ||
# SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK | ||
- name: Cache deps | ||
uses: actions/cache@v4 | ||
with: | ||
path: ~/go/pkg/mod | ||
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} | ||
restore-keys: | | ||
${{ runner.os }}-go- | ||
- name: Integration Tests | ||
if: github.event.pull_request.head.repo.full_name == github.repository | ||
run: make test-integration cover-report | ||
env: | ||
NEW_RELIC_ACCOUNT_ID: ${{ secrets.NEW_RELIC_ACCOUNT_ID }} | ||
NEW_RELIC_SUBACCOUNT_ID: ${{ secrets.NEW_RELIC_SUBACCOUNT_ID }} | ||
NEW_RELIC_ADMIN_API_KEY: ${{ secrets.NEW_RELIC_ADMIN_API_KEY }} | ||
NEW_RELIC_API_KEY: ${{ secrets.NEW_RELIC_API_KEY }} | ||
NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }} | ||
NEW_RELIC_REGION: ${{ secrets.NEW_RELIC_REGION }} | ||
NEW_RELIC_INSIGHTS_INSERT_KEY: ${{ secrets.NEW_RELIC_INSIGHTS_INSERT_KEY }} | ||
NR_ACC_TESTING: ${{ secrets.NR_ACC_TESTING }} | ||
INTEGRATION_TESTING_AWS_ARN: ${{ secrets.INTEGRATION_TESTING_AWS_ARN }} | ||
INTEGRATION_TESTING_GCP_ACCOUNT_NAME: ${{ secrets.INTEGRATION_TESTING_GCP_ACCOUNT_NAME }} | ||
INTEGRATION_TESTING_GCP_PROJECT_ID: ${{ secrets.INTEGRATION_TESTING_GCP_PROJECT_ID }} | ||
INTEGRATION_TESTING_GCP_INTEGRATIONS_PROJECT_ID: ${{secrets.INTEGRATION_TESTING_GCP_INTEGRATIONS_PROJECT_ID}} | ||
INTEGRATION_TESTING_AZURE_APPLICATION_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_APPLICATION_ID }} | ||
INTEGRATION_TESTING_AZURE_CLIENT_SECRET_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_CLIENT_SECRET_ID }} | ||
INTEGRATION_TESTING_AZURE_SUBSCRIPTION_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_SUBSCRIPTION_ID }} | ||
INTEGRATION_TESTING_AZURE_TENANT_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_TENANT_ID }} |
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
name: Integration Tests Cron Job | ||
|
||
on: | ||
workflow_dispatch: # this is just to test the functionality, remove before merging!!!!!!!!!!!! | ||
# schedule: | ||
# # Cron executes at 0800, 1200 1600 (8am, 12pm, 4pm) | ||
# - cron: "0 8,12,16 * * 1-5" | ||
|
||
jobs: | ||
test-integration: | ||
# if: github.ref == 'refs/heads/main' | ||
uses: newrelic/terraform-provider-newrelic/.github/workflows/test_integration.yml@feat/integration-test-cron-job | ||
secrets: | ||
NEW_RELIC_ACCOUNT_ID: ${{ secrets.NEW_RELIC_ACCOUNT_ID }} | ||
NEW_RELIC_SUBACCOUNT_ID: ${{ secrets.NEW_RELIC_SUBACCOUNT_ID }} | ||
NEW_RELIC_ADMIN_API_KEY: ${{ secrets.NEW_RELIC_ADMIN_API_KEY }} | ||
NEW_RELIC_API_KEY: ${{ secrets.NEW_RELIC_API_KEY }} | ||
NEW_RELIC_LICENSE_KEY: ${{ secrets.NEW_RELIC_LICENSE_KEY }} | ||
NEW_RELIC_REGION: ${{ secrets.NEW_RELIC_REGION }} | ||
NEW_RELIC_INSIGHTS_INSERT_KEY: ${{ secrets.NEW_RELIC_INSIGHTS_INSERT_KEY }} | ||
NR_ACC_TESTING: ${{ secrets.NR_ACC_TESTING }} | ||
INTEGRATION_TESTING_AWS_ARN: ${{ secrets.INTEGRATION_TESTING_AWS_ARN }} | ||
INTEGRATION_TESTING_GCP_ACCOUNT_NAME: ${{ secrets.INTEGRATION_TESTING_GCP_ACCOUNT_NAME }} | ||
INTEGRATION_TESTING_GCP_PROJECT_ID: ${{ secrets.INTEGRATION_TESTING_GCP_PROJECT_ID }} | ||
INTEGRATION_TESTING_GCP_INTEGRATIONS_PROJECT_ID: ${{secrets.INTEGRATION_TESTING_GCP_INTEGRATIONS_PROJECT_ID}} | ||
INTEGRATION_TESTING_AZURE_APPLICATION_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_APPLICATION_ID }} | ||
INTEGRATION_TESTING_AZURE_CLIENT_SECRET_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_CLIENT_SECRET_ID }} | ||
INTEGRATION_TESTING_AZURE_SUBSCRIPTION_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_SUBSCRIPTION_ID }} | ||
INTEGRATION_TESTING_AZURE_TENANT_ID: ${{ secrets.INTEGRATION_TESTING_AZURE_TENANT_ID }} | ||
|
||
detect-drift: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Check check | ||
run: ls | ||
|
||
- name: Detect drift | ||
if: ${{ always() }} | ||
uses: actions/github-script@v7 | ||
id: detect-state-drift | ||
with: | ||
script: | | ||
const script = require('./scripts/detect-state-drift.js') | ||
await script({core}) | ||
- name: Send report to Slack | ||
id: slack | ||
if: ${{ steps.detect-state-drift.outputs.drift_report != '' }} | ||
uses: slackapi/[email protected] | ||
with: | ||
# Uses Slack's Block Kit to build the message | ||
# https://app.slack.com/block-kit-builder | ||
payload: | | ||
{ | ||
"blocks": [ | ||
{ | ||
"type": "section", | ||
"text": { | ||
"type": "mrkdwn", | ||
"text": ":warning: *Terraform Provider | Drift Detected*" | ||
} | ||
}, | ||
{ | ||
"type": "divider" | ||
}, | ||
{ | ||
"type": "context", | ||
"elements": [ | ||
{ | ||
"type": "plain_text", | ||
"text": ${{ toJSON(steps.detect-state-drift.outputs.failed_tests_with_drift) }} | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "section", | ||
"text": { | ||
"type": "mrkdwn", | ||
"text": "More information can be viewed in the job summary." | ||
}, | ||
"accessory": { | ||
"type": "button", | ||
"text": { | ||
"type": "plain_text", | ||
"text": "Job Summary", | ||
"emoji": true | ||
}, | ||
"value": "View Job Summary", | ||
"url": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}", | ||
"action_id": "button-action" | ||
} | ||
}, | ||
{ | ||
"type": "divider" | ||
} | ||
] | ||
} | ||
env: | ||
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | ||
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK | ||
|
This file contains 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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -35,73 +35,10 @@ jobs: | |
run: | | ||
make test-unit cover-report | ||
- name: Detect drift | ||
if: ${{ always() }} | ||
uses: actions/github-script@v7 | ||
id: detect-state-drift | ||
with: | ||
script: | | ||
const script = require('./scripts/detect-state-drift.js') | ||
await script({core}) | ||
# - name: Report unit test coverage via Codecov | ||
# uses: codecov/codecov-action@v3 | ||
# with: | ||
# files: ./coverage/coverage.out | ||
|
||
- name: Send report to Slack | ||
id: slack | ||
if: ${{ always() }} | ||
uses: slackapi/[email protected] | ||
with: | ||
# Uses Slack's Block Kit to build the message | ||
# https://app.slack.com/block-kit-builder | ||
payload: | | ||
{ | ||
"blocks": [ | ||
{ | ||
"type": "section", | ||
"text": { | ||
"type": "mrkdwn", | ||
"text": ":warning: *Terraform Provider | Drift Detected*" | ||
} | ||
}, | ||
{ | ||
"type": "divider" | ||
}, | ||
{ | ||
"type": "context", | ||
"elements": [ | ||
{ | ||
"type": "plain_text", | ||
"text": ${{ toJSON(steps.detect-state-drift.outputs.failed_tests_with_drift) }} | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "section", | ||
"text": { | ||
"type": "mrkdwn", | ||
"text": "More information can be viewed in the job summary." | ||
}, | ||
"accessory": { | ||
"type": "button", | ||
"text": { | ||
"type": "plain_text", | ||
"text": "Job Summary", | ||
"emoji": true | ||
}, | ||
"value": "View Job Summary", | ||
"url": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}", | ||
"action_id": "button-action" | ||
} | ||
}, | ||
{ | ||
"type": "divider" | ||
} | ||
] | ||
} | ||
env: | ||
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} | ||
SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK | ||
|
||
|
This file contains 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
This file contains 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
This file contains 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