Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions .CI/ReSim/prepare_pr.sh
Original file line number Diff line number Diff line change
@@ -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
33 changes: 33 additions & 0 deletions .CI/ReSim/run_pr.sh
Original file line number Diff line number Diff line change
@@ -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=$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/status.txt)
73 changes: 73 additions & 0 deletions .github/workflows/resimCI.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: CI ReSim

on:
workflow_run:
workflows: ["Trigger CI ReSim"]
types:
- completed

jobs:
resim_checks:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v6
with:
ref: ${{ github.event.workflow_run.head_sha }}

- name: Get PR number
uses: 8BitJonny/gh-get-current-pr@4.0.0
id: PR
with:
sha: ${{ github.event.workflow_run.head_sha }}
filterOutClosed: true
filterOutDraft: true

- name: Run ReSim
if: steps.PR.outputs.pr_found == 'true'
run: |
echo "LTX_PR_SERVER=${{ vars.LTX_PR_SERVER }}"
echo "LTX_SCRIPT_LOCATION=${{ vars.LTX_SCRIPT_LOCATION }}"
echo "LTX_TESTING_TOOLS=${{ vars.LTX_TESTING_TOOLS }}"

- name: Report status back to PR
if: steps.PR.outputs.pr_found == 'true'
uses: actions/github-script@v8
with:
script: |
const run = context.payload.workflow_run;
const sha = run.head_sha;
const conclusion = run.conclusion;
let state;
switch (conclusion) {
case "success":
state = "success";
break;
case "failure":
case "timed_out":
case "action_required":
state = "failure";
break;
case "cancelled":
case "skipped":
state = "error";
break;
default:
state = "error";
}
const prNumber = process.env.PR_NUMBER || null;
const ltxServer = process.env.LTX_PR_SERVER;
const targetUrl = prNumber ? `${ltxServer}/${prNumber}/` : ltxServer;
await github.rest.repos.createCommitStatus({
owner: context.repo.owner,
repo: context.repo.repo,
sha: sha,
state: state,
context: "CI / resim_checks",
description: `ReSim finished with ${conclusion}`,
target_url: targetUrl
});
env:
PR_NUMBER: ${{ steps.PR.outputs.number }}
LTX_PR_SERVER: ${{ vars.LTX_PR_SERVER }}
12 changes: 12 additions & 0 deletions .github/workflows/resimCI_trigger.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: Trigger CI ReSim

on:
pull_request:

jobs:
trigger_resim_checks:
runs-on: ubuntu-latest

steps:
- name: Trigger ReSim from PR
run: echo "🚀 Let's go"
2 changes: 1 addition & 1 deletion Modelica/Blocks/Sources.mo
Original file line number Diff line number Diff line change
Expand Up @@ -1595,7 +1595,7 @@ parameter Real table[:, <strong>2</strong>]=[0, 0; 1, 1; 2, 4];
parameter Real table[:, :] = fill(0.0, 0, 2)
"Table matrix (time = first column; e.g., table=[0, 0; 1, 1; 2, 4])"
annotation (Dialog(group="Table data definition",enable=not tableOnFile));
parameter String tableName="NoName"
parameter String tableName = "NoName"
"Table name on file or in function usertab (see docu)"
annotation (Dialog(group="Table data definition",enable=tableOnFile));
parameter String fileName="NoName" "File where matrix is stored"
Expand Down
Loading