diff --git a/.CI/ReSim/prepare_pr.sh b/.CI/ReSim/prepare_pr.sh new file mode 100755 index 0000000000..c2bb77c958 --- /dev/null +++ b/.CI/ReSim/prepare_pr.sh @@ -0,0 +1,7 @@ +event_number=$1 +# checkout the pull request +docker run --name compile_msl --rm --volume shared_data:/shared_data wsm_image /shared_data/run_scripts/git_pr_pull.sh $event_number +# compile msl binaries +docker run --name compile_msl --rm --volume shared_data:/shared_data wsm_image /shared_data/run_scripts/compile_msl.sh /shared_data/repos/pr_testing/ModelicaStandardLibrary +# delete old PRs with same number (in case of a new commit on a PR) +docker run --name compile_msl --rm --volume shared_data:/shared_data dymola_image /shared_data/run_scripts/delete_old_PRs.sh $event_number \ No newline at end of file diff --git a/.CI/ReSim/run_pr.sh b/.CI/ReSim/run_pr.sh new file mode 100755 index 0000000000..13ad39ee04 --- /dev/null +++ b/.CI/ReSim/run_pr.sh @@ -0,0 +1,33 @@ +event_number=$1 +master_hash=$2 +pkg_name=$3 + +# Run Modelica in all tools +tools=$4 + +for tool in $tools +do + uppertool=$( echo $tool | tr 'a-z' 'A-Z') + docker run --rm --name $tool\_pr_compare_$event_number\_$pkg_name --volume shared_data:/shared_data $tool\_image python /shared_data/run_scripts/$uppertool\_PR_compare.py $master_hash $event_number $pkg_name +done + +#docker run --rm --name dymola_pr_compare_$event_number\_$pkg_name --volume shared_data:/shared_data dymola_image python /shared_data/run_scripts/Dymola_PR_compare.py $master_hash $event_number $pkg_name +#docker run --rm --name om_pr_compare_$event_number\_$pkg_name --volume shared_data:/shared_data om_image python /shared_data/run_scripts/OM_PR_compare.py $master_hash $event_number $pkg_name +#docker run --rm --name wsm_pr_compare_$event_number\_$pkg_name --volume shared_data:/shared_data wsm_image python /shared_data/run_scripts/WSM_PR_compare.py $master_hash $event_number $pkg_name + +# create an overview over all tools +docker run --name create_overview_$event_number\_$pkg_name --volume shared_data:/shared_data om_image python /shared_data/run_scripts/overview_report.py $event_number $pkg_name + +# clear published directory (web server) +if [ -d "/var/www/html/prs/$event_number/$pkg_name" ]; then + rm -rf "/var/www/html/prs/$event_number/$pkg_name" +fi +if [ ! -d "/var/www/html/prs/$event_number" ]; then + mkdir /var/www/html/prs/$event_number +fi +mkdir /var/www/html/prs/$event_number/$pkg_name + +# copy data to webserver directory +docker cp create_overview_$event_number\_$pkg_name:/shared_data/resim_output/PRs/PR_$event_number/$pkg_name/report /var/www/html/prs/$event_number/$pkg_name +docker rm create_overview_$event_number\_$pkg_name +exit $(head -n 1 /var/www/html/prs/$event_number/$pkg_name/report/status.txt) \ No newline at end of file diff --git a/.github/workflows/ReSim_CI.yml b/.github/workflows/ReSim_CI.yml new file mode 100644 index 0000000000..fa5dd01425 --- /dev/null +++ b/.github/workflows/ReSim_CI.yml @@ -0,0 +1,43 @@ +name: CI ReSim + +on: + pull_request_target: + workflow_dispatch: + +env: + PR_SERVER: ${{ vars.LTX_PR_SERVER }} + TESTING_TOOLS: ${{ vars.LTX_TESTING_TOOLS }} + EVENT_NUMBER: ${{ github.event.number }} + PR_SHA: ${{ github.event.pull_request.base.sha }} + +jobs: + prepare: + runs-on: [ self-hosted, Linux, regression_testing ] + steps: + - uses: actions/checkout@v6 + with: + sparse-checkout: './.CI/ReSim' + + - name: Checkout code in docker + run: ./.CI/ReSim/prepare_pr.sh ${{ env.EVENT_NUMBER }} + + testrun_modelica: + needs: prepare + runs-on: [ self-hosted, Linux, regression_testing ] + environment: + name: Report modelica + url: ${{ env.PR_SERVER }}/${{ env.EVENT_NUMBER }}/Modelica/report/PR_comparison_report.html + steps: + - name: Run tests modelica + run: ./.CI/ReSim/run_pr.sh ${{ env.EVENT_NUMBER }} ${{ env.PR_SHA }} Modelica ${{ env.TESTING_TOOLS }} + + + testrun_modelicatest: + needs: prepare + runs-on: [ self-hosted, Linux, regression_testing ] + environment: + name: Report modelicatest + url: ${{ env.PR_SERVER }}/${{ env.EVENT_NUMBER }}/ModelicaTest/report/PR_comparison_report.html + steps: + - name: Run tests modelicatest + run: ./.CI/ReSim/run_pr.sh ${{ env.EVENT_NUMBER }} ${{ env.PR_SHA }} ModelicaTest ${{ env.TESTING_TOOLS }} \ No newline at end of file