Skip to content

Send daily test metrics to CW #339

Send daily test metrics to CW

Send daily test metrics to CW #339

Workflow file for this run

name: Daily Test
on:
schedule:
# More information on cron https://crontab.guru/
# GitHub actions is using UTC time. Scheduling action at 3 am PST
- cron: '0 11 * * *'
workflow_dispatch:
# note secrets can only be referenced in env or run
env:
SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
DEMO_APP_DOWNLOAD_LINK: ${{ secrets.DEMO_APP_DOWNLOAD_LINK }}
DEMO_APP_DOWNLOAD_LINK_NO_VIDEO_CODECS: ${{ secrets.DEMO_APP_DOWNLOAD_LINK_NO_VIDEO_CODECS }}
ROLE_TO_ASSUME: ${{ secrets.ROLE_TO_ASSUME }}
METRIC_NAME: ${{ secrets.METRIC_NAME }}
METRIC_NAMESPACE: ${{ secrets.METRIC_NAMESPACE }}
permissions:
id-token: write
contents: read
jobs:
daily-test:
name: Amazon Chime Android SDK Daily Test
runs-on: ubuntu-latest
strategy:
matrix:
# Latest 2 Android versions. TODO: Upgrade to Appium 2 for OS 14 and above.
os_list: ["12", "13"]
demo_download_url_list: ["$DEMO_APP_DOWNLOAD_LINK", "$DEMO_APP_DOWNLOAD_LINK_NO_VIDEO_CODECS"]
outputs:
job-status: ${{ job.status }}
steps:
- name: Checkout test package
uses: actions/checkout@v4
with:
repository: awslabs/amazon-chime-sdk-apple
token: ${{ secrets.GH_INTEG_READ_ONLY_PAT }}
ref: automated-test-development
- name: Get latest prod demo app
run: |
wget -O amazon-chime-sdk-app.apk ${{ matrix.demo_download_url_list }}
- name: Setup Node.js - 18.x
uses: actions/setup-node@v4
with:
node-version: 18.x

Check failure on line 55 in .github/workflows/daily-test.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/daily-test.yml

Invalid workflow file

You have an error in your yaml syntax on line 55
- name: Install Dependencies
run: |
sudo apt-get update
# sudo apt-get install -y libcairo2-dev libjpeg-dev libpango1.0-dev libgif-dev build-essential g++
npm install @aws-sdk/client-cloudwatch
- name: Run tests against specified Android versions
id: tests
run: |
echo 'testing'
# id=$(curl -F '[email protected]' -F name=amazon-chime-sdk-app.apk -u "${{ secrets.SAUCE_USERNAME }}:${{ secrets.SAUCE_ACCESS_KEY }}" 'https://api.us-west-1.saucelabs.com/v1/storage/upload' |jq '.item.id')
# npm install
# npm run build
# npm run cma -- --app-url "sample.apk" --log-level error --tag "@common" --app-id "${id}" --retry --platform-version ${{ matrix.os_list }}
# - name: Send Notification
# uses: slackapi/[email protected]
# if: failure()
# with:
# payload: |
# {
# "Platform": "Android",
# "Link": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}",
# "Status": "${{ steps.tests.outcome }}"
# }
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
with:
role-to-assume: ${{ secrets.ROLE_TO_ASSUME }}
aws-region: us-east-1
- name: Send Metric to CloudWatch
run: |
node -e "
const { CloudWatchClient, PutMetricDataCommand } = require('@aws-sdk/client-cloudwatch');
const client = new CloudWatchClient({ region: 'us-east-1' });
const value = '${{ job.status }}' === 'failure' ? 0 : 1;
const command = new PutMetricDataCommand({
Namespace: "$METRIC_NAMESPACE",
MetricData: [{
MetricName: "$METRIC_NAME",
Dimensions: [
{ Name: 'Workflow', Value: 'DailyTest' },
{ Name: 'Platform', Value: 'Android' }
],
Value: value,
}]
});
client.send(command).then(() => console.log('Daily test result sent to CloudWatch')).catch(err => {
console.error('Failed to send metric. Error: ', err);
process.exit(1);
});
";