forked from redrsoe2100/os-autotest
ci: qemu-test
This commit is contained in:
91
.github/workflows/qemy-test.yml
vendored
Normal file
91
.github/workflows/qemy-test.yml
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
name: Run test
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
TESTSUITE: ${{ vars.TESTSUITE }}
|
||||
QEMU_IMG: ${{ secrets.QEMU_IMG }}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ${{ vars.QEMU_LABEL1 }}
|
||||
timeout-minutes: 4320
|
||||
steps:
|
||||
- name: install tools
|
||||
run: dnf install -y wget && pip3 install requests --break-system-packages
|
||||
- name: get the latest qemu image
|
||||
run: |
|
||||
BASE_URL="${QEMU_IMG%/*}"
|
||||
|
||||
LATEST_FILE=$(wget -qO- "$BASE_URL" \
|
||||
| grep -oP 'openRuyi\.riscv64-\K[^"]+\.qcow2' \
|
||||
| grep -v 'installiso\.qcow2$' \
|
||||
| sort -Vr \
|
||||
| head -n1)
|
||||
|
||||
VERSION="${LATEST_FILE%.qcow2}"
|
||||
VERSION="${VERSION%.or}"
|
||||
|
||||
echo "The latest file: $LATEST_FILE"
|
||||
echo "The latest version: $VERSION"
|
||||
FILE_NAME=$(basename $QEMU_IMG)
|
||||
echo "Download $FILE_NAME ..."
|
||||
wget -q --show-progress -O "/test/images/openruyi/openruyi-virt_riscv64.qcow2" "${QEMU_IMG}"
|
||||
pushd /test/images/openruyi
|
||||
xz -9 -T 0 -k openruyi-virt_riscv64.qcow2
|
||||
popd
|
||||
- name: run tests
|
||||
timeout-minutes: 4320
|
||||
run: |
|
||||
set -x
|
||||
timeout 10 curl -s "$IMAGE_URL" || echo "no $IMAGE_URL"
|
||||
SUB_DIR=qemu/${{ github.run_number}}-${DATA_STR}
|
||||
echo "SUB_DIR=$SUB_DIR" >> $GITHUB_ENV
|
||||
RESULT_DIR="/test/${SUB_DIR}"
|
||||
export RESULT_DIR="${RESULT_DIR}"
|
||||
mkdir -p "$RESULT_DIR"
|
||||
chmod +w "$RESULT_DIR"
|
||||
ls -la "$RESULT_DIR" || echo "no $RESULT_DIR"
|
||||
docker run --rm \
|
||||
-e OS_VERSION="${{ vars.OS_VERSION }}" \
|
||||
-e OS_ARCH="${{ vars.OS_ARCH }}" \
|
||||
-e CLOUDPODS_KEYSTONE_URL="${{ secrets.CLOUDPODS_KEYSTONE_URL }}" \
|
||||
-e CLOUDPODS_USER="${{ secrets.CLOUDPODS_USER }}" \
|
||||
-e CLOUDPODS_PASSWORD="${{ secrets.CLOUDPODS_PASSWORD }}" \
|
||||
-e GUEST_IMAGE_ID="${{ secrets.GUEST_IMAGE_ID }}" \
|
||||
-e DISK_IMAGE_ID="${{ secrets.DISK_IMAGE_ID }}" \
|
||||
-e CLOUDPODS_KVM_NET_LIST="${{ secrets.CLOUDPODS_KVM_NET_LIST }}" \
|
||||
-e SERVER_SKU="${{ secrets.SERVER_SKU }}" \
|
||||
-e SERVER_NAME_PREFIX="${{ github.event.repository.name }}-${{ github.run_number}}" \
|
||||
-e PASSWORD="${{ secrets.PASSWORD }}" \
|
||||
-e USER="${{ secrets.USER }}" \
|
||||
-e DELETE_DEFAULT_YUM_REPOS="yes" \
|
||||
-e ADD_YUM_REPOS="${{ secrets.ADD_YUM_REPOS }}" \
|
||||
-e OS_AUTOTEST_REPO_HTTPS="${{ vars.OS_AUTOTEST_REPO_HTTPS }}" \
|
||||
-e OS_AUTOTEST_BRANCH="${{ vars.OS_AUTOTEST_BRANCH }}" \
|
||||
-e CONCURRENCY="${{ vars.CONCURRENCY }}" \
|
||||
-e ONLY_TEST_EXIST_RPM="${{ vars.ONLY_TEST_EXIST_RPM }}" \
|
||||
-e EXIST_RPM_URLS="${{ secrets.EXIST_RPM_URLS }}" \
|
||||
-e TESTSUITE_MAX_TIMEOUT="${{ vars.TESTSUITE_MAX_TIMEOUT }}" \
|
||||
-e RISCV_BIOS="${{ vars.RISCV_BIOS }}" \
|
||||
${TESTSUITE:+-e TESTSUITE="$TESTSUITE"} \
|
||||
-e RISCV_DEFAULT_PASSWORD="${{ secrets.RISCV_DEFAULT_PASSWORD }}" \
|
||||
-e RISCV_DEFAULT_USERNAME="${{ secrets.RISCV_DEFAULT_USERNAME }}" \
|
||||
-e RISCV_IMAGE_URL="$IMAGE_URL/openruyi-virt_riscv64.qcow2.xz" \
|
||||
-e RISCV_VIRT_CODE_URL="$IMAGE_URL/RISCV_VIRT_CODE.fd" \
|
||||
-e RISCV_VIRT_VARS_URL="$IMAGE_URL/RISCV_VIRT_VARS.fd" \
|
||||
-v "$RESULT_DIR:/opt/os-autotest" \
|
||||
"${{ vars.OS_AUTOTEST_IMAGE }}" \
|
||||
bash -c 'python3 -m os-autotest-runner.run_autotest'
|
||||
ls -la "$RESULT_DIR" || echo "no $RESULT_DIR"
|
||||
ls -la /test || echo "no /test"
|
||||
ls -la $RESULT_DIR || echo "no $RESULT_DIR"
|
||||
- name: run test in github workflow
|
||||
run: |
|
||||
TITLE="qemu: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 }}/$SUB_DIR" --title "$TITLE"
|
||||
10
.github/workflows/smoke-test.yml
vendored
10
.github/workflows/smoke-test.yml
vendored
@@ -5,11 +5,11 @@ on:
|
||||
env:
|
||||
TESTSUITE: ${{ vars.TESTSUITE }}
|
||||
PKGTEST: ${{ vars.PKGTEST }}
|
||||
LOGDIR: ${{ vars.LOGDIR }}
|
||||
LOGDIR: ${{ secrets.LOGDIR }}
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: openruyi-175
|
||||
runs-on: ${{ vars.SG2044_LABEL }}
|
||||
timeout-minutes: 4320
|
||||
steps:
|
||||
- name: install tools
|
||||
@@ -35,11 +35,11 @@ jobs:
|
||||
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.IMAGE_BACKUP_DIR }}"
|
||||
TITLE="os-autotest"
|
||||
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 }}/${SUB_DIR}" --title "$TITLE"
|
||||
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"
|
||||
|
||||
Reference in New Issue
Block a user