112 lines
4.1 KiB
YAML
112 lines
4.1 KiB
YAML
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 |