Skip to content

Statoscope report publish #2778

Statoscope report publish

Statoscope report publish #2778

name: Statoscope report publish
on:
workflow_run:
workflows: ['Statoscope diff analyze']
types:
- completed
jobs:
statoscope_publish_report:
name: Publish Statoscope Report
runs-on: ubuntu-latest
if: >
github.event.workflow_run.event == 'pull_request' &&
(github.event.workflow_run.conclusion == 'success' || github.event.workflow_run.conclusion == 'failure')
permissions:
pull-requests: write
steps:
- name: Download Artifacts
uses: dawidd6/action-download-artifact@v3
with:
workflow: ${{ github.event.workflow_run.workflow_id }}
run_id: ${{ github.event.workflow_run.id }}
- name: Extract data
id: extract-data
run: |
echo "REPORT_PR_NUMBER=$(cat statoscope-report/report-pr)" >> "$GITHUB_OUTPUT"
cp statoscope-report/result.json ./result.json
- name: Upload UI report to S3
id: upload-to-s3
run: |
aws --endpoint-url=${AWS_ENDPOINT} \
s3 cp statoscope-report/index.html s3://${AWS_BUCKET}/${{ github.ref }}/; \
echo "DOWNLOAD_LINK=$(aws --endpoint-url=${AWS_ENDPOINT} s3 presign s3://${AWS_BUCKET}/${{ github.ref }}/index.html)" >> $GITHUB_OUTPUT
env:
AWS_BUCKET: datalens-public-actions-reports
AWS_ENDPOINT: https://storage.yandexcloud.net
AWS_ACCESS_KEY_ID: ${{ secrets.S3_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ru-central1
- name: Create comment text
uses: actions/github-script@v7
id: create-comment-text
with:
script: |
const fs = require('fs');
const downloadLink = "${{ steps.upload-to-s3.outputs.DOWNLOAD_LINK }}";
const data = JSON.parse(fs.readFileSync('result.json', 'utf8'));
data.downloadLink = downloadLink;
return `**📦 Statoscope quick diff with main-branch:**
**⏱ Build time:** ${data.buildTime.diff.formatted}
**⚖️ Initial size:** ${data.initialSize.diff.formatted}
**🕵️ Validation errors:** ${data.validation.total}
Full Statoscope report could be found [here ↗️](${data.downloadLink})`;
result-encoding: string
- name: Create Comment
uses: marocchino/sticky-pull-request-comment@v2
with:
header: statoscope-report
number: ${{ steps.extract-data.outputs.REPORT_PR_NUMBER }}
message: "${{steps.create-comment-text.outputs.result}}"