name: Run test on: workflow_dispatch: env: TESTSUITE: ${{ vars.TESTSUITE }} QEMU_IMG: ${{ secrets.QEMU_IMG }} jobs: build: runs-on: ubuntu-latest timeout-minutes: 4320 steps: - name: install tools run: apt install -y wget && pip3 install requests --break-system-packages - name: get the latest qemu image run: | BASE_URL="${QEMU_IMG%/*}" VERSION=$(wget -qO- "$BASE_URL" \ | grep -oP '[^"]+\.qcow2' \ | grep -v 'sha256' \ | sed -E 's/^[^-]+-//; s/\.qcow2$//' \ | grep -E '^[0-9]' \ | sort -u \ | head -n1) echo "The latest version: $VERSION" pushd /test/images/openruyi FILE_NAME=$(basename $QEMU_IMG) echo "Download $FILE_NAME ..." rm -f openruyi-virt_riscv64.qcow2* wget -q --show-progress -O "/test/images/openruyi/openruyi-virt_riscv64.qcow2" "${QEMU_IMG}" 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"