mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-07 05:22:56 +00:00
## Problem `benchmarking` job fails because `aws-oicd-role-arn` input is not set ## Summary of changes: - Set `aws-oicd-role-arn` for `benchmarking job - Always require `aws-oicd-role-arn` to be set - Rename `aws_oicd_role_arn` to `aws-oicd-role-arn` for consistency
84 lines
3.0 KiB
YAML
84 lines
3.0 KiB
YAML
name: 'Store Allure results'
|
|
description: 'Upload test results to be used by actions/allure-report-generate'
|
|
|
|
inputs:
|
|
report-dir:
|
|
description: 'directory with test results generated by tests'
|
|
required: true
|
|
unique-key:
|
|
description: 'string to distinguish different results in the same run'
|
|
required: true
|
|
aws-oicd-role-arn:
|
|
description: 'OIDC role arn to interract with S3'
|
|
required: true
|
|
|
|
runs:
|
|
using: "composite"
|
|
|
|
steps:
|
|
- name: Set variables
|
|
shell: bash -euxo pipefail {0}
|
|
run: |
|
|
PR_NUMBER=$(jq --raw-output .pull_request.number "$GITHUB_EVENT_PATH" || true)
|
|
if [ "${PR_NUMBER}" != "null" ]; then
|
|
BRANCH_OR_PR=pr-${PR_NUMBER}
|
|
elif [ "${GITHUB_REF_NAME}" = "main" ] || [ "${GITHUB_REF_NAME}" = "release" ] || \
|
|
[ "${GITHUB_REF_NAME}" = "release-proxy" ] || [ "${GITHUB_REF_NAME}" = "release-compute" ]; then
|
|
# Shortcut for special branches
|
|
BRANCH_OR_PR=${GITHUB_REF_NAME}
|
|
else
|
|
BRANCH_OR_PR=branch-$(printf "${GITHUB_REF_NAME}" | tr -c "[:alnum:]._-" "-")
|
|
fi
|
|
|
|
echo "BRANCH_OR_PR=${BRANCH_OR_PR}" >> $GITHUB_ENV
|
|
echo "REPORT_DIR=${REPORT_DIR}" >> $GITHUB_ENV
|
|
env:
|
|
REPORT_DIR: ${{ inputs.report-dir }}
|
|
|
|
- uses: aws-actions/configure-aws-credentials@v4
|
|
if: ${{ !cancelled() }}
|
|
with:
|
|
aws-region: eu-central-1
|
|
role-to-assume: ${{ inputs.aws-oicd-role-arn }}
|
|
role-duration-seconds: 3600 # 1 hour should be more than enough to upload report
|
|
|
|
- name: Upload test results
|
|
shell: bash -euxo pipefail {0}
|
|
run: |
|
|
REPORT_PREFIX=reports/${BRANCH_OR_PR}
|
|
RAW_PREFIX=reports-raw/${BRANCH_OR_PR}/${GITHUB_RUN_ID}
|
|
|
|
# Add metadata
|
|
cat <<EOF > ${REPORT_DIR}/executor.json
|
|
{
|
|
"name": "GitHub Actions",
|
|
"type": "github",
|
|
"url": "https://${BUCKET}.s3.amazonaws.com/${REPORT_PREFIX}/latest/index.html",
|
|
"buildOrder": ${GITHUB_RUN_ID},
|
|
"buildName": "GitHub Actions Run #${GITHUB_RUN_NUMBER}/${GITHUB_RUN_ATTEMPT}",
|
|
"buildUrl": "${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}/attempts/${GITHUB_RUN_ATTEMPT}",
|
|
"reportUrl": "https://${BUCKET}.s3.amazonaws.com/${REPORT_PREFIX}/${GITHUB_RUN_ID}/index.html",
|
|
"reportName": "Allure Report"
|
|
}
|
|
EOF
|
|
|
|
cat <<EOF > ${REPORT_DIR}/environment.properties
|
|
COMMIT_SHA=${COMMIT_SHA}
|
|
EOF
|
|
|
|
ARCHIVE="${UNIQUE_KEY}-${GITHUB_RUN_ATTEMPT}-$(date +%s).tar.zst"
|
|
ZSTD_NBTHREADS=0
|
|
|
|
time tar -C ${REPORT_DIR} -cf ${ARCHIVE} --zstd .
|
|
time aws s3 mv --only-show-errors ${ARCHIVE} "s3://${BUCKET}/${RAW_PREFIX}/${ARCHIVE}"
|
|
env:
|
|
UNIQUE_KEY: ${{ inputs.unique-key }}
|
|
COMMIT_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
|
|
BUCKET: neon-github-public-dev
|
|
|
|
- name: Cleanup
|
|
if: always()
|
|
shell: bash -euxo pipefail {0}
|
|
run: |
|
|
rm -rf ${REPORT_DIR}
|