repo=root/example-$example # # delete the repository # api=$url/api/v1 forgejo-curl.sh api_json -X DELETE $api/repos/root/example-$example # # push the repository # forgejo-test-helper.sh push_workflow actions/example-$example $url root example-$example setup-forgejo $token # Prevent test failure because the db is occupied sqlite3 $DIR/forgejo-work-path/forgejo.db "pragma busy_timeout=20000" # # get the run id of the workflow that just started # getScheduleRun() { sqlite3 $DIR/forgejo-work-path/forgejo.db \ "select action_run.id \ from action_run \ inner join action_schedule on action_run.schedule_id = action_schedule.id \ inner join repository on action_schedule.repo_id = repository.id \ where repository.name = 'example-schedule-noncancel' \ order by action_run.created desc limit 1" } run_id=$(getScheduleRun) while [ -z $run_id ]; do echo waiting 5... sleep 5 run_id=$(getScheduleRun) done echo Schedule run id: $run_id # # Wait for it to be started # checkStarted() { sqlite3 $DIR/forgejo-work-path/forgejo.db \ "select id \ from action_run \ where id = $run_id \ and started is not null" } started_check=$(checkStarted) while [ -z $started_check ]; do echo waiting 2... sleep 2 started_check=$(checkStarted) done echo Run has started echo Push to repo again # # Push to the repo again # forgejo-test-helper.sh push_workflow actions/example-echo $url root example-$example setup-forgejo $token # # Wait for the workflow to finish anyway # echo Wait for workflow to finish checkFinished() { sqlite3 $DIR/forgejo-work-path/forgejo.db \ "select status \ from action_run \ where id = $run_id \ and status != 6" } finished_status=$(checkFinished) while [ -z $finished_status ]; do echo waiting 5... sleep 5 finished_status=$(checkFinished) done echo Workflow finished. test $finished_status = 1