55 lines
1.5 KiB
YAML
55 lines
1.5 KiB
YAML
name: check-coredump
|
|
description: "Checks for created coredumps"
|
|
|
|
inputs:
|
|
artifact-name:
|
|
description: "Name of artifact to upload."
|
|
required: true
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
|
|
- name: "Check for existing coredumps"
|
|
shell: bash
|
|
if: always()
|
|
id: collectlogs
|
|
# we have actual no debug infos and coredumpctl gdb will fail, we just ignore for this for the moment
|
|
continue-on-error: true
|
|
run: |
|
|
# wait for in progress coredumps
|
|
sleep 10
|
|
if coredumpctl list; then
|
|
echo "coredumps=true" >>$GITHUB_OUTPUT
|
|
|
|
sudo coredumpctl gdb <<<"
|
|
set verbose on
|
|
set trace-commands on
|
|
show debug-file-directory
|
|
printf "'"'"query = '%s'\n\n"'"'", debug_query_string
|
|
frame function ExceptionalCondition
|
|
printf "'"'"condition = '%s'\n"'"'", conditionName
|
|
up 1
|
|
l
|
|
info args
|
|
info locals
|
|
bt full
|
|
" 2>&1 | tee stacktrace.log
|
|
fi
|
|
true
|
|
|
|
- name: "Upload Coredumps"
|
|
if: always() && steps.collectlogs.outputs.coredumps == 'true'
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: Coredump_${{ inputs.artifact-name }}
|
|
path: /var/lib/systemd/coredump
|
|
|
|
- name: "Cleanup Coredumps"
|
|
shell: bash
|
|
if: always() && steps.collectlogs.outputs.coredumps == 'true'
|
|
run: |
|
|
sudo journalctl --rotate
|
|
sudo journalctl --vacuum-time=5s
|
|
sudo rm -rf /var/lib/systemd/coredump/*
|