Files
os-autotest/.github/workflows/smoke-test.yml
2026-04-17 17:28:47 +08:00

46 lines
2.2 KiB
YAML

name: Run smoke test on SG2044
on:
workflow_dispatch:
env:
TESTSUITE: ${{ vars.TESTSUITE }}
PKGTEST: ${{ vars.PKGTEST }}
LOGDIR: ${{ secrets.LOGDIR }}
jobs:
build:
runs-on: ${{ vars.SG2044_LABEL }}
timeout-minutes: 4320
steps:
- name: install tools
run: sudo dnf install -y git nodejs rsync sshpass --refresh && pip3 install requests python3-log --break-system-packages
- uses: https://gitee.com/ci-actions/checkout.git@v3
- name: run tests
run: |
set -x
DATA_STR="$(date +%Y%m%d%H%M%S)"
SUB_DIR=${{ github.run_number}}-${DATA_STR}
RESULT_DIR="${LOGDIR}/${SUB_DIR}"
export RESULT_DIR="${RESULT_DIR}"
mkdir -p .os-autotest ${RESULT_DIR}
echo "$TESTSUITE" | tr ',' '\n' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//' | sed '/^\s*$/d' > .os-autotest/testsuite
echo "$PKGTEST" | tr ',' '\n' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//' | sed '/^\s*$/d' > .os-autotest/pkg-install
bash .github/workflows/scripts/runtest.sh
if [ -n "$(find "${RESULT_DIR}/source/suite2cases" -maxdepth 0 -empty)" ]; then
LOG_WARN "<<< no suite2cases found"
exit 0
fi
bash .github/workflows/scripts/log-report.sh "${RESULT_DIR}/logs"
python .github/workflows/scripts/summary.py --testsuits ".os-autotest/testsuite" --result "${RESULT_DIR}" --source "${RESULT_DIR}/source"
sshpass -p "${{ secrets.IMAGE_BACKUP_HOST_PWD }}" rsync -av -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" "${RESULT_DIR}" "${{ secrets.IMAGE_BACKUP_HOST_USER }}@${{ secrets.IMAGE_BACKUP_HOST }}:${{ secrets.LOGDIR }}/sg2044/"
TITLE="sg2044:os-autotest"
if [ -n "$TESTSUITE" ]; then
testsuites=$(awk -F, -v OFS=, 'NF>4{print $1,$2,$3,$4 "..."; next} 1' <<< "$TESTSUITE")
TITLE="$TITLE:$testsuites"
fi
TITLE="$TITLE $RELEASE_VERSION ${DATA_STR:0:4}-${DATA_STR:4:2}-${DATA_STR:6:2} ${DATA_STR:8:2}-${DATA_STR:10:2}"
python .github/workflows/scripts/stats.py --gitea-url "${{ github.api_url }}" --repo "${{ github.repository }}" --token "${{ secrets.RELEASE_TOKEN }}" --result "${RESULT_DIR}" --log-url "${{ secrets.LOG_URL }}/sg2044/${SUB_DIR}" --title "$TITLE"