Skip to content

Commit

Permalink
chore: detecting drift via multiple error substrings
Browse files Browse the repository at this point in the history
  • Loading branch information
sanderblue committed May 28, 2024
1 parent f51ebda commit bdf8806
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 26 deletions.
65 changes: 45 additions & 20 deletions .github/workflows/test_integration_cron.yml
Original file line number Diff line number Diff line change
@@ -1,32 +1,57 @@
name: Integration Tests Cron Job

on:
workflow_dispatch: # this is just to test the functionality, remove before merging!!!!!!!!!!!!
workflow_dispatch:
push:
branches: [feat/integration-test-cron-job]
# 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 }}
runs-on: ubuntu-latest
steps:
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: 1.21.x

- name: Add GOBIN to PATH
run: echo "$(go env GOPATH)/bin" >> $GITHUB_PATH
shell: bash

- 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 }}

detect-drift:
runs-on: ubuntu-latest
Expand Down
5 changes: 1 addition & 4 deletions newrelic/resource_newrelic_notifications_channel_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -89,10 +89,7 @@ func TestNewRelicNotificationChannel_WebhookPropertyError(t *testing.T) {
# Test error for missing property key = url
`
destinationPropsAttr := `property {
key = "url"
value = "https://webhook.site/"
}
destinationPropsAttr := `
`

resource.ParallelTest(t, resource.TestCase{
Expand Down
20 changes: 18 additions & 2 deletions scripts/detect-state-drift.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,28 @@ module.exports = async ({
// console.log(jsonData);

const report = jsonData.filter(data => {
return data.Output ? data.Output.includes('error: After applying this test step, the plan was not empty') : false;
const driftDetectedSubStrings = [
'the plan was not empty',
'expected an error but got none',
];

if (!data.Output) {
return false;
}

let driftDetected = false
for (let i = 0; i < driftDetectedSubStrings.length; i++) {
if (data.Output.includes(driftDetectedSubStrings[i])) {
return true;
}
}

return driftDetected
}).map(t => t.Output.trim());

console.log(report);

let msg = 'error: After applying this test step, the plan was not empty';
let msg = '';
if (report.length > 0) {
msg = `'${report.join('\n')}'`;
}
Expand Down

0 comments on commit bdf8806

Please sign in to comment.