CI #863
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
name: CI | |
on: | |
push: | |
branches: | |
- main | |
schedule: | |
- cron: '0 6,18 * * *' # Runs at 6:00 AM and 6:00 PM GMT | |
permissions: | |
contents: read | |
packages: write | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
jobs: | |
ci: | |
runs-on: ubuntu-latest | |
env: | |
AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} | |
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} | |
AZURE_SUBSCRIPTION_ID: ${{ secrets.AZURE_SUBSCRIPTION_ID }} | |
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Pre-build image and run make in dev container | |
uses: devcontainers/[email protected] | |
env: | |
AZURE_ENV_NAME: ${{ github.run_id }} | |
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }} | |
AZURE_RESOURCE_GROUP: ${{ vars.AZURE_RESOURCE_GROUP }} | |
with: | |
imageName: ghcr.io/azure-samples/chat-with-your-data-solution-accelerator | |
cacheFrom: ghcr.io/azure-samples/chat-with-your-data-solution-accelerator | |
runCmd: make ci && make deploy | |
refFilterForPush: refs/heads/main | |
env: | | |
AZURE_CLIENT_ID | |
AZURE_CLIENT_SECRET | |
AZURE_TENANT_ID | |
AZURE_SUBSCRIPTION_ID | |
AZURE_ENV_NAME | |
AZURE_LOCATION | |
AZURE_RESOURCE_GROUP | |
- name: Tidy up | |
uses: devcontainers/[email protected] | |
if: always() | |
env: | |
AZURE_ENV_NAME: ${{ github.run_id }} | |
AZURE_LOCATION: ${{ vars.AZURE_LOCATION }} | |
AZURE_RESOURCE_GROUP: ${{ vars.AZURE_RESOURCE_GROUP }} | |
with: | |
push: never | |
imageName: ghcr.io/azure-samples/chat-with-your-data-solution-accelerator | |
runCmd: make destroy | |
env: | | |
AZURE_CLIENT_ID | |
AZURE_CLIENT_SECRET | |
AZURE_TENANT_ID | |
AZURE_SUBSCRIPTION_ID | |
AZURE_ENV_NAME | |
AZURE_LOCATION | |
AZURE_RESOURCE_GROUP | |
- name: Send Notification on Failure | |
if: failure() | |
run: | | |
RUN_URL="https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}" | |
# Construct the email body | |
EMAIL_BODY=$(cat <<EOF | |
{ | |
"body": "<p>Dear Team,</p><p>We would like to inform you that the CWYD Automation process has encountered an issue and has failed to complete successfully.</p><p><strong>Build URL:</strong> ${RUN_URL}<br> ${OUTPUT}</p><p>Please investigate the matter at your earliest convenience.</p><p>Best regards,<br>Your Automation Team</p>" | |
} | |
EOF | |
) | |
# Send the notification | |
curl -X POST "${{ secrets.LOGIC_APP_URL }}" \ | |
-H "Content-Type: application/json" \ | |
-d "$EMAIL_BODY" || echo "Failed to send notification" |