name: CI Test Cleanup on: workflow_dispatch: schedule: # every half hour - cron: "*/30 * * * *" jobs: Test-User-Data-Cleanup: environment: Testing runs-on: ubuntu-latest continue-on-error: true strategy: matrix: user: [ CORSO_M365_TEST_USER_ID, CORSO_SECONDARY_M365_TEST_USER_ID, EXT_SDK_TEST_USER_ID, '' ] steps: - uses: actions/checkout@v3 # sets the maximum time to now-30m. # CI test have a 10 minute timeout. # At 20 minutes ago, we should be safe from conflicts. # The additional 10 minutes is just to be good citizens. - name: Set purge boundary run: | echo "HALF_HOUR_AGO=$(date -d '30 minutes ago' -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_ENV - name: Purge CI-Produced Folders for Users uses: ./.github/actions/purge-m365-data with: user: ${{ vars[matrix.user] }} folder-prefix: ${{ vars.CORSO_M365_TEST_PREFIXES }} older-than: ${{ env.HALF_HOUR_AGO }} azure-client-id: ${{ secrets.CLIENT_ID }} azure-client-secret: ${{ secrets.CLIENT_SECRET }} azure-tenant-id: ${{ secrets.TENANT_ID }} m365-admin-user: ${{ secrets.M365_TENANT_ADMIN_USER }} m365-admin-password: ${{ secrets.M365_TENANT_ADMIN_PASSWORD }} Test-Site-Data-Cleanup: environment: Testing runs-on: ubuntu-latest continue-on-error: true strategy: matrix: site: [ CORSO_M365_TEST_SITE_URL, EXT_SDK_TEST_SITE_URL ] steps: - uses: actions/checkout@v3 # sets the maximum time to now-30m. # CI test have a 10 minute timeout. # At 20 minutes ago, we should be safe from conflicts. # The additional 10 minutes is just to be good citizens. - name: Set purge boundary run: | echo "HALF_HOUR_AGO=$(date -d '30 minutes ago' -u +"%Y-%m-%dT%H:%M:%SZ")" >> $GITHUB_ENV - name: Purge CI-Produced Folders for Sites uses: ./.github/actions/purge-m365-data with: site: ${{ vars[matrix.site] }} folder-prefix: ${{ vars.CORSO_M365_TEST_PREFIXES }} libraries: ${{ vars.CORSO_M365_TEST_SITE_LIBRARIES }} older-than: ${{ env.HALF_HOUR_AGO }} azure-client-id: ${{ secrets.CLIENT_ID }} azure-client-secret: ${{ secrets.CLIENT_SECRET }} azure-tenant-id: ${{ secrets.TENANT_ID }} m365-admin-user: ${{ secrets.M365_TENANT_ADMIN_USER }} m365-admin-password: ${{ secrets.M365_TENANT_ADMIN_PASSWORD }} # run the tests - name: SHA info id: sha-info if: failure() run: | echo SHA=${GITHUB_REF#refs/heads/}-${GITHUB_SHA} >> $GITHUB_OUTPUT echo RUN_URL=${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} >> $GITHUB_OUTPUT echo COMMIT_URL=${{ github.server_url }}/${{ github.repository }}/commit/${GITHUB_SHA} >> $GITHUB_OUTPUT - name: Send Github Action failure to Slack id: slack-notification if: failure() uses: slackapi/slack-github-action@v1.23.0 with: payload: | { "text": "GitHub Action build result: ${{ job.status }} on SHA: ${{ steps.sha-info.outputs.SHA }}", "blocks": [ { "type": "header", "text": { "type": "plain_text", "text": "Failure in Test-Site-Data-Cleanup" } }, { "type": "divider" }, { "type": "section", "text": { "type": "mrkdwn", "text": "<${{ steps.sha-info.outputs.RUN_URL }}|Check logs> for <${{ steps.sha-info.outputs.COMMIT_URL }}|${{ steps.sha-info.outputs.SHA }}>" } } ] } env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} SLACK_WEBHOOK_TYPE: INCOMING_WEBHOOK