Skip to content

Package Size Analyzer GHA experiments #20075

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 42 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
c39ed1a
basic status reporting
luciasanchezbella01 Mar 12, 2025
a9c824d
integration into ddev
luciasanchezbella01 Mar 20, 2025
b4d0f5f
clean commented code
luciasanchezbella01 Mar 20, 2025
79b0fa8
add diff mode
luciasanchezbella01 Mar 25, 2025
fefd6a3
add diff mode
luciasanchezbella01 Mar 25, 2025
76c1f09
final diff version
luciasanchezbella01 Mar 27, 2025
5aa1f49
final diff version
luciasanchezbella01 Mar 27, 2025
c64d2f9
Added timeline mode and uncompressed sizes (#5025)
luciasanchezbella01 Apr 15, 2025
846886d
Test ddev size status in GHA (by hijacking the slapr workflow)
nubtron Apr 15, 2025
a3aafc5
Timeline mode
luciasanchezbella01 Apr 15, 2025
09c7a05
Merge remote-tracking branch 'origin/luciaSanchez/package_size_analyz…
nubtron Apr 15, 2025
5a4e5d3
Try to fix job summaries
nubtron Apr 15, 2025
a4a00dd
Try fixing the job summaries again
nubtron Apr 15, 2025
c821c04
optimized the code
luciasanchezbella01 Apr 16, 2025
ed1e372
CI size status integration on master
luciasanchezbella01 Apr 16, 2025
9cc7e5b
types added
luciasanchezbella01 Apr 21, 2025
0f7b09c
change --help
luciasanchezbella01 Apr 21, 2025
d1ac4c2
Testing diff mode
luciasanchezbella01 Apr 21, 2025
09e4419
Testing diff mode with differences
luciasanchezbella01 Apr 21, 2025
5673f8a
test disabled diff
luciasanchezbella01 Apr 21, 2025
7064fd9
fix
luciasanchezbella01 Apr 21, 2025
8cc7710
fix typing
luciasanchezbella01 Apr 21, 2025
f1711cc
fix typing
luciasanchezbella01 Apr 21, 2025
b33a1fd
fix types
luciasanchezbella01 Apr 21, 2025
f16938b
fix types
luciasanchezbella01 Apr 21, 2025
4d2c8e9
fix typing
luciasanchezbella01 Apr 21, 2025
3d6a228
fix typing
luciasanchezbella01 Apr 21, 2025
d97854b
fix typing
luciasanchezbella01 Apr 21, 2025
f713097
fix typing
luciasanchezbella01 Apr 21, 2025
0d750b3
fix tests for Windows
luciasanchezbella01 Apr 22, 2025
06a2b5f
Fix tests
luciasanchezbella01 Apr 22, 2025
63137be
fix windows tests
luciasanchezbella01 Apr 22, 2025
1791728
Fix tests
luciasanchezbella01 Apr 22, 2025
c232868
Fix tests
luciasanchezbella01 Apr 22, 2025
b02658d
fix windows tests
luciasanchezbella01 Apr 22, 2025
0fcf162
Final visualizations
luciasanchezbella01 Apr 23, 2025
dc6a9db
Changelog
luciasanchezbella01 Apr 23, 2025
7f0b42b
Merge branch 'luciaSanchez/package_size_analyzer' of github.com:DataD…
luciasanchezbella01 Apr 23, 2025
a425dab
testing in windows
luciasanchezbella01 Apr 23, 2025
2ded26b
test images
luciasanchezbella01 Apr 23, 2025
2f04a84
test images
luciasanchezbella01 Apr 23, 2025
e9d4d08
test images
luciasanchezbella01 Apr 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
125 changes: 125 additions & 0 deletions .github/workflows/measure-disk-usage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
name: Measure Disk Usage

on:
pull_request:
branches:
- master
env:
PYTHON_VERSION: "3.12"

jobs:
measure-disk-usage:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install ddev
run: |
pip install -e ./datadog_checks_dev[cli]
pip install -e ./ddev

- name: Configure ddev
run: |
ddev config set repos.core .
ddev config set repo core
- name: Measure disk usage (uncompressed)
run: |
mkdir -p status_visualizations
ddev size status --csv > size-uncompressed.csv
ddev size status --save_to_png_path status_visualizations/uncompressed.png > size-uncompressed.txt
cat size-uncompressed.txt
echo "# Size (uncompressed)" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
cat size-uncompressed.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY

- name: Measure disk usage (compressed)
run: |
mkdir -p status_visualizations
ddev size status --csv --compressed > size-compressed.csv
ddev size status --compressed --save_to_png_path status_visualizations/compressed.png > size-compressed.txt
cat size-compressed.txt
echo "# Size (compressed)" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
cat size-compressed.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY


- name: Measure disk usage differences from last commit (uncompressed)
#if: false # Disabled: size difference is not accurate due to dependency sizes not updated
run: |
mkdir -p diff_visualizations
BEFORE=$(git rev-parse HEAD^)
AFTER=$(git rev-parse HEAD)
ddev size diff $BEFORE $AFTER --csv > diff-uncompressed.csv
ddev size diff $BEFORE $AFTER --save_to_png_path diff_visualizations/diff-uncompressed-linux.png > diff-uncompressed.txt
cat diff-uncompressed.txt
echo "# Size diff (uncompressed)" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
cat diff-uncompressed.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY

- name: Measure disk usage differences from last commit (compressed)
#if: false # Disabled: size difference is not accurate due to dependency sizes not updated
run: |
mkdir -p diff_visualizations
BEFORE=$(git rev-parse HEAD^)
AFTER=$(git rev-parse HEAD)
ddev size diff $BEFORE $AFTER --compressed --csv > diff-compressed.csv
ddev size diff $BEFORE $AFTER --compressed --save_to_png_path diff_visualizations/diff-compressed-linux.png > diff-compressed.txt
cat diff-compressed.txt
echo "# Size diff (compressed)" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
cat diff-compressed.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY

- name: Upload file sizes (uncompressed)
uses: actions/upload-artifact@v4
with:
name: size-uncompressed.csv
path: size-uncompressed.csv
if-no-files-found: error

- name: Upload file sizes (compressed)
uses: actions/upload-artifact@v4
with:
name: size-compressed.csv
path: size-compressed.csv
if-no-files-found: error

- name: Upload file sizes diff (uncompressed)
#if: false # Disabled: size difference is not accurate due to dependency sizes not updated
uses: actions/upload-artifact@v4
with:
name: diff-uncompressed.csv
path: diff-uncompressed.csv
if-no-files-found: error

- name: Upload file sizes diff (compressed)
#if: false # Disabled: size difference is not accurate due to dependency sizes not updated
uses: actions/upload-artifact@v4
with:
name: diff-compressed.csv
path: diff-compressed.csv
if-no-files-found: error

- name: Upload status PNGs
uses: actions/upload-artifact@v4
with:
name: size-visuals
path: status_visualizations/
if-no-files-found: error

- name: Upload diff PNGs
#if: false
uses: actions/upload-artifact@v4
with:
name: diff-visuals
path: diff_visualizations/
if-no-files-found: error

143 changes: 119 additions & 24 deletions .github/workflows/slapr.yml
Original file line number Diff line number Diff line change
@@ -1,30 +1,125 @@
# https://github.com/DataDog/slapr
name: Measure Disk Usage

name: Slack emoji PR updates
on:
pull_request_review:
types: [submitted]
pull_request:
types: [closed]
branches:
- master
env:
PYTHON_VERSION: "3.12"

jobs:
run_slapr_agent_integrations:
runs-on: ubuntu-latest
strategy:
matrix:
slack_channel_variable:
- SLACK_CHANNEL_ID
- SLACK_CHANNEL_ID_AGENT_INTEGRATIONS_REVIEWS
- SLACK_CHANNEL_ID_INFRA_INTEGRATIONS
measure-disk-usage:
runs-on: ubuntu-22.04
steps:
- uses: DataDog/slapr@master
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
SLACK_CHANNEL_ID: "${{ secrets[matrix.slack_channel_variable] }}"
SLACK_API_TOKEN: "${{ secrets.SLACK_API_TOKEN }}"
SLAPR_BOT_USER_ID: "${{ secrets.SLAPR_BOT_USER_ID }}"
SLAPR_EMOJI_REVIEW_STARTED: "review_started"
SLAPR_EMOJI_APPROVED: "approved2"
SLAPR_EMOJI_CHANGES_REQUESTED: "changes_requested"
SLAPR_EMOJI_MERGED: "merged"
SLAPR_EMOJI_CLOSED: "closed"
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v5
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Install ddev
run: |
pip install -e ./datadog_checks_dev[cli]
pip install -e ./ddev

- name: Configure ddev
run: |
ddev config set repos.core .
ddev config set repo core
- name: Measure disk usage (uncompressed)
run: |
mkdir -p status_visualizations
ddev size status --csv > size-uncompressed.csv
ddev size status --save_to_png_path status_visualizations/uncompressed.png > size-uncompressed.txt
cat size-uncompressed.txt
echo "# Size (uncompressed)" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
cat size-uncompressed.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY

- name: Measure disk usage (compressed)
run: |
mkdir -p status_visualizations
ddev size status --csv --compressed > size-compressed.csv
ddev size status --compressed --save_to_png_path status_visualizations/compressed.png > size-compressed.txt
cat size-compressed.txt
echo "# Size (compressed)" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
cat size-compressed.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY


- name: Measure disk usage differences from last commit (uncompressed)
#if: false # Disabled: size difference is not accurate due to dependency sizes not updated
run: |
mkdir -p diff_visualizations
BEFORE=$(git rev-parse HEAD^)
AFTER=$(git rev-parse HEAD)
ddev size diff $BEFORE $AFTER --csv > diff-uncompressed.csv
ddev size diff $BEFORE $AFTER --save_to_png_path diff_visualizations/diff-uncompressed-linux.png > diff-uncompressed.txt
cat diff-uncompressed.txt
echo "# Size diff (uncompressed)" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
cat diff-uncompressed.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY

- name: Measure disk usage differences from last commit (compressed)
#if: false # Disabled: size difference is not accurate due to dependency sizes not updated
run: |
mkdir -p diff_visualizations
BEFORE=$(git rev-parse HEAD^)
AFTER=$(git rev-parse HEAD)
ddev size diff $BEFORE $AFTER --compressed --csv > diff-compressed.csv
ddev size diff $BEFORE $AFTER --compressed --save_to_png_path diff_visualizations/diff-compressed-linux.png > diff-compressed.txt
cat diff-compressed.txt
echo "# Size diff (compressed)" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
cat diff-compressed.txt >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY

- name: Upload file sizes (uncompressed)
uses: actions/upload-artifact@v4
with:
name: size-uncompressed.csv
path: size-uncompressed.csv
if-no-files-found: error

- name: Upload file sizes (compressed)
uses: actions/upload-artifact@v4
with:
name: size-compressed.csv
path: size-compressed.csv
if-no-files-found: error

- name: Upload file sizes diff (uncompressed)
#if: false # Disabled: size difference is not accurate due to dependency sizes not updated
uses: actions/upload-artifact@v4
with:
name: diff-uncompressed.csv
path: diff-uncompressed.csv
if-no-files-found: error

- name: Upload file sizes diff (compressed)
#if: false # Disabled: size difference is not accurate due to dependency sizes not updated
uses: actions/upload-artifact@v4
with:
name: diff-compressed.csv
path: diff-compressed.csv
if-no-files-found: error

- name: Upload status PNGs
uses: actions/upload-artifact@v4
with:
name: size-visuals
path: status_visualizations/
if-no-files-found: error

- name: Upload diff PNGs
#if: false
uses: actions/upload-artifact@v4
with:
name: diff-visuals
path: diff_visualizations/
if-no-files-found: error

Loading
Loading