mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-09-13 00:42:14 +00:00
* ci: batch fuzz targets in GitHub Actions Signed-off-by: WenyXu <wenymedia@gmail.com> * ci: improve fuzz test observability Signed-off-by: WenyXu <wenymedia@gmail.com> * fix(ci): preserve fuzz setup failure artifacts Signed-off-by: WenyXu <wenymedia@gmail.com> * test(ci): keep fuzz mock output in logs Signed-off-by: WenyXu <wenymedia@gmail.com> * ci: optimize fuzz worker cache Signed-off-by: WenyXu <wenymedia@gmail.com> * ci: warm fuzz target binaries Signed-off-by: WenyXu <wenymedia@gmail.com> * ci: isolate fuzz workflow Signed-off-by: WenyXu <wenymedia@gmail.com> * ci: centralize fuzz target preparation Signed-off-by: WenyXu <wenymedia@gmail.com> * ci: split general workflows Signed-off-by: WenyXu <wenymedia@gmail.com> * ci: streamline docs required checks Signed-off-by: WenyXu <wenymedia@gmail.com> * fix: transfer fuzz targets as artifacts Signed-off-by: WenyXu <wenymedia@gmail.com> * fix: preserve fuzz binary permissions Signed-off-by: WenyXu <wenymedia@gmail.com> * ci: streamline fuzz workers Signed-off-by: WenyXu <wenymedia@gmail.com> * ci: cache PR build dependencies Signed-off-by: WenyXu <wenymedia@gmail.com> * ci: retain main build cache policy Signed-off-by: WenyXu <wenymedia@gmail.com> * ci: address fuzz review feedback Signed-off-by: WenyXu <wenymedia@gmail.com> --------- Signed-off-by: WenyXu <wenymedia@gmail.com>
51 lines
2.0 KiB
YAML
51 lines
2.0 KiB
YAML
name: Upload Fuzz Artifacts
|
|
description: 'Upload target-scoped fuzz diagnostics and link them from the job summary'
|
|
inputs:
|
|
artifact-name:
|
|
description: "Name of the fuzz diagnostic artifact"
|
|
required: true
|
|
artifact-root:
|
|
default: '/tmp/greptime-fuzz-artifacts'
|
|
description: "Directory containing the group manifest and target diagnostics"
|
|
retention-days:
|
|
default: '3'
|
|
description: "Number of days to retain the artifact"
|
|
outputs:
|
|
artifact-id:
|
|
description: "GitHub ID of the uploaded artifact"
|
|
value: ${{ steps.upload.outputs.artifact-id }}
|
|
artifact-url:
|
|
description: "URL of the uploaded artifact"
|
|
value: ${{ steps.upload.outputs.artifact-url }}
|
|
artifact-digest:
|
|
description: "SHA-256 digest of the uploaded artifact"
|
|
value: ${{ steps.upload.outputs.artifact-digest }}
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Upload fuzz diagnostics
|
|
id: upload
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ${{ inputs.artifact-name }}
|
|
path: ${{ inputs.artifact-root }}
|
|
if-no-files-found: warn
|
|
retention-days: ${{ inputs.retention-days }}
|
|
- name: Add fuzz diagnostics to job summary
|
|
shell: bash
|
|
env:
|
|
FUZZ_ARTIFACT_NAME: ${{ inputs.artifact-name }}
|
|
FUZZ_ARTIFACT_ID: ${{ steps.upload.outputs.artifact-id }}
|
|
FUZZ_ARTIFACT_URL: ${{ steps.upload.outputs.artifact-url }}
|
|
FUZZ_ARTIFACT_DIGEST: ${{ steps.upload.outputs.artifact-digest }}
|
|
FUZZ_ARTIFACT_RETENTION_DAYS: ${{ inputs.retention-days }}
|
|
run: |
|
|
{
|
|
printf '### Fuzz diagnostics\n\n'
|
|
printf -- '- Artifact: [%s](%s)\n' "${FUZZ_ARTIFACT_NAME}" "${FUZZ_ARTIFACT_URL}"
|
|
printf -- '- Artifact ID: `%s`\n' "${FUZZ_ARTIFACT_ID}"
|
|
printf -- '- SHA-256: `%s`\n' "${FUZZ_ARTIFACT_DIGEST}"
|
|
printf -- '- Retention: %s days\n' "${FUZZ_ARTIFACT_RETENTION_DAYS}"
|
|
} >>"${GITHUB_STEP_SUMMARY}"
|
|
echo "::notice title=Fuzz diagnostics uploaded::artifact=${FUZZ_ARTIFACT_NAME}, digest=${FUZZ_ARTIFACT_DIGEST}"
|