13af6ab5fSopenharmony_ci#!/usr/bin/env python3
23af6ab5fSopenharmony_ci# -*- coding: utf-8 -*-
33af6ab5fSopenharmony_ci#
43af6ab5fSopenharmony_ci# Copyright (c) 2023 Huawei Device Co., Ltd.
53af6ab5fSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
63af6ab5fSopenharmony_ci# you may not use this file except in compliance with the License.
73af6ab5fSopenharmony_ci# You may obtain a copy of the License at
83af6ab5fSopenharmony_ci#
93af6ab5fSopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0
103af6ab5fSopenharmony_ci#
113af6ab5fSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
123af6ab5fSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
133af6ab5fSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
143af6ab5fSopenharmony_ci# See the License for the specific language governing permissions and
153af6ab5fSopenharmony_ci# limitations under the License.
163af6ab5fSopenharmony_ci
173af6ab5fSopenharmony_ciimport argparse
183af6ab5fSopenharmony_ciimport os
193af6ab5fSopenharmony_ciimport subprocess
203af6ab5fSopenharmony_ciimport time
213af6ab5fSopenharmony_ci
223af6ab5fSopenharmony_ciimport schedule
233af6ab5fSopenharmony_ci
243af6ab5fSopenharmony_cifrom utils.download_sdk_and_image.download import get_the_image
253af6ab5fSopenharmony_ci
263af6ab5fSopenharmony_ci
273af6ab5fSopenharmony_cidef prepare_test():
283af6ab5fSopenharmony_ci    arguments = parse_args()
293af6ab5fSopenharmony_ci    prepared = True
303af6ab5fSopenharmony_ci    if not arguments.skip_download_sdk:
313af6ab5fSopenharmony_ci        sdk_prepared = get_the_image('sdk', '', None, None)
323af6ab5fSopenharmony_ci        prepared = prepared and sdk_prepared
333af6ab5fSopenharmony_ci    if not arguments.skip_download_dayu:
343af6ab5fSopenharmony_ci        dayu_prepared = get_the_image('dayu', '', None, None)
353af6ab5fSopenharmony_ci        job(['python', './utils/flash_image/burn_image.py'])
363af6ab5fSopenharmony_ci        prepared = prepared and dayu_prepared
373af6ab5fSopenharmony_ci    job(['python', './utils/commit_message/get_commit_message.py'])
383af6ab5fSopenharmony_ci    return prepared
393af6ab5fSopenharmony_ci
403af6ab5fSopenharmony_ci
413af6ab5fSopenharmony_cidef parse_args():
423af6ab5fSopenharmony_ci    parser = argparse.ArgumentParser()
433af6ab5fSopenharmony_ci    parser.add_argument('--skipDownloadSdk', dest='skip_download_sdk', action='store_true', default=False,
443af6ab5fSopenharmony_ci                        help='specify whether to skip the download sdk or not')
453af6ab5fSopenharmony_ci    parser.add_argument('--skipDownloadDayu', dest='skip_download_dayu', action='store_true', default=False,
463af6ab5fSopenharmony_ci                        help='specify whether to skip the download dayu or not')
473af6ab5fSopenharmony_ci
483af6ab5fSopenharmony_ci    return parser.parse_args()
493af6ab5fSopenharmony_ci
503af6ab5fSopenharmony_ci
513af6ab5fSopenharmony_cidef job(cmd):
523af6ab5fSopenharmony_ci    subprocess.run(cmd, shell=False)
533af6ab5fSopenharmony_ci
543af6ab5fSopenharmony_ci
553af6ab5fSopenharmony_cidef run():
563af6ab5fSopenharmony_ci    if not prepare_test():
573af6ab5fSopenharmony_ci        return
583af6ab5fSopenharmony_ci
593af6ab5fSopenharmony_ci    job(os.path.join(".", "auto_xts_test", "run.bat"))
603af6ab5fSopenharmony_ci    job(f'python {os.path.join(".", "sdk_test", "entry.py")}')
613af6ab5fSopenharmony_ci    job(f'python {os.path.join(".", "performance_test", "performance_entry.py")}')
623af6ab5fSopenharmony_ci    job(f'python {os.path.join(".", "utils", "send_email", "send_email.py")}')
633af6ab5fSopenharmony_ci
643af6ab5fSopenharmony_ci
653af6ab5fSopenharmony_ciif __name__ == '__main__':
663af6ab5fSopenharmony_ci    schedule.every().day.at("02:10").do(run)
673af6ab5fSopenharmony_ci    run()
683af6ab5fSopenharmony_ci    while True:
693af6ab5fSopenharmony_ci        schedule.run_pending()
703af6ab5fSopenharmony_ci        time.sleep(1)
713af6ab5fSopenharmony_ci
723af6ab5fSopenharmony_ci
73