Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/checker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,4 +54,5 @@ jobs:
- name: Run kernel check
run: |
bash ../kernel-checkers/${{ inputs.check_name }}.sh --kernel-src ${{ inputs.kernel_src }} \
--base ${{ inputs.base_sha }} --head ${{ inputs.head_sha }}
--base ${{ inputs.base_sha }} --head ${{ inputs.head_sha }} --base_branch ${{ inputs.base_branch }} \
--pr ${{ inputs.pr_number }} --topic_repo ${{ inputs.topic_repo }}
88 changes: 88 additions & 0 deletions aws_s3_upload.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries.
# SPDX-License-Identifier: BSD-3-Clause-Clear

#!/bin/bash

aws_s3_data_dump() {
local log_file="$1"
local uapi_ret="$2"
local topic_repo="$3"
local base_sha="$4"
local head_sha="$5"
local pr="$6"

BUCKET="s3://qli-prd-armor-gh-artifacts"

YYYY="$(date -u +'%Y')"
MM="$(date -u +'%m')"
DD="$(date -u +'%d')"
HH="$(date -u +'%H')"
HOST="$(printf '%s' "${GITHUB_SERVER_URL}" | sed -E 's#^[a-zA-Z]+://##; s#/.*$##')"

PREFIX="${YYYY}/${MM}/${DD}/${HH}/${HOST}/${topic_repo}/${GITHUB_REF_NAME}/${GITHUB_RUN_ID}/files"

# temp dir
FOLDER="$(mktemp -d 2>/dev/null || mktemp -d -t tmpdir.XXXXXX)"

METADATA_JSON="${FOLDER}/uapi_metadata.json"
: > "$METADATA_JSON"

# Copy log file if exists
if [[ -e "$log_file" ]]; then
cp "$log_file" "$FOLDER"
fi

ts="$(date -u +'%Y-%m-%dT%H:%M:%SZ')"

# Determine PR (JSON null or number)
if [[ -n "${pr:-}" ]]; then
pr_json="$pr"
else
pr_json="null"
fi

compat=$([[ ${uapi_ret:-0} -eq 1 ]] && echo "Incompatible" || echo "Compatible")

jq -n \
--arg topic_repo "$topic_repo" \
--arg branch "$GITHUB_REF_NAME" \
--arg event "$GITHUB_EVENT_NAME" \
--arg base_sha "$base_sha" \
--arg head_sha "$head_sha" \
--arg timestamp "$ts" \
--arg compat "$compat" \
--argjson pr "$pr_json" \
'
{
topic_repo: $topic_repo,
branch: $branch,
event: $event,
base_sha: $base_sha,
head_sha: $head_sha,
pr_number: $pr,
timestamp: $timestamp,
compatibility: $compat
}
' > "$METADATA_JSON"

ERR_FILE="$(mktemp)"

set +e
aws s3 cp "${FOLDER}/" "${BUCKET}/${PREFIX}" \
--recursive \
--content-type "application/octet-stream" \
--only-show-errors \
2> "$ERR_FILE"
rc=$?
set -e

if [[ $rc -eq 0 ]]; then
echo "S3 upload succeeded."
else
reason="$(cat "$ERR_FILE")"
echo "::error :: S3 upload FAILED (rc=$rc)"
echo "::error :: Reason: ${reason:-No error output captured}"
fi

rm -f "$ERR_FILE"
}
2 changes: 2 additions & 0 deletions check-uapi-headers.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ set -euo pipefail

# Load shared utilities
source "$(dirname "$0")/script-utils.sh"
source "$(dirname "$0")/aws_s3_upload.sh"

# Parse and validate input arguments
parse_args "$@"
Expand Down Expand Up @@ -103,6 +104,7 @@ run_in_kmake_image "${kernel_src}/scripts/check-uapi.sh" -b "$head_sha" -p "$bas
if [ "$uapi_ret" -ne 0 ]; then
cat "$log_file"
exit_status=1
aws_s3_data_dump "$log_file" "$uapi_ret" "$topic_repo" "$base_sha" "$head_sha" "$pr" || true
fi

while read -r modified_file; do
Expand Down
3 changes: 3 additions & 0 deletions script-utils.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ parse_args() {
--kernel-src) kernel_src=$(realpath "$2"); shift ;;
--base) base_sha="$2"; shift ;;
--head) head_sha="$2"; shift ;;
--base_branch) base_branch="$2"; shift ;;
--pr) pr="$2"; shift ;;
--topic_repo) topic_repo="$2"; shift ;;
*) echo "Unknown parameter passed: $1"; exit 1 ;;
esac
shift
Expand Down