Hourly Build Status Dashboard Updater #626
This file contains hidden or 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: Hourly Build Status Dashboard Updater | |
| on: | |
| schedule: | |
| - cron: '0 * * * *' # Runs hourly | |
| workflow_dispatch: # Allows manual triggering | |
| permissions: | |
| contents: write | |
| jobs: | |
| update-dashboard-data: | |
| runs-on: ubuntu-latest | |
| if: github.repository == 'qualcomm/eld' | |
| steps: | |
| - name: Checkout ELD | |
| uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 | |
| with: | |
| path: llvm-project/llvm/tools/eld | |
| - name: Update Build Dashboard | |
| shell: bash | |
| run: | | |
| cd llvm-project/llvm/tools/eld | |
| DASH_DIR="$(mktemp -d)" | |
| cp .github/workflows/scripts/record_builds.py ${DASH_DIR}/ | |
| git config user.name 'github-actions' | |
| git config user.email '[email protected]' | |
| git fetch --all | |
| git checkout dashboard | |
| cp -r dash ${DASH_DIR}/ | |
| cp build-status.db ${DASH_DIR}/dash/ | |
| cp ${DASH_DIR}/record_builds.py ${DASH_DIR}/dash/ | |
| git checkout documentation | |
| cp -r ${DASH_DIR}/dash . | |
| cd dash | |
| python3 record_builds.py --workflow picolibc --emit | |
| python3 record_builds.py --workflow musl --emit | |
| python3 record_builds.py --workflow sanitizer --emit | |
| python3 record_builds.py --workflow nightly --emit | |
| python3 record_builds.py --workflow reverse_iterator --emit | |
| python3 record_builds.py --workflow release --emit | |
| python3 record_builds.py --workflow windows_nightly --emit | |
| python3 record_builds.py --workflow busybox --emit | |
| rm -f record_builds.py build-status.db | |
| rm -rf ${DASH_DIR} | |
| cd .. | |
| git add . | |
| git commit -m "Update build status data for dashboard" | |
| git push -f origin HEAD:refs/heads/documentation | |
| continue-on-error: true | |
| - name: Get Dependencies for Build Dashboard Screenshot | |
| shell: bash | |
| run: | | |
| sudo apt install imagemagick | |
| cd /tmp | |
| wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb | |
| sudo apt install ./google-chrome-stable_current_amd64.deb | |
| continue-on-error: true | |
| - name: Generate Build Dashboard Screenshot | |
| shell: bash | |
| run: | | |
| sleep 20 | |
| DASH_DIR="$(mktemp -d)" | |
| google-chrome --headless --password-store=basic --disable-features=DbusSecretPortal --screenshot=${DASH_DIR}/dashboard.png --window-size=1240,1240 --virtual-time-budget=2000 https://qualcomm.github.io/eld/dash/dash.html && mogrify -gravity North -chop 0x150 -gravity South -chop 0x85 ${DASH_DIR}/dashboard.png | |
| ls -l ${DASH_DIR}/ | |
| cd llvm-project/llvm/tools/eld | |
| git fetch --all | |
| git checkout documentation | |
| cd dash | |
| cp -f ${DASH_DIR}/dashboard.png . | |
| rm -rf ${DASH_DIR} | |
| cd .. | |
| git add . | |
| git commit -m "Update Build Dashboard Screenshot" | |
| git push -f origin HEAD:refs/heads/documentation | |
| continue-on-error: true |