Skip to content

Commit 0ad4df6

Browse files
introduce CI for PR testing
1 parent 2c0d22b commit 0ad4df6

3 files changed

Lines changed: 87 additions & 0 deletions

File tree

.CI/ReSim/prepare_pr.sh

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
event_number=$1
2+
# checkout the pull request
3+
docker run --name compile_msl --rm --volume shared_data:/shared_data wsm_image /shared_data/run_scripts/git_pr_pull.sh $event_number
4+
# compile msl binaries
5+
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
6+
# delete old PRs with same number (in case of a new commit on a PR)
7+
docker run --name compile_msl --rm --volume shared_data:/shared_data dymola_image /shared_data/run_scripts/delete_old_PRs.sh $event_number

.CI/ReSim/run_pr.sh

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
event_number=$1
2+
master_hash=$2
3+
pkg_name=$3
4+
5+
# Run Modelica in all tools
6+
tools=$4
7+
8+
for tool in $tools
9+
do
10+
uppertool=$tool | tr 'a-z' 'A-Z'
11+
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
12+
done
13+
14+
#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
15+
#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
16+
#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
17+
18+
# create an overview over all tools
19+
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
20+
21+
# clear published directory (web server)
22+
if [ -d "/var/www/html/prs/$event_number/$pkg_name" ]; then
23+
rm -rf "/var/www/html/prs/$event_number/$pkg_name"
24+
fi
25+
if [ ! -d "/var/www/html/prs/$event_number" ]; then
26+
mkdir /var/www/html/prs/$event_number
27+
fi
28+
mkdir /var/www/html/prs/$event_number/$pkg_name
29+
30+
# copy data to webserver directory
31+
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
32+
docker rm create_overview_$event_number\_$pkg_name
33+
exit $(head -n 1 /var/www/html/prs/$event_number/$pkg_name/status.txt)

.github/workflows/PRTesting.yml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: CI ReSim
2+
3+
on:
4+
pull_request_target:
5+
workflow_dispatch:
6+
7+
env:
8+
PR_SERVER: ${{ vars.LTX_PR_SERVER }}
9+
TESTING_TOOLS: ${{ vars.LTX_TESTING_TOOLS }}
10+
EVENT_NUMBER: ${{ github.event.workflow_run.env.EVENT_NUMBER }}
11+
PR_SHA: ${{ github.event.workflow_run.env.PR_SHA }}
12+
13+
jobs:
14+
prepare:
15+
runs-on: [ self-hosted, Linux, regression_testing ]
16+
steps:
17+
- uses: actions/checkout@v6
18+
with:
19+
sparse-checkout: './.CI/ReSim'
20+
21+
- name: Checkout code in docker
22+
run: ./.CI/ReSim/prepare_pr.sh ${{ env.EVENT_NUMBER }}
23+
24+
testrun_modelica:
25+
needs: prepare
26+
runs-on: [ self-hosted, Linux, regression_testing ]
27+
environment:
28+
name: Report modelica
29+
url: ${{ env.PR_SERVER }}/${{ env.EVENT_NUMBER }}/Modelica/report/PR_comparison_report.html
30+
steps:
31+
- name: print envs
32+
run: echo "TESTING_TOOLS=$TESTING_TOOLS"
33+
env:
34+
TESTING_TOOLS: ${{ vars.LTX_TESTING_TOOLS }}
35+
- name: Run tests modelica
36+
run: ./.CI/ReSim/run_pr.sh ${{ env.EVENT_NUMBER }} ${{ env.PR_SHA }} Modelica ${{ env.TESTING_TOOLS }}
37+
38+
39+
testrun_modelicatest:
40+
needs: prepare
41+
runs-on: [ self-hosted, Linux, regression_testing ]
42+
environment:
43+
name: Report modelicatest
44+
url: ${{ env.PR_SERVER }}/${{ env.EVENT_NUMBER }}/ModelicaTest/report/PR_comparison_report.html
45+
steps:
46+
- name: Run tests modelicatest
47+
run: ./.CI/ReSim/run_pr.sh ${{ env.EVENT_NUMBER }} ${{ env.PR_SHA }} ModelicaTest ${{ env.TESTING_TOOLS }}

0 commit comments

Comments
 (0)