feat(ci): add integration tests for AutoTLS in Beekeeper workflow#5350
feat(ci): add integration tests for AutoTLS in Beekeeper workflow#5350akrem-chabchoub wants to merge 33 commits intomasterfrom
Conversation
| - name: Collect debug artifacts | ||
| if: failure() | ||
| - name: Collect debug artifacts (local-dns) | ||
| if: failure() && (steps.pingpong.outcome == 'failure' || steps.fullconnectivity.outcome == 'failure' || steps.settlements.outcome == 'failure' || steps.pss.outcome == 'failure' || steps.soc.outcome == 'failure' || steps.gsoc.outcome == 'failure' || steps.pushsync-chunks-1.outcome == 'failure' || steps.pushsync-chunks-2.outcome == 'failure' || steps.retrieval.outcome == 'failure' || steps.manifest.outcome == 'failure' || steps.manifest-v1.outcome == 'failure' || steps.postage-stamps.outcome == 'failure' || steps.stake.outcome == 'failure' || steps.withdraw.outcome == 'failure' || steps.redundancy.outcome == 'failure' || steps.act.outcome == 'failure' || steps.feeds.outcome == 'failure' || steps.feeds-v1.outcome == 'failure') |
There was a problem hiding this comment.
this line are super long, can we just use if: failure()?
| curl -sSf -X POST -H "Content-Type: application/json" -d "{\"text\": \"**${RUN_TYPE}** Beekeeper Autotls Error\nBranch: \`${{ github.head_ref }}\`\nUser: @${{ github.event.pull_request.user.login }}\nDebugging artifacts: [click](https://$BUCKET_NAME.$AWS_ENDPOINT/artifacts_$VERTAG.tar.gz)\nStep failed: \`${FAILED}\`\"}" https://beehive.ethswarm.org/hooks/${{ secrets.TUNSHELL_KEY }} | ||
| echo "Failed test: ${FAILED}" | ||
| - uses: actions/upload-artifact@v4 | ||
| if: failure() && (steps.pingpong-autotls.outcome == 'failure' || steps.fullconnectivity-autotls.outcome == 'failure' || steps.retrieval-autotls.outcome == 'failure' || steps.autotls.outcome == 'failure') |
There was a problem hiding this comment.
Agreed, simplifying to if: failure() is much more readable.
One small tradeoff worth noting: if a local-dns test fails, failure() will also trigger the local-dns-autotls artifact collection and notification, even though autotls tests were just skipped (not failed).
So we could get a misleading alert when the actual issue was in local-dns.
…/autotls-integration-test
Removed multiple test steps from the Beekeeper workflow to streamline checks.
Increased the Pebble certificate validity period from 300 to 600.
dd94479 to
e31b93b
Compare
gacevicljubisa
left a comment
There was a problem hiding this comment.
Our current AutoTLS check is around 10 min because of the cert auto renewal logic.
We can consider redecing the check time...
| export FAILED='no-test' | ||
| if ${{ steps.pingpong.outcome=='failure' }}; then FAILED=pingpong; fi | ||
| if ${{ steps.fullconnectivity.outcome=='failure' }}; then FAILED=fullconnectivity; fi | ||
| if ${{ steps.settlements.outcome=='failure' }}; then FAILED=settlements; fi |
There was a problem hiding this comment.
Why did you deleted this ones, they are still defined further up, right? If any of them fails, the Slack notification will say something like: Step failed: \no-test`` instead of naming the actual failing test, right?
Checklist
Description
local-dns-autotlscluster.Why this is needed
AutoTLS and WSS support are currently being validated on dedicated Beelocal and Beekeeper feature branches.
The existing CI only covered the standard
local-dnscluster and does not exercise the AutoTLS setup.This change allows the CI pipeline to:
Files changed
.github/workflows/beekeeper.ymlOpen API Spec Version Changes (if applicable)
Motivation and Context (Optional)
Related Issue (Optional)
Screenshots (if appropriate):