Files
MapLibreParticleLab/.github/workflows/pr-bloaty-ios.yml
dependabot[bot] 183c186b98 Bump the github-actions group across 1 directory with 7 updates (#4042)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-14 15:40:33 +01:00

114 lines
3.8 KiB
YAML

name: pr-bloaty-ios
on:
workflow_run:
workflows: [ios-ci]
types:
- completed
env:
download_url: https://maplibre-native.s3.eu-central-1.amazonaws.com
permissions:
pull-requests: write
id-token: write # This is required for requesting the AWS JWT
jobs:
pre_job:
if: github.event.workflow_run.event == 'pull_request'
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.parent_workflow.outputs.was_skipped_or_cancelled }}
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4
with:
sparse-checkout: |
.github
.nvmrc
persist-credentials: false
- uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v4
with:
node-version-file: '.nvmrc'
- run: npm install
- name: Get parent workflow result
id: parent_workflow
run: node .github/scripts/check-job-skipped.ts
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TEST_RUN_ID: ${{ github.event.workflow_run.id }}
JOB_NAME: ios-build
pr-bloaty-ios:
needs: pre_job
if: needs.pre_job.outputs.should_skip == 'false'
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4
with:
persist-credentials: false
- name: Cache Bloaty
id: cache-bloaty
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: bloaty/build/bloaty
key: bloaty-${{ env.bloaty_sha }}
# because Google is not making a release...
# https://github.com/google/bloaty/issues/334
- name: Compile Bloaty
if: ${{ !steps.cache-bloaty.outputs.cache-hit }}
run: |
git clone https://github.com/google/bloaty.git
cd bloaty
git checkout "$bloaty_sha"
cmake -B build -G Ninja -S .
cmake --build build
- name: Download MapLibre_dynamic-main, MapLibre_DWARF-main
run: |
wget -O MapLibre_dynamic-main "${download_url}/size-test-ios/MapLibre_dynamic-main"
wget -O MapLibre_DWARF-main "${download_url}/size-test-ios/MapLibre_DWARF-main"
- uses: ./.github/actions/get-pr-number
id: get-pr-number
- uses: ./.github/actions/download-workflow-run-artifact
with:
artifact-name: ios-size-test-files
expect-files: "MapLibre_dynamic,MapLibre_DWARF"
- name: Run Bloaty
run: bloaty/build/bloaty --debug-file MapLibre_DWARF --debug-file MapLibre_DWARF-main MapLibre_dynamic -n 0 -s vm -d compileunits -- MapLibre_dynamic-main > bloaty_diff.txt
- name: Configure AWS Credentials
if: vars.OIDC_AWS_ROLE_TO_ASSUME
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v4
with:
aws-region: us-west-2
role-to-assume: ${{ vars.OIDC_AWS_ROLE_TO_ASSUME }}
role-session-name: ${{ github.run_id }}
- name: Prepare Bloaty message
run: |
report_path=bloaty-results-ios/pr-${{ steps.get-pr-number.outputs.pr-number }}-compared-to-main.txt
aws s3 cp bloaty_diff.txt s3://maplibre-native/"$report_path"
{
echo "# Bloaty Results (iOS) 🐋"
echo 'Compared to main'
echo '```'
awk 'NR <= 2; END { print }' bloaty_diff.txt
echo '```'
echo "Full report: $download_url/$report_path"
echo "---"
} >> message.md
- name: Leave a comment with Bloaty results
uses: marocchino/sticky-pull-request-comment@773744901bac0e8cbb5a0dc842800d45e9b2b405 # v2.9.4
with:
number: ${{ steps.get-pr-number.outputs.pr-number }}
header: bloaty-ios
path: message.md