Compare commits

...

2 Commits

Author SHA1 Message Date
HiteshRepo
3d1fa661bf move M365 creds rotation logic to code 2024-02-05 20:57:42 +05:30
HiteshRepo
6d2027d6c2 enables cache for diff types of tests 2024-02-05 13:25:44 +05:30
2 changed files with 72 additions and 25 deletions

View File

@ -139,17 +139,28 @@ jobs:
AZURE_CLIENT_ID_NAME: ${{ needs.SetM365App.outputs.client_id_env }}
AZURE_CLIENT_SECRET_NAME: ${{ needs.SetM365App.outputs.client_secret_env }}
CLIENT_APP_SLOT: ${{ needs.SetM365App.outputs.client_app_slot }}
CORSO_LOG_FILE: ${{ github.workspace }}/src/testlog/run-ci.log
CORSO_LOG_FILE: /tmp/corso-trusted-testlog/run-ci.log
LOG_GRAPH_REQUESTS: true
steps:
- uses: actions/checkout@v4
- name: Setup Golang with cache
uses: magnetikonline/action-golang-cache@v4
uses: actions/setup-go@v5
with:
go-version-file: src/go.mod
go-version: 1.21
cache: true
- run: mkdir testlog
- name: Setup Golang caches
uses: actions/cache@v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-golang-trusted-${{ github.sha }}
restore-keys: |
${{ runner.os }}-golang-trusted-
- run: mkdir -p /tmp/corso-trusted-testlog
# Install gotestfmt
- name: Set up gotestfmt
@ -166,8 +177,8 @@ jobs:
# run the tests
- name: Integration Tests
env:
AZURE_CLIENT_ID: ${{ secrets[env.AZURE_CLIENT_ID_NAME] }}
AZURE_CLIENT_SECRET: ${{ secrets[env.AZURE_CLIENT_SECRET_NAME] }}
AZURE_CLIENT_ID: ${{ secrets[CLIENT_ID] }},${{ secrets[CLIENT_ID_2] }},${{ secrets[CLIENT_ID_3] }},${{ secrets[CLIENT_ID_4] }}
AZURE_CLIENT_SECRET: ${{ secrets[CLIENT_SECRET] }},${{ secrets[CLIENT_SECRET_2] }},${{ secrets[CLIENT_SECRET_3] }},${{ secrets[CLIENT_SECRET_4] }}
AZURE_TENANT_ID: ${{ secrets.TENANT_ID }}
CORSO_CI_TESTS: true
CORSO_M365_TEST_USER_ID: ${{ vars.CORSO_M365_TEST_USER_ID }}
@ -184,15 +195,15 @@ jobs:
-p 1 \
-timeout 20m \
./... \
2>&1 | tee ./testlog/gotest-ci.log | gotestfmt -hide successful-tests
2>&1 | tee /tmp/corso-trusted-testlog/gotest-ci.log | gotestfmt -hide successful-tests
# Upload the original go test output as an artifact for later review.
- name: Upload test log
if: failure()
if: always()
uses: actions/upload-artifact@v4
with:
name: ci-test-log
path: src/testlog/*
path: /tmp/corso-trusted-testlog/*
if-no-files-found: error
retention-days: 14
@ -210,17 +221,28 @@ jobs:
AZURE_CLIENT_ID_NAME: ${{ needs.SetM365App.outputs.client_id_env }}
AZURE_CLIENT_SECRET_NAME: ${{ needs.SetM365App.outputs.client_secret_env }}
CLIENT_APP_SLOT: ${{ needs.SetM365App.outputs.client_app_slot }}
CORSO_LOG_FILE: ${{ github.workspace }}/src/testlog/run-ci-retention.log
CORSO_LOG_FILE: /tmp/corso-retention-testlog/run-ci-retention.log
LOG_GRAPH_REQUESTS: true
steps:
- uses: actions/checkout@v4
- name: Setup Golang with cache
uses: magnetikonline/action-golang-cache@v4
uses: actions/setup-go@v5
with:
go-version-file: src/go.mod
go-version: 1.21
cache: true
- run: mkdir testlog
- name: Setup Golang caches
uses: actions/cache@v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-golang-retention-${{ github.sha }}
restore-keys: |
${{ runner.os }}-golang-retention-
- run: mkdir -p /tmp/corso-retention-testlog
# Install gotestfmt
- name: Set up gotestfmt
@ -237,8 +259,8 @@ jobs:
# run the tests
- name: Retention Tests
env:
AZURE_CLIENT_ID: ${{ secrets[env.AZURE_CLIENT_ID_NAME] }}
AZURE_CLIENT_SECRET: ${{ secrets[env.AZURE_CLIENT_SECRET_NAME] }}
AZURE_CLIENT_ID: ${{ secrets[CLIENT_ID] }},${{ secrets[CLIENT_ID_2] }},${{ secrets[CLIENT_ID_3] }},${{ secrets[CLIENT_ID_4] }}
AZURE_CLIENT_SECRET: ${{ secrets[CLIENT_SECRET] }},${{ secrets[CLIENT_SECRET_2] }},${{ secrets[CLIENT_SECRET_3] }},${{ secrets[CLIENT_SECRET_4] }}
AZURE_TENANT_ID: ${{ secrets.TENANT_ID }}
CORSO_RETENTION_TESTS: true
CORSO_M365_TEST_USER_ID: ${{ vars.CORSO_M365_TEST_USER_ID }}
@ -255,15 +277,15 @@ jobs:
-p 1 \
-timeout 10m \
./... \
2>&1 | tee ./testlog/gotest-ci.log | gotestfmt -hide successful-tests
2>&1 | tee /tmp/corso-retention-testlog/gotest-ci.log | gotestfmt -hide successful-tests
# Upload the original go test output as an artifact for later review.
- name: Upload test log
if: failure()
if: always()
uses: actions/upload-artifact@v4
with:
name: ci-retention-test-log
path: src/testlog/*
path: /tmp/corso-trusted-testlog/*
if-no-files-found: error
retention-days: 14
@ -277,17 +299,28 @@ jobs:
run:
working-directory: src
env:
CORSO_LOG_FILE: ${{ github.workspace }}/src/testlog/run-unit.log
CORSO_LOG_FILE: /tmp/corso-unit-testlog/run-unit.log
LOG_GRAPH_REQUESTS: true
steps:
- uses: actions/checkout@v4
- name: Setup Golang with cache
uses: magnetikonline/action-golang-cache@v4
uses: actions/setup-go@v5
with:
go-version-file: src/go.mod
go-version: 1.21
cache: true
- run: mkdir testlog
- name: Setup Golang caches
uses: actions/cache@v4
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-golang-unit-${{ github.sha }}
restore-keys: |
${{ runner.os }}-golang-unit-
- run: mkdir -p /tmp/corso-unit-testlog
# Install gotestfmt
- name: Set up gotestfmt
@ -310,15 +343,15 @@ jobs:
-p 1 \
-timeout 20m \
./... \
2>&1 | tee ./testlog/gotest-unit.log | gotestfmt -hide successful-tests
2>&1 | tee /tmp/corso-unit-testlog/gotest-unit.log | gotestfmt -hide successful-tests
# Upload the original go test output as an artifact for later review.
- name: Upload test log
if: failure()
if: always()
uses: actions/upload-artifact@v4
with:
name: unit-test-log
path: src/testlog/*
path: /tmp/corso-unit-testlog/*
if-no-files-found: error
retention-days: 14

View File

@ -1,7 +1,9 @@
package credentials
import (
"math/rand"
"os"
"strings"
"github.com/alcionai/clues"
)
@ -25,6 +27,18 @@ func GetM365() M365 {
AzureClientID := os.Getenv(AzureClientID)
AzureClientSecret := os.Getenv(AzureClientSecret)
randomNumber := rand.Intn(4) + 1
if strings.Contains(AzureClientID, ",") {
AzureClientIDs := strings.Split(AzureClientID, ",")
AzureClientID = AzureClientIDs[randomNumber]
}
if strings.Contains(AzureClientID, ",") {
AzureClientSecrets := strings.Split(AzureClientSecret, ",")
AzureClientSecret = AzureClientSecrets[randomNumber]
}
return M365{
AzureClientID: AzureClientID,
AzureClientSecret: AzureClientSecret,