Skip to content

Daily Reports

Daily Reports #162

name: Daily Reports
on:
schedule:
# Every day at UTC midnight
- cron: "0 0 * * 1,2,3,4,5"
workflow_dispatch:
env:
RUST_VERSION: 1.81.0
jobs:
hive-report-creation-levm:
uses: ./.github/workflows/common_hive_reports.yaml
with:
evm: levm
job_type: daily
hive-report-creation-revm:
uses: ./.github/workflows/common_hive_reports.yaml
with:
evm: revm
job_type: daily
hive-diff-report:
name: Post tests diff to levm slack
needs: [hive-report-creation-levm, hive-report-creation-revm]
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Download results (levm)
uses: actions/download-artifact@v4
with:
name: results_levm_daily.md
- name: Rename result (1)
run: cp results.md results_levm.md
- name: Download results (revm)
uses: actions/download-artifact@v4
with:
name: results_revm_daily.md
- name: Rename result (2)
run: cp results.md results_revm.md
- name: Create diff message
run: |
bash .github/scripts/hive_levm_revm_diff.sh results_revm.md results_levm.md >> diff.md
cat diff.md >> $GITHUB_STEP_SUMMARY
- name: Post results to Slack
env:
SLACK_WEBHOOKS: >
${{ github.event_name == 'workflow_dispatch'
&& secrets.TEST_CHANNEL_SLACK
|| format(
'{0} {1} {2}',
secrets.ETHREX_L1_SLACK_WEBHOOK,
secrets.ETHREX_L2_SLACK_WEBHOOK,
secrets.LEVM_SLACK_WEBHOOK
)
}}
run: |
for webhook in $SLACK_WEBHOOKS; do
sh .github/scripts/publish_levm_hive.sh "$webhook"
sh .github/scripts/publish_hive.sh "$webhook"
done
echo "Sending Results" >> $GITHUB_STEP_SUMMARY
- name: Post results diff to Slack
env:
SLACK_WEBHOOK: >
${{ github.event_name == 'workflow_dispatch'
&& secrets.TEST_CHANNEL_SLACK
|| secrets.LEVM_SLACK_WEBHOOK
}}
# Only send diff message if the diff has changed
run: |
if grep -q "No differences found" diff.md; then
echo "No differences to post" >> $GITHUB_STEP_SUMMARY
else
sh .github/scripts/publish_vms_diff.sh $SLACK_WEBHOOK
echo "Sending Results" >> $GITHUB_STEP_SUMMARY
fi
levm-test:
name: Generate Report for LEVM EF Tests
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Rustup toolchain install
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ env.RUST_VERSION }}
- name: Caching
uses: Swatinem/rust-cache@v2
- name: Download EF Tests
run: |
cd crates/vm/levm
make download-evm-ef-tests
- name: Run tests
run: |
cd crates/vm/levm
make generate-evm-ef-tests-report | tee test_result.txt
- name: Post results in summary
run: |
cd crates/vm/levm
echo "# Daily LEVM EF Tests Run Report" >> $GITHUB_STEP_SUMMARY
cat test_result.txt >> $GITHUB_STEP_SUMMARY
- name: Check EF-TESTS status is 100%
id: check_tests
continue-on-error: true
run: |
cd crates/vm/levm
if [ "$(awk '/**Summary**:/ {print $(NF)}' test_result.txt)" != "(100.00%)" ]; then
echo "Percentage is not 100%."
exit 1
fi
- name: Post results to Slack
if: ${{steps.check_tests.outcome == 'failure'}}
env:
SLACK_WEBHOOK: >
${{ github.event_name == 'workflow_dispatch'
&& secrets.TEST_CHANNEL_SLACK
|| secrets.LEVM_SLACK_WEBHOOK
}}
run: sh .github/scripts/publish_levm_ef_tests.sh "$SLACK_WEBHOOK"
flamegraphs-page:
name: Post to Slack link to Flamegraphs Page
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v4
- name: Post message to slack
env:
SLACK_WEBHOOKS: >
${{ github.event_name == 'workflow_dispatch'
&& secrets.TEST_CHANNEL_SLACK
|| format(
'{0} {1} {2}',
secrets.ETHREX_L1_SLACK_WEBHOOK,
secrets.ETHREX_L2_SLACK_WEBHOOK,
secrets.LEVM_SLACK_WEBHOOK
)
}}
run: |
for webhook in $SLACK_WEBHOOKS; do
sh .github/scripts/publish_link_flamegraphs.sh "$webhook"
done